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

Форум PHP

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

 

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

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

тема: Почему не работает простой скрипт
 
 автор: Johnlis   (11.01.2009 в 20:37)   письмо автору
 
 

Начал изучать РНР на простых примерах и решил проверить этот простой скрипт, который приводится во многих источниках. Однако он не работает, выдаёт текст, только ни одной переменной на экран н выводит. Перепробовал разные комбинации и ничего. В чём проблема?

Примеры использования PHP

Работа с формами.

В этом примере показано как в PHP легко обрабатывать данные с HTML - форм.

Создадим простой HTML файл.

<HTML>
<HEAD>
<TITLE>Запрос информации</TITLE>
<BODY>
<CENTER>
Хотите больше знать о наших товарах?
<P>
<TABLE WIDTH = 400><TR><TD align = right>
<FORM ACTION="email.php3" METHOD="POST">
Ваше имя:<BR>
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">
<P>
Ваш email:<BR>
<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">
<P>
Меня интересуют:
<SELECT NAME="preference">
<OPTION value = "Яблоки">Яблоки
<OPTION value = "Апельсины">Апельсины
</SELECT>
<P>
<INPUT TYPE="submit" VALUE="Отправить запрос!">
</FORM>
</TD></TR></TABLE></CENTER>
</BODY>
</HTML>

Назовем этот файл request.html. В нем мы указали, что данные формы будут обрабатываться файлом email.php3. Приведем его содержание:

<?
/* Этот скрипт получает переменные из request.html */
PRINT "<CENTER>";
PRINT "Привет, $name.";
PRINT "<BR><BR>";
PRINT "Спасибо за ваш интерес.<BR><BR>";
PRINT "Вас интересуют $preference. Информацию о них мы пошлем вам на email: $email.";
PRINT "</CENTER>";
?>

Теперь, если пользователь вызовет request.html и наберет в форме имя 'Вася', email: vasya@pupkin.com и скажет, что его интересуют 'Яблоки', а после этого нажмет "Отправить запрос!", то в ответ вызовется email.php3, который выведет на экран примерно следующее:


Привет, Вася

Спасибо за ваш интерес.

Вас интересуют Яблоки. Информацию о них мы пошлем вам на email: vasya@pupkin.com

  Ответить  
 
 автор: Trianon   (11.01.2009 в 20:41)   письмо автору
 
   для: Johnlis   (11.01.2009 в 20:37)
 

3 версия php, описываемая в этом тексте, применялась очень давно. Лет эдак 10 назад.

  Ответить  
 
 автор: Johnlis   (11.01.2009 в 20:44)   письмо автору
 
   для: Trianon   (11.01.2009 в 20:41)
 

Спасибо за ответ. А как на современный лад перевести данный код?

  Ответить  
 
 автор: Саня   (11.01.2009 в 20:49)   письмо автору
 
   для: Johnlis   (11.01.2009 в 20:44)
 

<?
/* Этот скрипт получает переменные из request.html */
PRINT "<CENTER>";
PRINT 
"Привет, ".$_POST['name'];
PRINT 
"<BR><BR>";
PRINT 
"Спасибо за ваш интерес.<BR><BR>";
PRINT 
"Вас интересуют ".$_POST['preference'].". Информацию о них мы пошлем вам на email: ".$_POST['email'];
PRINT 
"</CENTER>";
?>

Проблема в том, что скрипт расчитан на включённую директиву register_globals. Считается дурным тоном использование этой директивы в скриптах.

  Ответить  
 
 автор: BinLaden   (11.01.2009 в 21:08)   письмо автору
 
   для: Johnlis   (11.01.2009 в 20:44)
 

<?php
/* Этот скрипт получает переменные из request.html */

$name = isset( $_POST['name'] ) ? (string) $_POST['name'] : '';
$email = isset( $_POST['email'] ) ? (string) $_POST['email'] : '';
$preference = isset( $_POST['preference'] ) ? (string) $_POST['preference'] : '';

if( 
get_magic_quotes_gpc() )
{
    
$name stripslashes($name);
    
$email stripslashes($email);
    
$preference stripslashes($preference);
}

PRINT 
"<CENTER>";
PRINT 
"Привет, " htmlspecialchars($name) . ".";
PRINT 
"<BR><BR>";
PRINT 
"Спасибо за ваш интерес.<BR><BR>";
PRINT 
"Вас интересуют " htmlspecialchars($preference) . ". Информацию о них мы пошлем вам на email: " htmlspecialchars($email) . ".";
PRINT 
"</CENTER>";
?>

  Ответить  
 
 автор: Johnlis   (11.01.2009 в 21:17)   письмо автору
 
   для: BinLaden   (11.01.2009 в 21:08)
 

Спасибо участникам. Всё заработало нормально. Вопрос такой - как вставляется такой цветной код?

  Ответить  
 
 автор: Саня   (11.01.2009 в 21:19)   письмо автору
 
   для: Johnlis   (11.01.2009 в 21:17)
 

[сode]<?
// код
[/сode]

  Ответить  
 
 автор: BinLaden   (11.01.2009 в 21:20)   письмо автору
 
   для: Johnlis   (11.01.2009 в 21:17)
 

Он обрамляется в теги [code] ... [/code ]

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

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