Уважаемая Администрация, форумчане. Я отношусь к той категории нубов, которые начинают изучать основы построения веб-страниц и раздражают мирных программеров глупыми вопросами, но чтобы стать опытным это все нужно пройти;) постарась быть более предметным и информативным.
При составлении простешей формы( Имя.Фамилия. Имейл. Комментарий) которая состоит из самой формы и сценария я столкнулся с со следующей проблемой.
Дело в том что информация вбиваемая в шаблон формы(Имя. Фамилия. Имейл. Комментарий) не отображается при последующем нажатии кнопки "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 и т. д. в редакторе сообщений
P.S. В следующий раз пользуйтесь, пожалуйста, тегами форума для подсветки исходников - кнопочки PHP, HTML и т. д. в редакторе сообщений
Спустя 10 минут, 29 секунд (24.12.2009 - 02:40) inpost написал(а):
VolCh какой $_GET если форма передаётся как POST??? xD
В начале передаются как $_POST['имя'] данные, их переводишь в обычные переменные, а потом их используешь на странице! Вид переведения таков:
В начале передаются как $_POST['имя'] данные, их переводишь в обычные переменные, а потом их используешь на странице! Вид переведения таков:
if (isset($_POST['FirstName'])) {$FirstName = $_POST['FirstName'];}
Спустя 7 минут, 19 секунд (24.12.2009 - 02:47) VolCh написал(а):
Сорри, запарился, действительно $_POST
Спустя 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 написал(а):
Не желательно при вводе, желательно при выводе
Спустя 4 часа, 45 минут, 21 секунда (24.12.2009 - 12:39) Gabriel написал(а):
qpayct
а чего их на вводе проверять? на выводе через htmlspecialchars и делов то, ато после таких провершиков на популярных форумах, тракерах(или как оно там называеться) все мои ники заняты а писать что-то типа Gabriel45825451627 некрасиво и вот такой ник уже не проходит <Grabriel> хотя вредоносного там ничего нет.
а чего их на вводе проверять? на выводе через htmlspecialchars и делов то, ато после таких провершиков на популярных форумах, тракерах(или как оно там называеться) все мои ники заняты а писать что-то типа Gabriel45825451627 некрасиво и вот такой ник уже не проходит <Grabriel> хотя вредоносного там ничего нет.
Спустя 35 минут, 58 секунд (24.12.2009 - 13:15) twin написал(а):
Спустя 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
Работает? Я чего-то не догоняю, как может $_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 написал(а):
Именно так
Спустя 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.
Только к безопасности это отношения не имеет, данные все равно нужно обрабатывать правильно.
Только к безопасности это отношения не имеет, данные все равно нужно обрабатывать правильно.