|
|
|
| Начал изучать PHP.
Прочитал некоторые статьи. Установил Денвер 3 и DzSoft PHP Editor (share ware), и ещё Roadsend IDE.
Начал с самого простого. Ну фразы типа «здраствуй, мир» выходят без проблем.
Интересно хоть и простейшие формы отправить. И вот читаю:
<BLOCKQUOTE>.
Обработка форм
Предыдущие уроки были подготовительными. То есть, если Вы справились с ними, и у Вас все получилось, то Вам можно двигаться дальше. И сейчас я начну показывать Вам предназначение этого языка, а также его приемущества перед другими. Иными словами давайте ка передадим данные со страницы на страницу. Например, файл index.html будет содержать вот такую форму (на странице index.html):
Введите ваше имя:
HTML-код формы:
<form action="name.php" method="post">
Введите ваше имя: <input type="text" name="name" value="Вася Пупкин">
<input type="submit" value="Отправить">
</form>
Если Вы знаете html, то сложности разобраться в ее коде не будет никакого. А теперь надо сделать, чтобы текст из поля отобразился на другой странице. Прикол в том, что при нажатии на кнопку "Отправить" данные передаются на страницу, указанную в поле action="". В данном случае это name.php. Так что имя уже отправлено в переменной $name. Осталось его только прочитать, т. е. Вывести на экран эту переменную через функцию echo. Читаем (файл name.php):
<?
echo "Ваше имя: $name.";
?>
В результате на экране у Вас должно появиться "Ваше имя: Вася Пупкин." или другое, введеное Вами имя. Однако, далеко не все опытные программисты смогут согласиться с этим, хоть на вид и элементарным скриптом. Считается, что это далеко не самый лучший вид передачи данных. Вот как предложили бы они:
<?
echo "Ваше имя: $_POST[`name`]";
?>
А теперь давайте разберемся почему. Вместе с PHP 4 в архив кладется файл php.ini с настройками php. Все дело в register_globals = Off. В случае если в настройках выставлено register_globals = On, то будут работать оба варианта. Если же register_globals = Off, работать будет только второй....
</BLOCKQUOTE>
Я на DzSoft PHP Editor попробовал отправить форму, но вместо "Ваше имя: Вася Пупкин." получил: «Ваше имя: %D0%92%D0%B0%D1%81%D1%8F+%D0%9F%D1%83%D0%BF%D0%BA%D0%B8%D0%BD.»
В чём моя ошибка? (Работаю в ОС Windows XP) | |
|
|
|
|
|
|
|
для: SeshSe
(06.04.2009 в 00:36)
| | Ошибки нет, есть недоработка.
Все не "аглицкие" буковки (Вася Пупкин) браузер переделывает в "%D0%92%D0%...".
Чтобы получить Васю Пупкина надо переданную строку вернуть назад
echo "Ваше имя: urldecode($_POST[`name`])"; | |
|
|
|
|
|
|
|
для: SeshSe
(06.04.2009 в 00:36)
| | index.php
<form action="name.php" method="post">
Введите ваше имя: <input type="text" name="name" value="Вася Пупкин">
<input type="submit" value="Отправить">
</form>
-----------
name.php
<?
$name = $_POST[name];
print $name;
?> | |
|
|
|
|
|
|
|
для: SATUPLOAD
(06.04.2009 в 09:19)
| | А ещё один наивный вопрос :) ?
У меня в DzSoft PHP Editor при проверке уже опубликованных в Инете скриптов выводит:
Error in my_thread_global_end(): 1 threads didn't exit
иногда вместе с активизируемой формой, иногда без неё...
Что это значит? | |
|
|
|