Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Помогите с передачей переменных в PHP

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Помогите с передачей переменных в PHP
Имя
Сообщение << Старые топики   Новые топики >>
Помогите с передачей переменных в 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]
Post #: 1
Помогите с передачей переменных в 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 такой способ предпочтительней.
Post #: 2
Помогите с передачей переменных в PHP - 2005-10-25 13:42:55   
coolerphp

Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
Lex_Voodoo огромное тебе спасибо!
Post #: 3
Помогите с передачей переменных в 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[]
Post #: 4
Помогите с передачей переменных в PHP - 2005-10-25 15:45:24   
Great

Сообщений: 1046
Оценки: 0
Присоединился: 2005-08-11 19:41:36
Кстати лекс, у него там method=post, so нужно писать $_POST[find].
Post #: 5
Помогите с передачей переменных в PHP - 2005-10-25 16:38:18   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
&gt;&gt; Вообще говоря, кавычки можно убрать.
Вот блин… я ж тебе уже объяснял один раз…
Ну уберешь ты их на своем денвере, а потом что? Любой скрипт должен быть максимально переносимым, иначе придется потом перед заказчиком отчитываться, почему это у него на хостинге "Notice: Use of undefined constant…" вылазит.

Это примерно то же самое, что $find вместо $_GET['find'] - ведь можно и под линуксом так PHP настроить, что все работать будет…
Только потом переносишь скрипт на другой сервер и бежишь на форум с выпученными глазами и вопросом "почему ничего не работает". Давайте уж сразу писать правильно, меньше будет проблем.
И уж тем более не надо учить начинающих неправильному программированию.

&gt;&gt;Кстати лекс, у него там method=post, so нужно писать $_POST[find].
Ващето я имел в виду последний пример - localhost/file.php?find=prostotext
Мне кажется, что дальше он разберется что к чему [sm=1.gif]
Post #: 6
Помогите с передачей переменных в 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;amp;gt;&amp;amp;gt; Вообще говоря, кавычки можно убрать.<BR><BR>Вот блин… я ж тебе уже объяснял один раз…<BR><BR>Ну уберешь ты их на своем денвере, а потом что? Любой скрипт должен быть максимально переносимым, иначе придется потом перед заказчиком отчитываться, почему это у него на хостинге &amp;amp;quot;Notice: Use of undefined constant…&amp;amp;quot; вылазит.<BR><BR><BR>&amp;amp;#1069;то примерно то же самое, что $find вместо $_GET['find'] - ведь можно и под линуксом так PHP настроить, что все работать будет… <BR><BR>Только потом переносишь скрипт на другой сервер и бежишь на форум с выпученными глазами и вопросом &amp;amp;quot;почему ничего не работает&amp;amp;quot;. Давайте уж сразу писать правильно, меньше будет проблем. <BR><BR>И уж тем более не надо учить начинающих неправильному программированию.<BR>—————-


Ну я соглашусь что это не лучший стиль программирования, но на всех серверах с которыми мне приходилось работать ( и FreeBSD, и Linux, и Win32) это работало без проблем. Но все же спорить не буду, я всегда за переносимость программ[sm=sm203.gif]
Post #: 7
Помогите с передачей переменных в 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. Заранее тебе огромное спасибо!
Post #: 8
Помогите с передачей переменных в 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
Post #: 9
Помогите с передачей переменных в 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>";
}

?>

Как на основе этого мне построить запрос с поиском? Да, а если ищут фильм АНТИБУМЕР, а напишут БУМЕР, как сделать чтобы он и тот и тот выводил фильм?
Post #: 10
Помогите с передачей переменных в PHP - 2005-10-29 09:32:29   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Ну так а дальше обработка запроса и составление $query, после этого выполняешь SELECT запрос этим $query, обрабатываешь результат и выводишь в нужном виде.

mysql_query(&quot;UPDATE film SET realname='$realname',name='$name'
Вот так и появляются SQL-inj…
И еще - @mysql_pconnect('localhost','root',') - это че за фигня?
"@" вообще лучше не использовать, чем юзать в таком виде. Так как смысла никакого нет - при невозможность подключения у тебя просто ошибка вылетит не на этой строчке а на
$r=mysql_query(&quot;Select * from film&quot;);
Правильней было бы так:

if(mysql_pconnect()) {
……
}
else die('Can\'t connect to MySQL');

Хорошую книжку по SQL тебе надо, вот что =)
Post #: 11
Помогите с передачей переменных в PHP - 2005-10-30 16:32:21   
coolerphp

Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
Lex_Voodoo всё, с поиском разобрался, использовал LIKE. Теперь ещё одна проблема возникла, нужен счетчик по кликам. чтобы кликали на фильм скачать и к прибавлялась единичка. Может както через опс1iск замутить? Я пробовал, чето ниче не вышло! Подскажи плз! Или может готовый скриптик есть?
Post #: 12
Помогите с передачей переменных в 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 например. Только для твоих нужд все равно его придется "подминать" под себя, я бы посоветовал написать самому.
Post #: 13
Помогите с передачей переменных в PHP - 2005-11-02 22:51:16   
coolerphp

Сообщений: 42
Оценки: 0
Присоединился: 2004-07-16 14:25:15
Lex_Voodoo, большое спасибо! Разобрался! Так всё и сделал, там еще редирект добавил, чтоб загрузка сразу начаналась!
Post #: 14
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Помогите с передачей переменных в PHP







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.