Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите начинающему
 
 автор: SeshSe   (06.04.2009 в 00:36)   письмо автору
 
 

Начал изучать 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)

  Ответить  
 
 автор: Yuriev   (06.04.2009 в 09:03)   письмо автору
 
   для: SeshSe   (06.04.2009 в 00:36)
 

Ошибки нет, есть недоработка.
Все не "аглицкие" буковки (Вася Пупкин) браузер переделывает в "%D0%92%D0%...".
Чтобы получить Васю Пупкина надо переданную строку вернуть назад
echo "Ваше имя: urldecode($_POST[`name`])";

  Ответить  
 
 автор: SATUPLOAD   (06.04.2009 в 09:19)   письмо автору
 
   для: 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;
?>

  Ответить  
 
 автор: SeshSe   (07.04.2009 в 01:49)   письмо автору
 
   для: SATUPLOAD   (06.04.2009 в 09:19)
 

А ещё один наивный вопрос :) ?

У меня в DzSoft PHP Editor при проверке уже опубликованных в Инете скриптов выводит:

Error in my_thread_global_end(): 1 threads didn't exit

иногда вместе с активизируемой формой, иногда без неё...
Что это значит?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования