Вот такой у меня ламерский вопрос
Всё перепробовал
Из БД 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>
Потом попробовал готовый скрипт, всё равно не работает.
В чём может быть причина?
27 апреля 2008 в 1:00
Ну положим не в PHP 5, а в PHP 4.1 о чем и написано в документации, которую Вы, судя по всему, так и не потрудились скачать
26 апреля 2008 в 22:04
Всем спасибо
Мне хороший человек объяснил, что в PHP5 принципиальное изменение по этому поводу было
26 апреля 2008 в 21:04
возьми книгу Котеров и Костеров "Php 5 наиболее полное руководство в подлиннике" и почитай.
книжка хорошая и там написано подробно о томкак пользоваться формами.
26 апреля 2008 в 17:01
Я боюсь, что там где я поставил массив, там ошибку и выдаёт, в этом коде он не работает.
<?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 и сразу ошибка, а до этого просто не работало
26 апреля 2008 в 17:01
Все. Пока не скачаешь мануал я, что-либо объяснять отказываюсь
26 апреля 2008 в 17:01
если ты в закавыченном в " тексте используешь вставку переменной из Массива, нужно заключать их в {}
вот:
echo "переменная из массива POST: ${POST['ch']}";
но, моё имхо, что такие вставки – плохочитаемое ЗЛО и писать лучше так:
echo 'переменная из массива POST: '.$POST['ch'];
а самоучитель, похоже, не ахти какой…
ищи чего другого.
26 апреля 2008 в 17:00
Тебе же сказали используй массив $_POST.
Вместо всех своих $ch пиши $_POST['ch']
26 апреля 2008 в 17:00
Выдаёт ошибку
26 апреля 2008 в 17:00
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
26 апреля 2008 в 17:00
Какую ошибку? //Тебе же сказали используй массив $_POST.//
26 апреля 2008 в 17:00
Тут сидят телепаты и все знают, что у тобя находится в файле Z:\home\test1.ru\www\obrabotka.php на 6 строке.
Скачай себе мануал с php.net
И еще, за такой код
<select name="delivery" size="2" multiple="multiple">
<option>Срочная
<option>Обычная
</select>
надо отрывать выступающие части тела. Тег <option> должен всегда закрываться
26 апреля 2008 в 16:05
Вы просто супер!
Всё работает!
Но теперь у меня другой вопрос:
Сейчас я прохожу обучалку Евгения Попова и там такое вот задание:
<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, и мне нужно искать другую обучалку? И какую интерактивную обучалку вы можете посоветовать новичку?
26 апреля 2008 в 16:04
В принципе, в php.ini была переменная register_globals (в какой-то более новой версии она уже, быть может, устарела). Если ее установаить в true, тот код должен работать. Но это не является, так сказать, хорошим стилем.
26 апреля 2008 в 16:03
А, что такое $formtext1? Что ожидается увидеть?
Из, того, что я понял, то вам нужно так
<form method="post" action="act.php">
<input type="text" name="edit1">
<input type="submit">
</form>
act.php
<?php
echo $_POST['edit1'];
?>
26 апреля 2008 в 16:03
//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'];
?>
26 апреля 2008 в 16:03
Опередил