-
Проблемка PHP!
Вообщем ситуация такая начал изучать PHP дошел до раздела о создании форм. Так вот при создании файла index.html со след. кодом:
<html>
<head>
<title></title>
</head>
<body>
<center><h3>Начало моего сайта</h3></center>
<form action="act.php" method="POST">
<h1>Ваш возраст</h1>
<input type="text" name="var">
<input type="submit" value="Добавить">
</form>
</body>
</html>
а также файл act.php со след кодом:
<?php
echo"Мой возраст:";
echo $_REQUEST["var"];
?>
При запуске выдается ошибка: PHP Notice: "Undefined index: soon in D:\www\act.php on line 7".
Объясните пожалуйста, в ошибка, не могу поняь т.к. начал изучать язык только неделю назад, код правильный, а ничего не выходит!
-
Правильно будет так
echo $_POST["var"];
-
Ты кстати не весь текст act.php запостил...
-
Как вариант:
[PHP]
<?
//Проверяем на не пустую переменную
// Если всё ок выводим её
if(isset($_POST['var']) && @$_POST['var'] !== '')
{
$var1 = $_POST['var'];
echo"Мой возраст:";
echo $var1;
}
// Если всё плохо - идём обратно.
else
{
header("location: index.html");
}
?>
[/PHP]
-
[QUOTE=vitos73;2130210]Правильно будет так
echo $_POST["var"];[/QUOTE]
в таком варианте результат аналогичный - ничего не изменилось, пробывал еще до того как написл на форуме.
Может это лажа в самих настройках PHP. Может нужно подправить php.ini или дело не в нем???
-
А! попробуй переменную var переименовать
-
$HTTP_POST_VARS['var'] - так еще попробовать можно
-
[QUOTE=RealN;2130415]Как вариант:
[PHP]
<?
//Проверяем на не пустую переменную
// Если всё ок выводим её
if(isset($_POST['var']) && @$_POST['var'] !== '')
{
$var1 = $_POST['var'];
echo"Мой возраст:";
echo $var1;
}
// Если всё плохо - идём обратно.
else
{
header("location: index.html");
}
?>
[/PHP][/QUOTE]
Мне нужна не проверка на ошибки, а разобраться, что здесь не работает!!!
Люди помогите, не могу понять че за херня с этим PHP
-
[QUOTE=RealN;2130461]$HTTP_POST_VARS['var'] - так еще попробовать можно[/QUOTE]
только что попробывал этим способом - результат неизменился!
Мой возраст: PHP Notice: Undefined variable: HTTP_POST_VARS in D:\www\act.php on line 5 !!!!!!
-
Тогда измени название переменной var на var1
-
[QUOTE]if(isset($_POST['var']) && @$_POST['var'] !== '')[/QUOTE]
псина, кстати необязательна, если 1-е условие не выполниться, до проверки 2-го дело недойдёт
[QUOTE]$HTTP_POST_VARS['var'][/QUOTE] устаревшая форма
ошибка в чем - первое что приходит в голову - у тебя там русские символы гдето
-
[QUOTE=крыс;2132526]
ошибка в чем - первое что приходит в голову - у тебя там русские символы гдето[/QUOTE]
у мня седня было такое, ужо в панику впал! Переписал 1(!) строку и все заработало :out:
-
Если ты с таким не можешь разобраться, то по всей видимости спешишь сильно и не прочитал как работают формы. Это же ж примитив. На всякий случай тебе всегда поможет функция var_dump(). В твоем случае дамп глобального массивов $_POST. А вообще учись задавать вопросы корректно. Нужно указывать версию PHP,веб-сервера (apache,nginx,lighttpd или что у тебя там). Кроме этого приводи полный листинг кода. То что ты привел в первом посте - бред, в твоем примере не совпадают названия переменных в коде и в сообщении об ошибке. Учись задавать вопросы правильно, тогда тебе смогут помочь.
-
[QUOTE=vitos73;2130210]Правильно будет так
echo $_POST["var"];[/QUOTE]
В чем ошитбка не знаю но точно не в этом
REQUEST это корректная форма обращения к переменной переданной любым из методов POST or GET
МОжет мысль и глупая но попробуй кавычки одинарные поставить:
$do_it = $_REQUEST['do_it'];
echo $do_it;
-
Мысль не может, а точно такая как ты сказал. :) Двойные и одинарные кавычки отличаются только способом интерпретации.
-
RealIN:
$var1 = $_POST['var']; - не нужно лишний раз забивать память. В данном случае точно.
вместо
echo"Мой возраст:";
echo $var1;
лучше писать просто
echo 'Мой возвраст: '.$var1;
@$_POST['var'] !== '' лучше заменить на empty($_POST['var']);
По теме:
Привыкайте $_REQUEST разбивать на пост и гет.
Также всегда помните, что названия переменных может быть зарезервированным словом, читайте php.net и все у вас получится. Сам автор что-то сильно напутал из-за невнимательности. Перечитайте на всякий случай главу вашего учебника, скорее всего вопросов не будет. Форум - это когда нужен совет в чем-то большем, чем просто синтаксисе языка
-
А empty лучше заменить на isset(). И так можно продолжать до бесконечности.
-
isset (не is_set) проверяет была ли определена переменная, а empty проверяет пустая ли переменная. Если сделать emtpy переменной, которой нет, то это будет notice. В то же время переменная может быть определена, но оставаться пустой. Поэтому делается это так
if (isSet($my_var)) && !empty($_my_var)) echo 'tratat';
-
-
[QUOTE=commando;2175398]Если сделать emtpy переменной, которой нет, то это будет notice. [/QUOTE]
[url]http://ua2.php.net/empty[/url]
empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set.
notice не будет. достаточно:
if (!empty($_my_var))