Вопрос о передаче данных

Ysn

Guest
Вопрос о передаче данных

Создано меню. Методом Post передаю данные из формы. Нельзя ли эти данные из формы, передавать этому же файлу, содержащему это меню? Проблема в том, что в момент первого запуска - ошибка, т.к. в Post нет никаких переменных.
 

lucas

Guest
А где тут cookies?
PHP:
if (isSet($_POST["variable_name"]) == true)
{   echo $_POST["variable_name"] ;
}
else
{   echo "Submit form" ;
}
 

Ashotovich

Новичок
"== true"-то зачем писать? Не легче ли просто "if (isset($_POST['variable_name']))"?
 

lucas

Guest
2Ashotovich
"== true"-то зачем писать? Не легче ли просто "if (isset($_POST['variable_name']))"?
Существует такое понятие, как сложившийся стиль кодинга. Мне так удобнее.
Следующий вопрос.
 

Фанат

oncle terrible
Команда форума
Лукас, ты себе льстишь.
Это не вопрос был, а поправочка.
Так что ты свободен, вопросов к тебе нет.
 

Фанат

oncle terrible
Команда форума
Йсн.
На самом деле вопрос сложнее, чем те отписки, которые тебе тут дают.

РНР выдает тебе не ошибку, а поправочку. Он просто тебе подсказывает, что переменная, к которой ты хочешь обратиться - не определена. Не существует.
может быть так и надо, а может быть - нет. его дело предупредить.
И предупредить не зря.
Если у тебя вэтой переменной ничего нет, то хакер в нее подсунуть может что угодно, а может и не хакер, но все равно - ты не знаешь, что в ней есть. может быть, ты сам ее забыл.
а РНР тебе напоминает.
чтобы это сообщение не появлялось, надо все переменные объявлять заранее.

если пришел метод пост - заведи переменные из него.
не пришел? Заведи пустые.
 

Ysn

Guest
Во-первых, всем спасибо. Очень помогли.

Фанат, к тебе вопрос:

Как завести пустые переменные?
 

Фанат

oncle terrible
Команда форума
В начале скрипта просто определяешь все переменные, которыми будешь в дальнейшем пользоваться.

То, что написал Ашотович - это, конечно, слишком жирно, если учесть, что переменных много.
Лучше писать в одну строчку.
if (isset($_POST['var'])) $var=$_POST['var']; else $var="";
Ты сам убедишься, насколько это удобннее, когда объявление переменных занимает у тебя несколько строк, а не два экрана
 

Altex

Новичок
Я тут подумал слегка... может сделать функцию -
PHP:
function var(&$var);
{
    if (!isset($var))
    {
        $var = '';
    }
    return 1;
}
 

Altex

Новичок
<?
var($_POST['var1']);
var($_POST['var2']);
var($_POST['var3']);
....
var($temp);
?>
- объявления переменных
 

Altex

Новичок
Автор оригинала: Altex
Я тут подумал слегка... может сделать функцию -
PHP:
function var(&$var);
{
    if (!isset($var))
    {
        $var = '';
    }
    return 1;
}
Доработаем немного:
PHP:
function var(&$var);
{
    if (!isset($var))
    {
        $var = '';
    }
    return $var;
}
Тода объявлять переменные можно так:
PHP:
$myvar1 = var($_POST['myvariable_1']);
$myvar2 = var($_POST['myvariable_2']);
$myvar3 = var($_POST['myvariable_3']);

var($super_var);
 

Ashotovich

Новичок
Такая функция будет уместна, если у тебя десятки переменных. Да и то - только с точки зрения компактности кода. А если переменных штук пять, то незачем так заморачиваться, достаточно объявлять их как в последнем примере уважаемого Фаната.
 
Сверху