как исправить код с php4 для php5

NetIce

Guest
как исправить код с php4 для php5

Доброе время суток
на php4 этот код работал
$form_block = "<form name=\"FormName\" action=\"test1.php\" method=\"post\">
<select size=\"1\" name=\"qwe\">
<option value=\"1\">Вариант1</option>
<option value=\"2\">Вариант2</option>
<INPUT type=\"hidden\" name=\"qw\" value=\"ds\">
<input type=\"submit\" value=\"Send\">
</select>
</form>
\n";


if ($qw != "ds") {
echo "$form_block";
} elseif ($qw == "ds") {
if ($qwe == "") {
echo "отправлено";
}
на php5 c register_global off не работает
как исправить код под php5 ?
 

jonjonson

Guest
Так править не под php5, а под register_global off
Тобишь
if (isset($_POST['qw']) && 'ds' != $_POST['qw']) {
...
Или
if (isset($_POST['action']) && 'ds' != $_POST['action']) {
...
}
 

NetIce

Guest
jonjonson
если я правильно понял то
то код должен выглядить так:
$form_block = "<form name=\"FormName\" action=\"test3.php\" method=\"post\">
<select size=\"1\" name=\"qwe\">
<option value=\"1\">Вариант1</option>
<option value=\"2\">Вариант2</option>
<INPUT type=\"hidden\" name=\"qw\" value=\"ds\">
<input type=\"submit\" value=\"Send\">
</select>
</form>
\n";

if (isset($_POST['qw']) && 'ds' != $_POST['qw']) {
echo "$form_block";
} elseif ($qw == "ds") {
if ($qwe == "") {
echo "отправлено";
}
но он не работет выдает ошибку
Parse error: syntax error, unexpected $end in v:\home\localhost\www\test3.php on line 20
я понимаю что ошибка синтаксическая но где найти не могу
 

NetIce

Guest
поставил недостающую }
но все равно не работает не могу разобратся в чем дело выдает ошибку
Notice: Undefined variable: qw in v:\home\localhost\www\test3.php on line 15
вот мой код:
<?php

$form_block = "<form name=\"FormName\" action=\"test3.php\" method=\"post\">
<select size=\"1\" name=\"qwe\">
<option value=\"1\">Вариант1</option>
<option value=\"2\">Вариант2</option>
<INPUT type=\"hidden\" name=\"qw\" value=\"ds\">
<input type=\"submit\" value=\"Send\">
</select>
</form>
\n";

if (isset($_POST['qw']) && 'ds' != $_POST['qw']) {
echo "$form_block";
} elseif ($qw == "ds") {
if ($qwe == "") {
echo "отправлено";
}
}
?>
 

crocodile2u

http://vbolshov.org.ru
NetIce: А теперь подумай еще немного - головой подумай - и незачем постить весь свой код сюда.
 

NetIce

Guest
Tor
сделал так:
<select size=\"1\" name=\"qw\">

elseif ($qw == "ds")
все равно не работает, может я что не так делаю ? если да то скажите чт ои скажите как правильно будет
 

Tor

Новичок
в одном месте у тебя
$_POST['qw']

в другом
$qw

так как же правильно, а?
 

NetIce

Guest
Tor
я сделалтак
if (isset($_POST['qw']) && 'ds' != $_POST['qw']) {
echo "$form_block";
} elseif ($_POST['qw'] == "ds") {
if ($_POST['qw'] == "") {
echo "отправлено";
}
}
все равно ошика осталась
Notice: Undefined index: qw in v:\home\localhost\www\test3.php on line 15

SiMM
читал но не получается сделать то что надо ...
неужели так сложно указать человеку на ошибку и сказать в крации в чем причита, если он сам разобратся не может, я понимаючто почитав документацию юзнаешь много но иногда гне получается сделать самому вот и спрашиваю в чем ошибка и как ее исправить ?

Всем
Можно пример рабочего кода и краткое описание что в моем не так ?
 

SiMM

Новичок
> неужели так сложно указать человеку на ошибку и сказать в крации в чем причита
Неужели так сложно прочитать сообщение PHP и осмыслить его? Да пусть хоть даже со словарём? Ведь он тебе точно указывает место и причину.
> Notice: Undefined index: qw in v:\home\localhost\www\test3.php on line 15
 

NetIce

Guest
Tor
нет не заработало :(

-~{}~ 16.03.05 15:54:

SiMM
да указывается места и причана
но я не знаю что это за причина и как ее исправить
 

yugene

Отошел от дел
PHP:
elseif ($_POST['qw'] == "ds")
{
    if ($_POST['qw'] == "")
    {
        echo "отправлено";
    }
}
а в каком случае должен выполниться этот код?

и еще: для чего ты isset() в первом if'е используешь, знаешь?
 

NetIce

Guest
yugene
//если форма незагружена загружает ее
if (isset($_POST['qw']) && 'ds' != $_POST['qw']) {
echo "$form_block";
}
//если нажата кнопка то обрабатываем и выводим сообщение
elseif ($_POST['qw'] == "ds") {
if ($_POST['qw'] == "") {
echo "отправлено";
}
}
 

yugene

Отошел от дел
задам вопрос точнее: в каком случае выполнится код

PHP:
echo "отправлено";
?
 

NetIce

Guest
yugene
здесь не весь код
там еще делается проверка на заполнение полей
if ($_POST['qw'] == "") {
if ($qw == "") {
$qw_err = "ошибка не заполнено поле<br>";
$send = "no";
"отправлено" выводится если все ок
весь код ен привожу так как он не нужен проблема раньше
 

Panchous

Павел
NetIce
мда.... от программирования ты далек...
неужели неясно, что НЕОБХОДИМО ВЕЗДЕ ЗАМЕНИТЬ $var на $_POST['var'], где var - имя параметра из запроса ПОСТ?
 

yugene

Отошел от дел
наводящие вопросы не помогают :(
проблема либо в том, как ты пишешь код, либо в том, как ты его сюда копипастишь.

твой код:
PHP:
elseif ($_POST['qw'] == "ds")
{
    if ($_POST['qw'] == "")
    {
        echo "отправлено";
    }
}
перевожу его для тебя же на русский язык:

если в переменной $qw лежит строка "ds"
{
если в переменной $qw ничего не лежит
{
пишу, что все хорошо
}
}

как ты думаешь, когда-нибудь программа тебе напишет, что все хорошо?!?
 
Сверху