LINUX.ORG.RU

передать значение из Web-формы в PHP-скрипт


0

0

(Slackware 10.0 Apache 1.3 PHP 4.3) PHP ругается на такой код $_REQUEST['variable'] : "Undefined index : variable in my_code.php on line 10"

прочитал все о register_globals и всяких там $_POST / $_GET, мой код несильно отличается от примеров на www.php.net/manuals, но...

ну, что за грабли?! перловый скрипт принимает внешние переменные, но Perl не имеет предустановленного модуля для MySQL. PHP прекрасно подключается к MySQL, но не принимает переменные из формы!!!

кто сталкивался: как все-таки передать значение?


Поделись исходником. Или, как обычно говорят в этом случае: "телепаты в отпуске".

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

в HTML объявлено:

<form action="../cgi-bin/my_code.php" method="get"> <input type=text width=120 name="pname" /> <input type=submit width=100/> </form>

а вот скрипт:

#!/usr/bin/php <html><head><title>Мой заголовок</title></head> <body> <?php import_request_variables("G", "s_"); print_r($_REQUEST); print "Введенное значение $_GET['name']"; print "Введенное значение $s_name"; ?> </body></html>

wazawa
() автор топика
Ответ на: комментарий от wazawa

блин, форматирование!

в HTML объявлено:

<form action="../cgi-bin/my_code.php" method="get">

<input type=text width=120 name="name" />

<input type=submit width=100/>

</form>

а вот скрипт:

#!/usr/bin/php

<html><head><title>Мой заголовок</title></head>

<body>

<?php

import_request_variables("G", "s_");

print_r($_REQUEST);

print "Введенное значение $_GET['name']";

print "Введенное значение $s_name";

?>

</body></html>

wazawa
() автор топика
Ответ на: комментарий от wazawa

1) Мне бы вполне хватило:

print "Введенное значение $_GET['name']";

Обычно это работае, хотя я не говорю, что всё остальное неверно.

2) Вместо

print "Введенное значение $_GET['name']";

Использовать

print "Введенное значение $_GET[name]";

Апострофы убери, т.е.

3) Если не прокатит, приведи лог и/или результат работы скрипта.

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

теперь сначала ругается на отсутствие апострофов:

Use of undefined constant name - assumed 'name' in /var/www/cgi-bin/my_code.php on line __

потом уже знакомое

"Undefined index: name in /var/www/cgi-bin/my_code.php on line __"

интересно, что $_SERVER['REQUEST_STRING'] выдает всю строку параметров, а $_GET - пустой массив

wazawa
() автор топика
Ответ на: комментарий от wazawa

Хрен знает. Возможно это из-за того, что у тебя ПыхПых не в виде модуля, а CGI приложения. Но если есть хотя бы строка запроса, можно и её распарсить:

<?php $GET=array(''=>'');

$items=explode("&",$_SERVER['REQUEST_STRING']); foreach($items as $item) { $tmp=explode("=",$item); $GET[$tmp[0]]=$tmp[1]; }

foreach($GET as $key=>$value) { echo "$key=$value<br>"; } ?>

r_asian ★☆☆
()
Ответ на: комментарий от wazawa

Упс..форматирование :-)

Хрен знает. Возможно это из-за того, что у тебя ПыхПых не в виде модуля, а CGI приложения. Но если есть хотя бы строка запроса, можно и её распарсить:

<?php
$GET=array(''=>'');

$items=explode("&",$_SERVER['REQUEST_STRING']);
foreach($items as $item)
{
$tmp=explode("=",$item);
$GET[$tmp[0]]=$tmp[1];
}

foreach($GET as $key=>$value)
{
echo "$key=$value<br>";
}
?>

r_asian ★☆☆
()

Это делается так:
cat test.php


<?
global $HTTP_GET_VARS;
$name=$HTTP_GET_VARS["name"];
if ($name != "") echo "WOW ! You input\"".$HTTP_GET_VARS["name"]."\"!";
?>

<br/>
<form action="test.php" method="get">
<input type="text" name="name" />
<input type="submit" />
</form>

linuxsoft
()
Ответ на: комментарий от wazawa

> name="pname" > $_GET['name']

А вот эта нестыковка -- так и задумано?

С уважением -- Смоляное Чучелко

anonymous
()
Ответ на: комментарий от linuxsoft

Да действительно deprecated хотя и работает.
http://us2.php.net/manual/ru/reserved.variables.php#reserved.variables.get

Значит совсем правильно это делается так:
progman@prealfa:/var/www$ cat test.php
<?
global $_GET;
$name=$_GET["name"];
if ($name != "") echo "WOW ! You input\"".$name."\"!";
?>

<br/>
<form action="test.php" method="get">
<input type="text" name="name" />
<input type="submit" />
</form>

linuxsoft
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.