Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите, неполучается обработать форму 
V
    Опции темы
greenbax
Дата 7.8.2008, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Ввожу форму в редакторе:
Код

<HTML>
<HEAD>
<TITLE>HTML Form</TITLE>
</HEAD>
<BODY>
<FORM ACTION="HandleForm.php"METHOD=POST>
First Name <INPUT TYPE=TEXT NAME="FirstName" SIZE=20><BR>
Last Name <INPUT TYPE=TEXT NAME="LastName" SIZE=40><BR>
E-mail Address <INPUT TYPE=TEXT NAME="Email" SIZE=60><BR>
Comments <TEXTAREA NAME ="Comments" ROWS=5 COLS=40></TEXTAREA><BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
</FORM>
</BODY>
</HTML>


Страницу, которая должна обработать форму:

Код

<HTML>
<HEAD>
<TITLE>Form Results</TITLE>
</HEAD>
<BODY>
<?php
 /*Эта страница получает и отрабатывает данные, принятые от "form.html".*/
print ("Your first name is $FirstName.<BR>\n");
print ("Your last name is $LastName.<BR>\n");
print ("Your E-mail address is $Email.<BR>\n");
print ("This is what you had to say:<BR>\n $Comments<BR>\n");
?>
</BODY>
</HTML>


Но когда ввожу данные в форму и нажимаю SUBMIT получается просто

Your first name is.
Your last name is.
Your E-mail address is.
This is what you had to say:

В чём ошибка? Подскажите

Это сообщение отредактировал(а) skyboy - 9.8.2008, 17:29
PM MAIL   Вверх
Onis
Дата 7.8.2008, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 18.6.2005
Где: Украина, Николаев

Репутация: нет
Всего: 3



Попробуй.
Код


print "Your first name is ".$_POST['FirstName'].".<BR>\n";
print "Your last name is ".$_POST['LastName'].".<BR>\n";
print "Your E-mail address is ".$_POST['Email'].".<BR>\n";
print "This is what you had to say:<BR>\n ".$_POST['Comments']."<BR>\n";



Это сообщение отредактировал(а) Onis - 7.8.2008, 19:13
PM MAIL   Вверх
greenbax
Дата 7.8.2008, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Спасибо большое, помогло!  smile 

А вы не можете объяснить, почему именно этот вариант правильный.
PM MAIL   Вверх
Onis
Дата 7.8.2008, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 18.6.2005
Где: Украина, Николаев

Репутация: нет
Всего: 3



В двух словах:

Данные с <TITLE>HTML Form</TITLE>  передаются в <TITLE>Form Results</TITLE> методом POST, следовательно искать их нужно в глобальном массиве с POST данными $_POST[]. Тоже самое с методом GET.

Подробнее читай в учебниках.
PM MAIL   Вверх
greenbax
Дата 9.8.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Ясно, спасибо.
PM MAIL   Вверх
piflit
Дата 11.8.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.9.2007

Репутация: нет
Всего: нет



greenbax твой первоначальный код будет рабочим при register globals on. по умолчанию - off
PM MAIL   Вверх
greenbax
Дата 11.8.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



а как поменять register globals off. на register globals on.
Я просто только взял учебник PHP в руки и делаю всё по инструкции, но там об этом ничего не написано
PM MAIL   Вверх
Sannis
Дата 11.8.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 6
Всего: 13



Не надо менять. Надо менять учебник. Посмотрите в этом разделе в прикреплённых темах литературу, почитайте доки на php.net и php.ru. В крайнем случае там можно найти ответ и на ваш вопрос smile


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Gold Dragon
Дата 11.8.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



попроси администратора сервера, который конечно же тебе откажет smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
piflit
Дата 11.8.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.9.2007

Репутация: нет
Всего: нет



Цитата(greenbax @ 11.8.2008,  11:07)
а как поменять register globals off. на register globals on.

в php.ini (поищи сам) есть такая строчка. а лучше, последуй совету Sannis  smile 
PM MAIL   Вверх
greenbax
Дата 11.8.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Да, действительно. Зашел по совету piflit в php.ini, есть такая строка  register globals - off, но изменить её нельзя. Учебник я взял другой, делаю по другому, но всё равно запарки с переменными. Может просто поискать подходящий хостинг?
PM MAIL   Вверх
Sannis
Дата 11.8.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 6
Всего: 13



Цитата(greenbax @  11.8.2008,  18:08 Найти цитируемый пост)
Может просто поискать подходящий хостинг?

Нет. Использование register_globals уже давно плохой тон, так что правильнее посать с использованием суперглобальных массивов $_GET, $_POST etc.


