singlepost

Переменные из форм не работают в обработчике (PHP) << На главную или назад  

Вот такой у меня ламерский вопрос
Всё перепробовал :(
Из БД PHP берёт перменные нормально, а с форм из страницы html – нет :(
Сначала я в ручную писал с обучалки, потом попробовал простейший код типа:
<form name="form1" method="post" action="PHPobrabotka.php">
<p><input type="submit" name="formbutton1" value="Ввод"></p>
</form>
и в PHPobrabotka.php
<html><body>
<? echo $formtext1 ?>
</body></html>
Потом попробовал готовый скрипт, всё равно не работает.

В чём может быть причина? :(

16 ответов в теме “Переменные из форм не работают в обработчике (PHP)”

  1. 16
    Антон Щиров ответил:

    Ну положим не в PHP 5, а в PHP 4.1 о чем и написано в документации, которую Вы, судя по всему, так и не потрудились скачать

  2. 15
    Денис Курланов ответил:

    Всем спасибо :)
    Мне хороший человек объяснил, что в PHP5 принципиальное изменение по этому поводу было :)

  3. 14
    Димка Дроздик ответил:

    возьми книгу Котеров и Костеров "Php 5 наиболее полное руководство в подлиннике" и почитай.
    книжка хорошая и там написано подробно о томкак пользоваться формами.

  4. 13
    Денис Курланов ответил:

    Я боюсь, что там где я поставил массив, там ошибку и выдаёт, в этом коде он не работает.

    <?php

    if (!isset($ch1)) {$ch1="нет";}
    if (!isset($ch2)) {$ch2="нет";}
    mail("kurlanovd@yandex.ru", "Заказ диска", "Человек по имени $_POST['fio'] , указавший пароль $pass, указал свой $email, выбрал вариат носителя $disk, указал, что он хочет видеть на диске следующие курсы:\n
    Курс по созданию сайтов – $ch1 \n
    Курс по созданию книг – $ch2 \n
    Указал тип доставки – $delivery, в качестве доманшнего адреса и примечаний указал – $add_text ." );

    ?>

    Для теста поставил $_POST и сразу ошибка, а до этого просто не работало :)

  5. 12
    Антон Щиров ответил:

    Все. Пока не скачаешь мануал я, что-либо объяснять отказываюсь

  6. 11
    Рамиль Каримов ответил:

    если ты в закавыченном в " тексте используешь вставку переменной из Массива, нужно заключать их в {}
    вот:
    echo "переменная из массива POST: ${POST['ch']}";
    но, моё имхо, что такие вставки – плохочитаемое ЗЛО и писать лучше так:
    echo 'переменная из массива POST: '.$POST['ch'];
    а самоучитель, похоже, не ахти какой…
    ищи чего другого.

  7. 10
    Антон Щиров ответил:

    Тебе же сказали используй массив $_POST.

    Вместо всех своих $ch пиши $_POST['ch']

  8. 9
    Денис Курланов ответил:

    Выдаёт ошибку

  9. 8
    Денис Курланов ответил:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\test1.ru\www\obrabotka.php on line 6

  10. 7
    Марат Васильевич ответил:

    Какую ошибку? //Тебе же сказали используй массив $_POST.//

  11. 6
    Антон Щиров ответил:

    Тут сидят телепаты и все знают, что у тобя находится в файле Z:\home\test1.ru\www\obrabotka.php на 6 строке.

    Скачай себе мануал с php.net

    И еще, за такой код
    <select name="delivery" size="2" multiple="multiple">
    <option>Срочная
    <option>Обычная
    </select>

    надо отрывать выступающие части тела. Тег <option> должен всегда закрываться

  12. 5
    Денис Курланов ответил:

    Вы просто супер!
    Всё работает!

    Но теперь у меня другой вопрос:
    Сейчас я прохожу обучалку Евгения Попова и там такое вот задание:

    <form action="obrabotka.php" method="post" name="form1">
    <font face="Verdana" size="3" color="#cc0000"><br>Введите ФИО:<br>
    <input type="text" name="fio">
    <br>Введите пароль:<br>
    <input type="password" name="pass">
    <br>Введите email:<br>
    <input type="text" name="email">
    <br>Выберите вариант носителя информации:<br>
    <input type="radio" name="disk" value="cd" checked>CD<br>
    <input type="radio" name="disk" value="dvd">DVD<br>
    <br>Укажите, какие курсы Вы хотите видеть на диске:<br>
    <input type="checkbox" name="ch1" value="Да" checked>Курс по созданию сайтов.<br>
    <input type="checkbox" name="ch2" value="Да">Курс по созданию книг.<br>
    Укажите тип доставки<br>
    <select name="delivery" size="2" multiple="multiple">
    <option>Срочная
    <option>Обычная
    </select>
    <br> Введите свой домашний адрес и примечания:<br>
    <textarea name="add_text" rows="5" cols"30">
    </textarea>
    <br>
    <input type="submit" value="Отправить">
    </form>
    *Подробно можно не читать :)

    Ну и obrabotka.php
    <?php

    if (!isset($ch1)) {$ch1="нет";}
    if (!isset($ch2)) {$ch2="нет";}
    mail("kurlanovd@yandex.ru", "Заказ диска", "Человек по имени $fio, указавший пароль $pass, указал свой $email, выбрал вариат носителя $disk, указал, что он хочет видеть на диске следующие курсы:\n
    Курс по созданию сайтов – $ch1 \n
    Курс по созданию книг – $ch2 \n
    Указал тип доставки – $delivery, в качестве доманшнего адреса и примечаний указал – $add_text ." );

    ?>

    И там у меня такая же проблема, хотя я точно (?) скопировал из обучалки.

    Письмо приходит, но без переменных!

    Это может быть связано с тем, что обучалка ориентирована на старую версию PHP, и мне нужно искать другую обучалку? И какую интерактивную обучалку вы можете посоветовать новичку? :)

  13. 4
    Юрий Петров ответил:

    В принципе, в php.ini была переменная register_globals (в какой-то более новой версии она уже, быть может, устарела). Если ее установаить в true, тот код должен работать. Но это не является, так сказать, хорошим стилем.

  14. 3
    Антон Щиров ответил:

    А, что такое $formtext1? Что ожидается увидеть?

    Из, того, что я понял, то вам нужно так
    <form method="post" action="act.php">
    <input type="text" name="edit1">
    <input type="submit">
    </form>

    act.php
    <?php
    echo $_POST['edit1'];
    ?>

  15. 2
    Владимир Рудой ответил:

    //www.ibm.com/developerworks/ru/edu/os-phptut1/... – туториал о PHP, в частности есть информация про формы..

    Все выглядит примерно так:
    <!– formtest.html –>
    <html>
    <body>
    <form method="POST" action="index.php">
    <input type="hidden" name="somevar" value="Hello, World">
    <input type="submit">
    </form>
    </body>

    </html>
    <!– index.php –>
    <?php
    echo $_POST['somevar'];
    ?>

  16. 1
    Владимир Рудой ответил:

    Опередил :)

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.