[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простейшая форма, но..
NIkk_
Здравствуйте.
Уважаемая Администрация, форумчане. Я отношусь к той категории нубов, которые начинают изучать основы построения веб-страниц и раздражают мирных программеров глупыми вопросами, но чтобы стать опытным это все нужно пройти;) постарась быть более предметным и информативным.

При составлении простешей формы( Имя.Фамилия. Имейл. Комментарий) которая состоит из самой формы и сценария я столкнулся с со следующей проблемой.
Дело в том что информация вбиваемая в шаблон формы(Имя. Фамилия. Имейл. Комментарий) не отображается при последующем нажатии кнопки "Subit" в новой странице. Перепробовал все, результат не без изменений.

Форма:

<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 nаmе ie $FirstName.<BR>\n");
print ("Your last name is $LastName.<BR>\n");
print ("Your е-inail address is $Email.<BR>\n");
print ("This is what you had to say:<BR>\n $comments<BR>\n");
?>
</BODY>
</HTML>


Прошу помощи.



Спустя 47 минут, 28 секунд (24.12.2009 - 02:30) VolCh написал(а):
Похоже у вас отключена директива register_globals. Включать её не желательно, просто $FirstName и т. п. замените на $_GET['FirstName']

P.S. В следующий раз пользуйтесь, пожалуйста, тегами форума для подсветки исходников - кнопочки PHP, HTML и т. д. в редакторе сообщений

Спустя 10 минут, 29 секунд (24.12.2009 - 02:40) inpost написал(а):
VolCh какой $_GET если форма передаётся как POST??? xD


В начале передаются как $_POST['имя'] данные, их переводишь в обычные переменные, а потом их используешь на странице! Вид переведения таков:

if (isset($_POST['FirstName'])) {$FirstName = $_POST['FirstName'];}

Спустя 7 минут, 19 секунд (24.12.2009 - 02:47) VolCh написал(а):
Сорри, запарился, действительно $_POST rolleyes.gif

Спустя 17 минут, 46 секунд (24.12.2009 - 03:05) qpayct написал(а):
На будущее, в целях защиты, раз уже посоветовали не включать рег.,глоб., желательно проверять переменные на предмет нежелательной информации такой, как скрипты. ;-)

Спустя 3 часа, 7 минут, 16 секунд (24.12.2009 - 06:12) twin написал(а):
Цитата
желательно проверять переменные на предмет нежелательной информации такой, как скрипты. ;-)

Нежелательно.

Спустя 39 минут, 27 секунд (24.12.2009 - 06:52) qpayct написал(а):
Цитата (twin @ 24.12.2009 - 05:12)
Нежелательно.

Обоснуй

Спустя 1 час, 1 минута, 58 секунд (24.12.2009 - 07:54) VolCh написал(а):
Не желательно при вводе, желательно при выводе wink.gif

Спустя 4 часа, 45 минут, 21 секунда (24.12.2009 - 12:39) Gabriel написал(а):
qpayct
а чего их на вводе проверять? на выводе через htmlspecialchars и делов то, ато после таких провершиков на популярных форумах, тракерах(или как оно там называеться) все мои ники заняты а писать что-то типа Gabriel45825451627 некрасиво и вот такой ник уже не проходит <Grabriel> хотя вредоносного там ничего нет.

Спустя 35 минут, 58 секунд (24.12.2009 - 13:15) twin написал(а):
qpayct
Цитата
Обоснуй

Да просто... Попробуй с таким подходом решить эту задачу.

Спустя 9 часов, 55 минут, 12 секунд (24.12.2009 - 23:10) NIkk_ написал(а):
Цитата (VolCh @ 23.12.2009 - 23:30)
Похоже у вас отключена директива register_globals. Включать её не желательно, просто  $FirstName и т. п. замените на $_GET['FirstName']

P.S. В следующий раз пользуйтесь, пожалуйста, тегами форума для подсветки исходников - кнопочки PHP, HTML  и т. д. в редакторе сообщений

Спасибо мэн, все работает!) Спасибо всем кто учавствовал.
При следующем посте учту теги.

Спустя 2 часа, 48 минут, 37 секунд (25.12.2009 - 01:59) inpost написал(а):
Nikk_
Работает? Я чего-то не догоняю, как может $_GET работать, когда передача идёт через POST??? O_o

Спустя 4 дня, 18 часов, 39 минут, 27 секунд (29.12.2009 - 20:38) NIkk_ написал(а):
Цитата (inpost @ 24.12.2009 - 22:59)
Nikk_
Работает? Я чего-то не догоняю, как может $_GET работать, когда передача идёт через POST??? O_o

Все отлично мэн, я учел опечатку)

Спустя 3 часа, 56 минут, 2 секунды (30.12.2009 - 00:35) qpayct написал(а):
А, тоесть хер с ним если в бд скрипт запишеться? Главное чтобы не выводился... или как?

Спустя 9 минут, 48 секунд (30.12.2009 - 00:44) Evilsoul написал(а):
Именно так cool.gif

Спустя 37 минут, 41 секунда (30.12.2009 - 01:22) Evilsoul написал(а):
Но если ты хочешь что бы у тебя в поле "имя" содержалось только [A-z и '] то лучше использовать eregi() и вывести юзеру сообщение что не корректно введены данные

Спустя 6 минут, 30 секунд (30.12.2009 - 01:28) twin написал(а):
Цитата
А, тоесть хер с ним если в бд скрипт запишеться? Главное чтобы не выводился... или как?


В базу пишется текст. Нет там никаких скриптов. Скриптом текст становится только там, где он может им стать. То есть на выводе.
По этому нужно четко понимать, где что. Если я хочу запостить скрипт, вот так допустим:

<script> alert('Ага!!!')</script>

что бы показать тебе его безопасность, то и увидишь ты его текстом. А вот если кто то не через твой фильтр в базу это занесет, а ты на выдаче не обработаешь, то тогда каюк.

Цитата
то лучше использовать eregi()

eregi() деприкатед в следующих версиях. Забудь про неё.

Спустя 33 минуты, 32 секунды (30.12.2009 - 02:02) Evilsoul написал(а):
а что же использовать что бы не вводи в поле "Имя" или "Фамилия" разную чепуху @#&$&! и получали сообщение он не корректности?

Спустя 3 минуты, 12 секунд (30.12.2009 - 02:05) twin написал(а):
Это вопросы модерации. Если такие символы не желательны, можно их запретить. Вернее разрешить то, что можно, а остальное запретить. Делать это надо не eregi семейством, а preg.
Только к безопасности это отношения не имеет, данные все равно нужно обрабатывать правильно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.