Цитата(greenbax @  11.8.2008,  18:08 Найти цитируемый пост)
Учебник я взял другой, делаю по другому, но всё равно запарки с переменными.

Какие теперь запарки? smile


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Feldmarschall
Дата 11.8.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



greenbax, я думаю, в твоих "запарках" виноват не хостинг.
PM   Вверх
greenbax
Дата 11.8.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Цитата

Какие теперь запарки?


Ну вот, создаю простую форму
<?
echo "<html><body><h1>";
echo "Hello, $my_name";
echo "</h1></body></html>"
?>

Потом в браузере ввожу:

http://мой_сайт/имя_файла.php?my_name=Ruslan

По идее должно получиться Hello, Ruslan

Но выдаёт просто Hello,

Может просто я в чём-то "парюсь"?
PM MAIL   Вверх
Sannis
Дата 11.8.2008, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 6
Всего: 13



greenbax, вы так и не поняли, что нужно писать так, как написал Onis? smile Так вот запомните и делайте именно так, проблем никогда не будет. 


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
gta4kv
Дата 11.8.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Что-бы получить из адресной строки, надо использовать $_GET

Код

<?
echo "<html><body><h1>";
echo "Hello, {$_GET['my_name']}";
echo "</h1></body></html>"
?>

PM MAIL   Вверх
greenbax
Дата 11.8.2008, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



   Да, я наступаю на одни и те же грабли. Но чёрт возьми! Что это за учебники, в которых, как я понимаю дже элементарного не могут объяснить. Кто нибуть может порекомендовать учебник, с которым не возникнет подобных проблем. Я пользовался учебниками:Самоучитель PHP 5 (Д.Н. Колисниченко) и Основы программирования на PHP (Ларри Ульман).
   Заранее спасибо.
PM MAIL   Вверх
Feldmarschall
Дата 12.8.2008, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



В этих учебниках объясняют устаревшее. РНР - динамично развивающийся язык. Некоторые нюансы меняются. Однако их не так много. Думаю, если ты не будешь их воспринимать с таким драматизмом, то изучение пойдет быстрее. 
Еще полезно ругать не автора учебника, а себя. Ведь можно было догадаться про GET по аналогии с POST. 
PM   Вверх
greenbax
Дата 12.8.2008, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Спасибо за совет.
PM MAIL   Вверх
greenbax
Дата 12.8.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



  Вроде бы пока всё ОК, надеюсь дальше проблем небудет

Это сообщение отредактировал(а) greenbax - 12.8.2008, 10:25
PM MAIL   Вверх
Feldmarschall
Дата 12.8.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



нет. в РНР в именах переменных важен регистр символов.
поэтому
echo "Hello, ".$_POST['my_name'];
кавычки после переменной необязательны.

сказанное верно для формы, переданной методом POST
PM   Вверх
greenbax
Дата 12.8.2008, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Feldmarscal спасибо, уже исправился
PM MAIL   Вверх
greenbax
Дата 26.8.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Задаю значение переменной FirstName, но браузер выдаёт просто hello. Как правильно придать значение переменной
<?
/* Эта страница может содержать строки с операторами print. */
$FirstName="Ruslan";
print "<html><body><h1>";
print "Hello, {$_POST['FirstName']}";
print "</h1></body></html>"
/* Эта страница может содержать дополнительный код после оператора print. */
?>

PM MAIL   Вверх
bars80080
Дата 26.8.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(greenbax @  26.8.2008,  16:30 Найти цитируемый пост)
Задаю значение переменной FirstName, но браузер выдаёт просто hello. Как правильно придать значение переменной
<?
/* Эта страница может содержать строки с операторами print. */
$FirstName="Ruslan";
print "<html><body><h1>";
print "Hello, {$_POST['FirstName']}";
print "</h1></body></html>"
/* Эта страница может содержать дополнительный код после оператора print. */
?>

не совсем понятно, ты получаешь из формы значение или просто переменной $FirstName присвоил значение "Ruslan" ?

в первом случае приведи код формы, во втором... лучше подожду, прежде чем гворить
PM MAIL WWW   Вверх
greenbax
Дата 26.8.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.8.2008

Репутация: нет
Всего: нет



Всё понял ошибку. Правильно должно быть так
<?
/* Эта страница может содержать строки с операторами print. */
$FirstName="Jude";
print "<html><body><h1>";
print "Hello,$FirstName";
print "</h1></body></html>"
/* Эта страница может содержать дополнительный код после оператора print. */
?>

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.