Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Не работает метод GET


Автор: Golovastik 8.7.2010, 19:27
Вот експерементирую метод ГЕТ и пост. Вот создал 2 файла top1.php,   top2.php.

top1.php
Код

<html>
<head></head>
<body>
<form  action="top2.php"  name="formochka" method="post">
<input name="per1" type='text' ><br><br>
<input name="per2" type='text' ><br><br>
<input name="knopka" type='submit' value="Отправить" >
</form>
</body>
</html>



top2.php
Код

<?php
echo  "Имя ввдённое на предыдущей странице -  $per1  и фамилия $per2";
$x1 = 5;
$x2 = 10;
$rez = $x1 + $x2;
echo "<br> <a href='top2.php?x1=25&x2=35'>Ссылка</a>";
?>



Если ввести например в первое поле Павел, во второе Дуров, нажать на кнопку "Отправить",
затем я перейду на файл top2.php. Если в файле top2.php нажать строку "Ссылка", сервер Апач выдаст ошибку:
Код


Notice: Undefined variable: per1 in z:\home\xai.loc\www\top2.php on line 2
[ убрать подсказку | никогда больше не показывать ]

Это предупреждение, вероятнее всего, возникает вследствие высокого уровня 
контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). 
Такой режим вывода ошибок является рекомендуемым и сильно помогает при
 отладке скриптов. Однако множество готовых скриптов требуют более 
низкого уровня ошибок.

Вы можете установить более слабый контроль ошибок одним из следующих способов:

Впишите в скрипты строчку: 
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания: 
php_value error_reporting 7
Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым 
и может привести к серьезным неудобствам при отладке!
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: per2 in z:\home\xai.loc\www\top2.php on line 2
Имя ввдённое на предыдущей странице - и фамилия 
Ссылка 


Почему не срабатывает переадача значений переменным x1 и x2, через метод GET?

Автор: patap 8.7.2010, 19:52
register_globals = off у тебя. Так в принципе и нужно.
Обращайся к переменным через глобальный массив.

к переменным гет, через

$_GET['x1'] и $_GET['x2']


к пост через
$_POST['per1'] и $_POST['per2']


Автор: Golovastik 8.7.2010, 20:21
Вот так если написать тоже не срабатывает.
Код

<?PHP

echo  "Имя введённое на предыдущей странице -  $per1  и фамилия $per2";

$x1 = 5;

$x2 = 10;

//проверка

if (isset($_GET['x1']) && isset($_GET['x2']) && $_GET['rez'])
{
$rez = $_GET['x1'] + $_GET['x2'];
}
echo "<br> <a href='top2.php?x1=$x1&x2=$x2'>Ссылка</a><br>Ответ: ";
echo $rez;

?>

Автор: patap 8.7.2010, 20:34
ну а зачем в условии в условии $_GET['rez']? ты же его не передаешь, убери и все

Автор: Golovastik 8.7.2010, 20:58
Вот так надо?
Код

<?PHP
echo "Имя введённое на предыдущей странице -  $_POST[per1] и фамилия $_POST[per2]";
//проверка
if (isset($_GET['x1']) && isset($_GET['x2']))
{
$rez = $_GET['x1'] + $_GET['x2'];
echo "<br> <a href='top2.php?x1=$_GET[x1]&x2=$_GET[x2]'>Ссылка</a><br>Ответ: ";
echo $rez;
}
else
{
echo '<br>Нет входных данных';
}
?>

 

Автор: Golovastik 8.7.2010, 21:42
А как сделать чтоб выводило сумму чисел,чего-то не работает пробую так не выходит:
Код

<?PHP
echo "Имя введённое на предыдущей странице -  $_POST[per1] и фамилия $_POST[per2]";
//проверка
$x1 = 20;  $x2 = 50;
if (isset($_GET['x1']) && isset($_GET['x2']))
{
$rez = $_GET['x1'] + $_GET['x2'];

echo "<br> <a href='top2.php?x1=5&x2=10'>Ссылка</a><br>Ответ: ";
echo $rez;
}
else
{
echo '<br>Нет входных данных';
}
?>

 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)