Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/65: Рейтинг темы: голосов - 65, средняя оценка - 4.58
 Аватар для Golovastik
11 / 11 / 2
Регистрация: 25.05.2009
Сообщений: 435

Не работает метод GET

08.07.2010, 20:15. Показов 13023. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот експерементирую метод ГЕТ и пост. Вот создал 2 файла top1.php, top2.php.

top1.php
HTML5
1
2
3
4
5
6
7
8
9
10
<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
1
2
3
4
5
6
7
<?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 нажать строку "Ссылка", сервер Апач выдаст ошибку:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.07.2010, 20:15
Ответы с готовыми решениями:

Не работает метод в класе. Метод проверки на вес
Итак, немножко вступления о проблеме и задании. 1) Препод дал код и сказал привязать класс к класу и проверить упадет ли лифт 1) есть...

В Windows Forms некоректно работает метод, хотя в консоли работает правильно
//Данный метод должен заменять все элементы в массиве на 1, после найменьшего. public string getNewArray(int array) { ...

Не работает метод POST в Денвере, GET работает
Помогите кто может, с Get работает, с POST или post приходят только вопросы без ответов. Вот кусок формы: &lt;html&gt; &lt;head&gt; ...

25
Почетный модератор
 Аватар для Humanoid
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
08.07.2010, 20:28
Цитата Сообщение от Golovastik Посмотреть сообщение
сервер Апач выдаст ошибку:
Это PHP выдаёт... и не ошибка, а просто предупреждение. Оно означает, что переменная $per1 не существует. Опять какая-то сборка с кривыми настройками? Включенный register_globals - это не совсем безопасно. Лучше подбирать все данные из массивов $_GET и $_POST, а register_globals вообще отключить.
0
 Аватар для Golovastik
11 / 11 / 2
Регистрация: 25.05.2009
Сообщений: 435
08.07.2010, 21:23  [ТС]
Вот так тоже не сработает.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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;
 
?>
0
Почетный модератор
 Аватар для Humanoid
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
08.07.2010, 21:43
Опять же, ты в самом начале пытаешься вывести на экран какие-то переменные $per1 и $per2... откуда они берутся? Вначале надо проверять, существуют ли они:
PHP
1
2
3
if (isset($_POST['per1'])) $per1=$_POST['per1']; else $per1='';
if (isset($_POST['per2'])) $per2=$_POST['per2']; else $per2='';
echo  "Имя введённое на предыдущей странице -  $per1  и фамилия $per2";
А по поводу ссылки... когда вставляешь переменную в ссылку, то желательно пропускать её через urlencode()... в данном случае это цифры, поэтому это не обязательно. Но когда в переменной может быть текст, то нужно обязательно
PHP
1
echo "<br> <a href='top2.php?x1=".urlencode($x1)."&x2=".urlencode($x2)."'>Ссылка</a><br>Ответ: ";
0
 Аватар для Golovastik
11 / 11 / 2
Регистрация: 25.05.2009
Сообщений: 435
08.07.2010, 22:06  [ТС]
Вот так надо?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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>Нет входных данных';
}
?>
Добавлено через 35 секунд
urlencode - такого метода не встречал не в курсе что он даёт и какой от него толк.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
08.07.2010, 22:30
Цитата Сообщение от Golovastik Посмотреть сообщение
urlencode - такого метода не встречал не в курсе что он даёт и какой от него толк.
Возвращает строку, в которой все не алфавитно-числовые символы (кроме -_.) заменены на знак процентов (%) с последующими двумя 16-ричными цифрами и пробелами, кодированными как знаки плюс (+).Она кодируется тем же способом, что и post данные WWW-формы, то есть как в типе носителя application/x-www-form-urlencoded. Это отличается от RFC1738-кодирования (см. rawurlencode()) тем, что, по историческим соображениям, пробелы кодируются как плюсы (+).
(from php.su)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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>Нет входных данных';
}
?>
0
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
08.07.2010, 22:35
PHP
1
2
3
4
5
6
7
<?php
//Ты передаешь параметры во второй файл методом POST, но принимаешь их почему-то методом GET
//Попробуй так 
     $n1    = $_POST['per1'];
     $n2    = $_POST['per2'];
echo  "Имя ввдённое на предыдущей странице -  $n1  и фамилия $n2";
?>
Добавлено через 36 секунд
Немного припоздал...
0
 Аватар для Golovastik
11 / 11 / 2
Регистрация: 25.05.2009
Сообщений: 435
08.07.2010, 22:40  [ТС]
А как сделать чтоб выводило сумму чисел,чего-то не работает пробую так не выходит:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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>Нет входных данных';
}
?>
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
08.07.2010, 22:43
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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>Нет входных данных';
}
?>
0
 Аватар для Golovastik
