к примеру у меня есть файл page.php, на ней список в цикле ссылок view_page.php?id="тут значение переменной".. в другом соответственно файле view_page.php у меня статьи.. из БД, так вот мне не понятно немного, получаеться что страница динамическая взависимости от ID статьи (статьи в mysql) меняеться ссылка, как эта переменная попадаеться в URL страницы? с помощью if (isset($_GET['id'])) {$id = $_GET['id'];} if (!isset($id)) {$id = 1;} ? в mysql запросе естественно вытаскиваеться переменная ID - WHERE id='$id'"
вообщем вопрос, на простом примере - index.php создаю переменную a = 5; к примеру, как мне вывести через гет глобальный массив её в URL ? и чтобы он был валидный типа index.php?a=5 и как сделать чтобы страница была с данными, типо сделать условие if (a=5) echo ""; ?
вообщем вроде всё просто но чёт не соображаю я малость..
Спустя 34 минуты (5.09.2011 - 18:25) dadli написал(а):
Цитата |
как эта переменная попадаеться в URL страницы? |
если список реализуется таким спосбом:
$res = mysql_query("SELECT `id`,`zagalovok` FROM `statii`",$db);
$row = mysql_fetch_row($res);
do {
echo "<a href='view_page.php?id=$row[0]'>$row[1] </a> <br>";
}
while($row = mysql_fetch_row($res));
всо просто:
запрос видает из бази id и загаловки из всех статии , потом в URL-е id (view_page.php?id=) сравнивается id статии (id статии из бази данних)
например: если в базе есть статя, его id ровно 4 и загаловок "концерн мерседес" урл будет такои
<a href='view_page.php?id=4'> концерн мерседес </a> <br>
а в view_page.php будет такои запрос
SELECT * FROM `statii` WHERE id = $_GET[id]
так как силка передает что id = 4, тоесть на странице view_page.php $_GET[id] = 4 ето запрос будет так работать:
SELECT * FROM `statii` WHERE id = 4
надеюс я правилно понял что ти хотел и если ето так надеюс ти понимаеш мои руски :)
Спустя 21 минута, 16 секунд (5.09.2011 - 18:47) zeromind написал(а):
я всё прекрасно понимаю, но мне интересно view_page.php?$_GET[id] = 4
т.е. переменные из php моего кода, могут попасть в URL только если они в глобальном массиве $_GET ???
т.е. если я вначале кода if (isset($_GET['id'])) {$id = $_GET['id'];} if (!isset($id)) {$id = 1;} не задам, то переменная не попадёт в гет массив, и соответственно URL будет не валидный, я правильно понимаю?
и это условие я так понимаю проверяеться переменная ID в гет массиве? если её нету она создаёться автоматически $id = $_GET['id']; я прав?
т.е. переменные из php моего кода, могут попасть в URL только если они в глобальном массиве $_GET ???
т.е. если я вначале кода if (isset($_GET['id'])) {$id = $_GET['id'];} if (!isset($id)) {$id = 1;} не задам, то переменная не попадёт в гет массив, и соответственно URL будет не валидный, я правильно понимаю?
и это условие я так понимаю проверяеться переменная ID в гет массиве? если её нету она создаёться автоматически $id = $_GET['id']; я прав?
Спустя 3 часа, 15 минут, 9 секунд (5.09.2011 - 22:02) zeromind написал(а):
помогите новичкУ)
Спустя 19 часов, 46 минут, 2 секунды (6.09.2011 - 17:48) dadli написал(а):
сначала ни какои if (.. ) {.. } не нужна, тоесть:
например в index.php есть такая силка
когда ви нажмите на "view", в view_page.php из index.php передается переменная id, но такая передача переменних (через силки) есть GET метод, ето азначает что в view_page.php сушествует гет переменная id,
тоесть не такои: $id
а такои : $_GET['id']
уже можно исползовать переменную гет id и он ровно 4. $_GET['id'] == 4
а если ми хотим вместо $_GET['id'] написать обични $id, нужно так сделать:
например в index.php есть такая силка
echo "<a href='view_page.php?id=4'>view </a>";
когда ви нажмите на "view", в view_page.php из index.php передается переменная id, но такая передача переменних (через силки) есть GET метод, ето азначает что в view_page.php сушествует гет переменная id,
тоесть не такои: $id
а такои : $_GET['id']
уже можно исползовать переменную гет id и он ровно 4. $_GET['id'] == 4
а если ми хотим вместо $_GET['id'] написать обични $id, нужно так сделать:
//если сушествует гет переменная id, то обични переменная id сравниваем ету гет переменную
if (isset($_GET['id'])) {
$id = $_GET['id'];
}
Спустя 4 часа, 2 минуты, 17 секунд (6.09.2011 - 21:50) zeromind написал(а):
1 ) ещё раз допустим у меня файл view.php в нём:
и файл view_page.php:
я заметил, что ссылка валидная будет в любом случае если после названия URL'a дописать что то типо view_page.php?"и тут что хочешь"..
естественно по нажатию кнопки - появляеться строка текст - "OK", но он появляеться при любом значении ?page=5 (к примеру), хотя в условии else стоит.. в ЧЁМ ТРАБЛА ?
GET я же не использовал?
2 ) и ещё пример из IRBIS-team (структура сайта MVC)
там есть переменная $page и переключаеться она конструкцией switch case..
зачем тогда тут переменная заноситься? или что делает с $_GET
знаю что если эту строчку удалить, страницы переключаться то будут и менять название в URL'e, но вот содержание страницы будет одно и тоже! в чём это связано?
вообщем, я вообще не шарю работу GET..
<?php
echo "<a href='view_page.php?page=1'>view</a>";
?>
и файл view_page.php:
<?php
$page = "";
if ($page = 1) {
echo "OK!";
}
else {
echo "пусто";
}
?>
я заметил, что ссылка валидная будет в любом случае если после названия URL'a дописать что то типо view_page.php?"и тут что хочешь"..
естественно по нажатию кнопки - появляеться строка текст - "OK", но он появляеться при любом значении ?page=5 (к примеру), хотя в условии else стоит.. в ЧЁМ ТРАБЛА ?
GET я же не использовал?
2 ) и ещё пример из IRBIS-team (структура сайта MVC)
там есть переменная $page и переключаеться она конструкцией switch case..
зачем тогда тут переменная заноситься? или что делает с $_GET
* Получаем GET переменную
*/
$page = !empty($_GET['page']) ? $_GET['page'] : NULL;
знаю что если эту строчку удалить, страницы переключаться то будут и менять название в URL'e, но вот содержание страницы будет одно и тоже! в чём это связано?
вообщем, я вообще не шарю работу GET..
Спустя 34 минуты, 7 секунд (6.09.2011 - 22:24) dadli написал(а):
ето ошибка: if ($page = 1)
тоест нужно две симбол сравненя ==
if ($page == 1) {
тоест нужно две симбол сравненя ==
if ($page == 1) {
Цитата |
естественно по нажатию кнопки - появляеться строка текст - "OK", но он появляеться при любом значении ?page=5 (к примеру), хотя в условии else стоит.. в ЧЁМ ТРАБЛА ? |
в фаиле view_page.php вот так напишите:
if ($_GET['page'] == 1) {
echo "OK!";
}
else {
echo "пусто";
}
и тестируите, "OK" появляеться толко в том случе если ...?page=1, иначе будет "пусто"
P.S.
в пхп:
один = ето значит что ми даем значение какоита переменную, $a = "alibaba";
а ето == проверяет равние или нет леви и прави "обиекти", тоесть
$a = 7;
if ($a == 7) {
echo "ravnie";
}
Спустя 43 минуты, 29 секунд (6.09.2011 - 23:08) zeromind написал(а):
ок теперь почти всё понятно, вот только где можно узнать более широкую инфу про массив $_GET ? переменную когда добавляешь в массив, её типо можно будет увидеть в URL'e и можно передать на другую страницу?
Спустя 25 минут, 5 секунд (6.09.2011 - 23:33) dadli написал(а):
например здес:
http://www.providerz.ru/articles/php/php-v...s-security.html
или погуглит, статии и мануали много
http://www.providerz.ru/articles/php/php-v...s-security.html
или погуглит, статии и мануали много
Цитата |
переменную когда добавляешь в массив, её типо можно будет увидеть в URL'e и можно передать на другую страницу? |
когда переменная передается через URL, "его тип" всегда GET[ ]
а POST[ ] обично исползуется тогда, когда происходит передача из хтмл форми
Спустя 12 часов, 58 минут, 5 секунд (7.09.2011 - 12:31) zeromind написал(а):
если ссылку сделать view_page?page=1&id=5 :
вот символ & - говорит что пеменная ссылка? )
кое-где вычитал: "Чтобы создать жесткую ссылку, нужно использовать оператор & (амперсанд). Например:"
и что тут получаеться? ) переменная не в гет массиве.. для чего & тут нужен ? ) или тут просто переменные приравниваються? не понятно что т)
if ($_GET['page'] == 1) {
echo "OK!";
}
else {
echo "пусто";
}
if ($_GET['id'] == 5) {
echo "авыа";
}
else {
echo "выаееее";
}
вот символ & - говорит что пеменная ссылка? )
кое-где вычитал: "Чтобы создать жесткую ссылку, нужно использовать оператор & (амперсанд). Например:"
$a=10;
$b = &$a; // теперь $b — то же самое, что и $a
$b=0; // на самом деле $a=0
echo "b=$b, a=$a"; // Выводит: "b=0, a=0"
и что тут получаеться? ) переменная не в гет массиве.. для чего & тут нужен ? ) или тут просто переменные приравниваються? не понятно что т)
Спустя 2 минуты, 25 секунд (7.09.2011 - 12:33) Winston написал(а):
Цитата (zeromind @ 7.09.2011 - 12:31) |
вот символ & - говорит что пеменная ссылка? ) |
Если в url'е & то это считается как разделитель.
page=1&id=5 - Значит, что в $_GET['page'] находится 1, а в $_GET['id'] находится 5
Спустя 2 минуты, 38 секунд Winston написал(а):
$a=10;
$b = &$a; // теперь $b — то же самое, что и $a
$b=0; // на самом деле $a=0
echo "b=$b, a=$a"; // Выводит: "b=0, a=0"
Это значит, что теперь $a будет ссылаться на тот же участок памяти, что и $b
То есть ты создал 2 ссылки (псевдонима) для одного и того же участка памяти.
Надеюсь понятно объяснил ?
Спустя 11 минут, 54 секунды (7.09.2011 - 12:45) zeromind написал(а):
очень даже) более понятного ответа не слышал)