Помогите с передачей переменных в PHP
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Помогите с передачей переменных в PHP - 2005-10-25 08:08:58
|
|
|
coolerphp
Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
|
Столкнулся с такой проблемой. Вот например есть такой скрипт:
file.php ————————————————- <form method=POST action="file.php"> <input type="text" name="find"> <input type="submit" value="Искать"> </form>
<? echo $find; ?> ————————————————– под виндой всё работает, переменная find передается и выводится на экран, а под LINUX ничего не передается и не выводится. Даже пишешь например http://localhost/file.php?find=prostotext, всёравно ничего на выводит. Что происходит? Как бороться с этой проблемой? (Linux, PHP 4.3.4)[sm=9.gif]
|
|
|
Помогите с передачей переменных в PHP - 2005-10-25 08:19:47
|
|
|
Lex_Voodoo
Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
|
Если посмотришь phpinfo(), то увидишь, что register_globals в php.ini у тебя стоит OFF, соответственно надо писать echo $_GET['find'];
И вообще, независимо от register_globals такой способ предпочтительней.
|
|
|
Помогите с передачей переменных в PHP - 2005-10-25 13:42:55
|
|
|
coolerphp
Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
|
Lex_Voodoo огромное тебе спасибо!
|
|
|
Помогите с передачей переменных в PHP - 2005-10-25 15:44:08
|
|
|
Great
Сообщений: 1046
Оценки: 0
Присоединился: 2005-08-11 19:41:36
|
quote:
—————-<BR>Цитата: Дата:25.10.2005 8:19:47, Автор:Lex_Voodoo :: Если посмотришь phpinfo(), то увидишь, что register_globals в php.ini у тебя стоит OFF, соответственно надо писать<BR>echo $_GET['find'];<BR><BR>И вообще, независимо от register_globals такой способ предпочтительней.<BR> —————-
Вообще говоря, кавычки можно убрать. echo $_GET[find]; Аналогично, доступ к кукисам через массив $_COOKIE[] а к переменным окружения - через $_ENV[]
|
|
|
Помогите с передачей переменных в PHP - 2005-10-25 15:45:24
|
|
|
Great
Сообщений: 1046
Оценки: 0
Присоединился: 2005-08-11 19:41:36
|
Кстати лекс, у него там method=post, so нужно писать $_POST[find].
|
|
|
Помогите с передачей переменных в PHP - 2005-10-25 16:38:18
|
|
|
Lex_Voodoo
Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
|
>> Вообще говоря, кавычки можно убрать. Вот блин… я ж тебе уже объяснял один раз… Ну уберешь ты их на своем денвере, а потом что? Любой скрипт должен быть максимально переносимым, иначе придется потом перед заказчиком отчитываться, почему это у него на хостинге "Notice: Use of undefined constant…" вылазит.
Это примерно то же самое, что $find вместо $_GET['find'] - ведь можно и под линуксом так PHP настроить, что все работать будет… Только потом переносишь скрипт на другой сервер и бежишь на форум с выпученными глазами и вопросом "почему ничего не работает". Давайте уж сразу писать правильно, меньше будет проблем. И уж тем более не надо учить начинающих неправильному программированию.
>>Кстати лекс, у него там method=post, so нужно писать $_POST[find]. Ващето я имел в виду последний пример - localhost/file.php?find=prostotext Мне кажется, что дальше он разберется что к чему [sm=1.gif]
|
|
|
Помогите с передачей переменных в PHP - 2005-10-26 14:44:33
|
|
|
Great
Сообщений: 1046
Оценки: 0
Присоединился: 2005-08-11 19:41:36
|
quote:
—————-<BR>Цитата: Дата:25.10.2005 16:38:18, Автор:Lex_Voodoo :: &amp;gt;&amp;gt; Вообще говоря, кавычки можно убрать.<BR><BR>Вот блин… я ж тебе уже объяснял один раз…<BR><BR>Ну уберешь ты их на своем денвере, а потом что? Любой скрипт должен быть максимально переносимым, иначе придется потом перед заказчиком отчитываться, почему это у него на хостинге &amp;quot;Notice: Use of undefined constant…&amp;quot; вылазит.<BR><BR><BR>&amp;#1069;то примерно то же самое, что $find вместо $_GET['find'] - ведь можно и под линуксом так PHP настроить, что все работать будет… <BR><BR>Только потом переносишь скрипт на другой сервер и бежишь на форум с выпученными глазами и вопросом &amp;quot;почему ничего не работает&amp;quot;. Давайте уж сразу писать правильно, меньше будет проблем. <BR><BR>И уж тем более не надо учить начинающих неправильному программированию.<BR>—————-
Ну я соглашусь что это не лучший стиль программирования, но на всех серверах с которыми мне приходилось работать ( и FreeBSD, и Linux, и Win32) это работало без проблем. Но все же спорить не буду, я всегда за переносимость программ[sm=sm203.gif]
|
|
|
Помогите с передачей переменных в PHP - 2005-10-27 06:36:54
|
|
|
coolerphp
Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
|
Lex_Voodoo обращаюсь ещё раз к тебе за помощью! Мне нужно организовать поиск: есть большой каталог фильмов, и нужен поиск по базе, такой же как и на http://www.krasfilm.ru/index.php?go=Find может у тебя где нибудь завалялось что нибуть подобное, всё это само сабой с MySQL? Да и подскажешь где можно инфы взять по работе PHP4 с MySQL. Заранее тебе огромное спасибо!
|
|
|
Помогите с передачей переменных в PHP - 2005-10-27 08:06:49
|
|
|
Lex_Voodoo
Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
|
Так тут для каждого случая свой поиск разумнее писать, оптимизированный конкретно под тебя. Если база уже есть, то задача сводится к элементарному SELECT что_выбирать WHERE условия_поиска. Где условия_поиска формируются при обработке поступившей от пользователя формы.
Вот тут можешь поискать готовые примеры.
Инфу про PHP и MySQL можно взять на сайте, который приведен в FAQ: http://doks.gorodok.net
|
|
|
Помогите с передачей переменных в PHP - 2005-10-28 00:18:06
|
|
|
coolerphp
Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
|
Ну вот я сделал форму, чтобы можно было передавать и записывать значения в базу:
<form action="add.php" method=post> <table cellspacing=0 cellpadding=0 align=center border=1 bordercolor="DD6900"> <tr bordercolor=black> <td colspan=2 align=center> <select name=realname> <option selected>—===Выберите фильм===—</option> <?php chdir('VIDEO'); if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "<option value='$file'>$file</option>\n"; } } closedir($handle); } ?> </select> </td> <td> </td> </tr>
<tr bordercolor=black> <td align=right><p class=t>Название</p> </td> <td align=left><input type=text name=name> </td> </tr>
<tr bordercolor=black> <td align=right><p class=t>Режиссер</p> </td> <td align=left><input type=text name=rejiser> </td> </tr>
<tr bordercolor=black> <td align=right><p class=t>Актёры</p> </td> <td align=left><input type=text name=aktery> </td> </tr> . . . </table> </form>
и скрипт, записывающий инфу в БД:
<? @mysql_pconnect('localhost','root','') or die("Нет коннекта с MySQL"); @mysql_select_db('arhiv') or die("Нет таблицы");
$r=mysql_query("Select * from film"); $num=mysql_num_rows($r);
$f=1; for ($i=0;$i<$num;$i++) { $row=mysql_fetch_array($r);
if ($row['realname']==$realname){ $f=0; mysql_query("UPDATE film SET realname='$realname',name='$name',janr='$janr',god='$god',strana='$strana',rejiser='$rejiser',aktery='$aktery',opisanie='$opisanie',reiting='0' WHERE realname='$realname'"); echo "<p align=center style='color:F9FF91;font:bold;font-size:17px'>Информация добавлена в базу данных!</p>"; } }
if($f!=0){ mysql_query("Insert into film VALUES('$realname','$name','$janr','$god','$strana','$rejiser','$aktery','$opisanie',0)"); echo "<p align=center style='color:F9FF91;font:bold;font-size:17px'>Информация добавлена в базу данных!</p>"; }
?>
Как на основе этого мне построить запрос с поиском? Да, а если ищут фильм АНТИБУМЕР, а напишут БУМЕР, как сделать чтобы он и тот и тот выводил фильм?
|
|
|
Помогите с передачей переменных в PHP - 2005-10-29 09:32:29
|
|
|
Lex_Voodoo
Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
|
Ну так а дальше обработка запроса и составление $query, после этого выполняешь SELECT запрос этим $query, обрабатываешь результат и выводишь в нужном виде.
mysql_query("UPDATE film SET realname='$realname',name='$name' Вот так и появляются SQL-inj… И еще - @mysql_pconnect('localhost','root',') - это че за фигня? "@" вообще лучше не использовать, чем юзать в таком виде. Так как смысла никакого нет - при невозможность подключения у тебя просто ошибка вылетит не на этой строчке а на $r=mysql_query("Select * from film"); Правильней было бы так:
if(mysql_pconnect()) { …… } else die('Can\'t connect to MySQL');
Хорошую книжку по SQL тебе надо, вот что =)
|
|
|
Помогите с передачей переменных в PHP - 2005-10-30 16:32:21
|
|
|
coolerphp
Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
|
Lex_Voodoo всё, с поиском разобрался, использовал LIKE. Теперь ещё одна проблема возникла, нужен счетчик по кликам. чтобы кликали на фильм скачать и к прибавлялась единичка. Может както через опс1iск замутить? Я пробовал, чето ниче не вышло! Подскажи плз! Или может готовый скриптик есть?
|
|
|
Помогите с передачей переменных в PHP - 2005-10-31 11:56:18
|
|
|
Lex_Voodoo
Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
|
JavaSсгiрt не работает на запись, так что тут только через PHP: Ссылка должна быть вида download.php?filmID=134 А в скрипте download.php обрабатываешь этот запрос - 1) увеличиваешь счетчик в БД 2) предоставляешь юзеру нужный файл.
Готовый скрипт, может и есть, на woweb.ru например. Только для твоих нужд все равно его придется "подминать" под себя, я бы посоветовал написать самому.
|
|
|
Помогите с передачей переменных в PHP - 2005-11-02 22:51:16
|
|
|
coolerphp
Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
|
Lex_Voodoo, большое спасибо! Разобрался! Так всё и сделал, там еще редирект добавил, чтоб загрузка сразу начаналась!
|
|
|
|
|