11 / 11 / 2
Регистрация: 25.05.2009
Сообщений: 435
08.07.2010, 23:54  [ТС]
Ваш код работает, также как и мой выше, он не считает вообще и не выводит результат суммы 2 чисел:
PHP
1
2
Имя введённое на предыдущей странице - Павел и фамилия Дуров
Нет входных данных
0
31 / 12 / 3
Регистрация: 20.05.2010
Сообщений: 88
09.07.2010, 00:06
при нажатии кнопки ты переходишь на "top2.php"
соответственно $_GET[] не откуда взять данные так как x1 не указан в адресе
попробуй так:
PHP
1
2
3
4
5
<form  action="top2.php?x1=10&x2=20"  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>
Если я конечно правильно понял твою проблему
0
 Аватар для Golovastik
11 / 11 / 2
Регистрация: 25.05.2009
Сообщений: 435
09.07.2010, 00:42  [ТС]
Всё равно выдаёт:
Имя введённое на предыдущей странице - Павел и фамилия Дуров
Нет входных данных
0
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
09.07.2010, 01:19
top1.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form  action="top2.php?x1=10&x2=20" 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
     
//     echo  "Имя ввдённое на предыдущей странице -  ", $_POST['per1'],  "и фамилия", $_POST['per2'];
     echo "имя:",  $_POST['per1'], "<br>";
     echo "Фамилия:",  $_POST['per2'], "<br>";
     
     $res = $_GET['x1'] + $_GET['x2'];     
     echo $res, "<br>";
     echo "<a href='top2.php?x1=25&x2=35'>При нажатии на ссылку естественно имя и фамилия пропадут.</a>";
?>
</body>
</html>

Примечание
Возьми нормальный учебник по пхп и не надо экспериментировать. Там и научишься проверять переменные на существование, и передавать переменные другим скриптам без помощи POST и GET, ну и базы данных изучишь. А так просто тыкать пальцем в небо, ни к чему хорошему не приведет.
0
31 / 12 / 3
Регистрация: 20.05.2010
Сообщений: 88
09.07.2010, 13:26
Цитата Сообщение от DenQ Посмотреть сообщение
Примечание
Возьми нормальный учебник по пхп и не надо экспериментировать. Там и научишься проверять переменные на существование, и передавать переменные другим скриптам без помощи POST и GET, ну и базы данных изучишь. А так просто тыкать пальцем в небо, ни к чему хорошему не приведет.
НУ не скажите, я книгу по пхп не читал, просто брал примеры скриптов, а дальше экспериментировал.

извините за офтоп
0
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
09.07.2010, 16:52

Не по теме:

GORZ, ну это смотря для кого. Мне тоже книга не понадобилась, так как это далеко не первый язык который я изучил/изучаю. Вообще предпочитаю больше онлайн-справочники.



Добавлено через 38 секунд
Golovastik, вы хоть откликнетесь - как там работает мой код?
0
31 / 12 / 3
Регистрация: 20.05.2010
Сообщений: 88
09.07.2010, 17:32
У меня дично на xampp'е скрипт головастика отлично работает, если конечно указать
HTML5
1
action="top2.php?x1=10&x2=20"


DenQ твой тоже норм работает)
0
0 / 0 / 0
Регистрация: 15.08.2010
Сообщений: 4
15.08.2010, 11:43
Здравствуйте. У меня тоже не работает метод GET. Не читает даже переменные с адресной строки. Работаю на Денвере.
Как я понимаю, нужно переустанавливать сервер? Надеюсь, что не обязательно...
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
15.08.2010, 12:00
Merikel, покажите свое творение (я имею ввиду код).
0
0 / 0 / 0
Регистрация: 15.08.2010
Сообщений: 4
15.08.2010, 12:06
вот мой код=)
echo $a;
а в адресной строке пишу http://phpserver/php/index.php?a=345
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
15.08.2010, 12:13
не $a, а $_GET['a']
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2010, 12:13
Помогаю со студенческими работами здесь

Метод получает другой метод, как аргумент. Как это работает?
Добрый день, ребят. Есть такая программа: package javaapplication13; class Block{ int a, b, c; int volume; ...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++

Не работает метод GET
Всем привет!!!! столкнулся с проблемой,что пишу к пимеру echo $a; и до этого я не объявлял её и я деумал браузер выдаст ошибку что...

Не работает метод GET
Добрый день. Никак не могу разобраться в проблеме при попытке передать что-либо методами GET, POST При разборе этого примера: ...

Метод не работает
Все добра! написал метод. он ругается и не работает. подскажите пожалуйста, что не так. private void SumKT (){ DataSourceBase...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru