У меня не передаются данные из браузера в форму на сайте
Клиент заполняет простую форму и жмет "Отправить", но данные не передаются в форму.
Однако, всё работает, когда REGISTER_GLOBALS включен. Но как я понял, это не способствует безопасности сайта.
Как справиться с этой задачкой, не включая REGISTER_GLOBALS ?
Я знаю, что надо воспользоваться MosGetParam
$переменная1 = mosGetParam( $_REQUEST, 'имя_параметра', 'значение_по_умолчанию' );
Я так понимаю, что переменные, после передачи их на сайт в файл 1forma.php надо переопределить на другие и при этом они очищаются от кода html функцией MosGetParam.
Но как это надо сделать? Покажите, кто знает, на простеньком примере.
Он записан в корне сайта в файле 1forma.php (я его предельно упростил):
<? Error_Reporting(E_ALL & ~E_NOTICE);
$adresat = "shawlow@mail.ru";
$status = "Админ";
$msg = "Спасибо $name, Ваше сообщение было отправлено и мы обязательно Вам ответим!";
$you = "$status. E-mail: $adresat";
if ($submit)
{
if(empty($name)) echo "Введите Вашу Фамилию, имя";
else
{
$msg2 = "Имя: $name\n";
mail("$adresat", "Заявка на отдых","$msg2\n","Content-type: text/plain; charset=windows-1251");
echo "$msg<b>\n";
}
}
else {
?>
<form action="<? echo $PHP_SELF?>" method=POST>
<table bgcolor="#EEF6FF" align="center" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><font face="Arial" color="red"><span style="font-size:10pt;"> Фамилия</span></font></td>
<td> <INPUT type=text size=70 name="name" ></td>
</tr>
<tr align="center">
<td colspan="2">
<br><INPUT type=submit value="Послать" name="submit">
<INPUT type=reset value="Очистить" name="reset">
</td>
</tr>
</table>
</form>
<?
} // end "else" and end of this script)
?>
Заранее благодарен.
С наступающим Новым Годом!
Спустя 1 час, 1 минута, 50 секунд (30.12.2008 - 16:18) gaizjad написал(а):
Привет.
PHP |
$name=$_POST['name']; |
И так всё остальное...

Спустя 23 часа, 13 минут, 19 секунд (31.12.2008 - 15:31) gaizjad написал(а):
Напишу простой пример. Чтобы было понятнее сделаю 2 формы:
1) Передача параметров - index.html
1) Передача параметров - index.html
HTML |
<form action="1.php" method="post"> <input type="text" name="name" /><br /> <input type="submit" value="Send" /> </form> |
2) Скрипт, принимающий параметры - 1.php
PHP |
<?php |
Спустя 7 дней, 8 часов, 31 минута, 13 секунд (9.01.2009 - 00:03) shawlow написал(а):
Спасибо gaizjad за подсказку,но я
воспользовался $HTTP_POST_VARS['Имя']. Это староая форма написания. Это одно и тоже, что и ты предлагаешь. Все работает, спасибо!
Полный текст примера - работает:
воспользовался $HTTP_POST_VARS['Имя']. Это староая форма написания. Это одно и тоже, что и ты предлагаешь. Все работает, спасибо!
Полный текст примера - работает:
PHP |
<? |
Пользователь заполняет АНКЕТУ и отправляет мне.
Gaizjad посоветуй, какие книги почитать по PHP5?
Каким редактором посоветуешь пользоваться для создания объектно-ориентированных программ на PHP?
Спустя 11 месяцев, 25 дней, 10 часов, 22 минуты, 43 секунды (4.01.2010 - 10:25) gaizjad написал(а):
упс...
сорри за немного опаздавший ответ
вобщем книг по пхп в интернете много, я читал Лаура Томсон,Люк Веллинг "РНР и Муsql", "Профессиональное РНР программирование 2-е издание"
Насчёт редакторов - это уже на твоё усмотрение, я пользуюсь Quanta и Geany под Linux, или Dreamweaver под вин.
сорри за немного опаздавший ответ

вобщем книг по пхп в интернете много, я читал Лаура Томсон,Люк Веллинг "РНР и Муsql", "Профессиональное РНР программирование 2-е издание"
Насчёт редакторов - это уже на твоё усмотрение, я пользуюсь Quanta и Geany под Linux, или Dreamweaver под вин.
Спустя 2 месяца, 15 дней, 14 часов, 21 минута, 1 секунда (20.03.2010 - 00:46) nickopol написал(а):
Цитата (gaizjad @ 31.12.2008 - 12:31) |
Напишу простой пример. Чтобы было понятнее сделаю 2 формы: 1) Передача параметров - index.html <form action="1.php" method="post"> 2) Скрипт, принимающий параметры - 1.php <?[SPAN=darling]php[/SPAN] |
Огромное спасибо за Ваш совет!!! Мне очень помог. Я 2а дня бился над формой. Только вот вопрос в видео курсе про это вообще не было не слова и что самое интересное, у него эта форма работала.
А у меня форма в писме образовывалась, только она была пустая (без данных). Вот я и ломал голову как данные из html перекинуть в PHP. Спасибо ОГРОМНОЕ.

Спустя 6 месяцев, 22 дня, 14 часов, 22 минуты, 3 секунды (12.10.2010 - 14:08) khrapsha написал(а):
Всем добрый день!
А можно также доходчиво подсказать по следующей ситуации:
Немного изменим предыдущий пример:
Есть исходный файл
1) Передача параметров - index.php
<form action="1.php" method="post"><input type="text" name="name" /><br /><input type="submit" value="Send" /></form>
2) Скрипт, принимающий параметры - 1.php
<?php$name=$_POST['name'];// теперь можно свободно использовать $name echo $name; // выдаст то, что вы написали в index.html в текстовом поле
// допустим, здесь как-то меняется переменная:
$kluch="no";
3) а как можно передать новое значение переменной $kluch в index.php, но через строку параметров типа index.php?no
С уважением, Дмитрий
А можно также доходчиво подсказать по следующей ситуации:
Немного изменим предыдущий пример:
Есть исходный файл
1) Передача параметров - index.php
<form action="1.php" method="post"><input type="text" name="name" /><br /><input type="submit" value="Send" /></form>
2) Скрипт, принимающий параметры - 1.php
<?php$name=$_POST['name'];// теперь можно свободно использовать $name echo $name; // выдаст то, что вы написали в index.html в текстовом поле
// допустим, здесь как-то меняется переменная:
$kluch="no";
3) а как можно передать новое значение переменной $kluch в index.php, но через строку параметров типа index.php?no
С уважением, Дмитрий
Спустя 1 час, 52 минуты, 10 секунд (12.10.2010 - 16:00) Dron19 написал(а):
просто при проверке нажата ли кнопка пишите не просто if ($submit)...., а именно если у вас выключена регистр глобалс, то используйте уже такой синтаксис if($POST['submit']).....
если в форме конечно указан тип передачи пост
Функция регистр глобалс регистрирует глобальные переменные, то есть $submit у вас бы появилась, так как является глобальной, если отключить эту функцию, то я уже говорил чтто нужно делать, а вообще новичкам лучше страховаться всегда и писать так:
$submit = $POST['submit'];
ну, а я делаю подругому
в файле где подключаюсь к бд пишу:
if(ini_get('register_globals') == '0') {
ini_set('register_globals','1');
}
если в форме конечно указан тип передачи пост
Функция регистр глобалс регистрирует глобальные переменные, то есть $submit у вас бы появилась, так как является глобальной, если отключить эту функцию, то я уже говорил чтто нужно делать, а вообще новичкам лучше страховаться всегда и писать так:
$submit = $POST['submit'];
ну, а я делаю подругому
в файле где подключаюсь к бд пишу:
if(ini_get('register_globals') == '0') {
ini_set('register_globals','1');
}
Спустя 1 час, 11 минут, 5 секунд (12.10.2010 - 17:12) eXaM написал(а):
Гм, всегда думал, что REGISTER_GLOBALS нужно обязательно отключать, ведь это огромнейший простор для хакера. Если переменных передается сразу несколько, можно запросто допустить ошибку и столкнуться с проблемой недостаточной фильтрации входящих данных. А это
лучше сделать в обратную сторону.
if(ini_get('register_globals') == '0') {
ini_set('register_globals','1');
}
лучше сделать в обратную сторону.
Спустя 7 минут, 25 секунд (12.10.2010 - 17:19) khrapsha написал(а):
А как тогда быть?..
Спустя 8 минут, 58 секунд (12.10.2010 - 17:28) eXaM написал(а):
Пользоваться одним методом. Я не понял, зачем вам отправлять введенные данные методом POST, да еще и GET'ом вдогонку посылать значение переменной. А вообще, я не уверен, что правильно осознаю суть проблемы. Объясните, пожалуйста, что меняет значение $kluch.
Спустя 19 часов, 38 минут, 22 секунды (13.10.2010 - 13:06) khrapsha написал(а):
Прошу прощения, я толком не объяснил.
есть задача - не зарегстрированным пользователям показывать одну страницу, а зарегистрированным - почти ту же, но с дополнительными возможностями просмотра.
В сети нашел скрипты, реализующие эту идею, но не смог применить у себя.
В скриптах после успешной авторизации пользователь перенаправляется на закрытую страницу - и все нормально. Но у меня страница как бы собирается из 3-х частей:
1 - блок шапки
2 - блок с авторизацией (сюда же выводятся сообщения об ошибках авторизации, напоминание пароля и в случае успешной авторизации - также сообщение о выходе)
3 - блок информации.
В блок информации вставляется либо файл с общей информацией, либо, в случае успешной авторизации, блок с дополнительной информацией в зависимости от значения переменной $kluch.
страничка собирается так: index.php?razdel¶graf&statia
Из файла с авторизацией методом POST посылается имя и пароль в файл login.php. А в этом login.php мне нужно присвоить значение переменной $kluch и вернуть его в вызывающий файл, где и соберется вся страничка.
Вот примерно так, простите за косноязычие... Быть может, задумано не очень красиво, но вот по-другому не сообразил...
есть задача - не зарегстрированным пользователям показывать одну страницу, а зарегистрированным - почти ту же, но с дополнительными возможностями просмотра.
В сети нашел скрипты, реализующие эту идею, но не смог применить у себя.
В скриптах после успешной авторизации пользователь перенаправляется на закрытую страницу - и все нормально. Но у меня страница как бы собирается из 3-х частей:
1 - блок шапки
2 - блок с авторизацией (сюда же выводятся сообщения об ошибках авторизации, напоминание пароля и в случае успешной авторизации - также сообщение о выходе)
3 - блок информации.
В блок информации вставляется либо файл с общей информацией, либо, в случае успешной авторизации, блок с дополнительной информацией в зависимости от значения переменной $kluch.
страничка собирается так: index.php?razdel¶graf&statia
Из файла с авторизацией методом POST посылается имя и пароль в файл login.php. А в этом login.php мне нужно присвоить значение переменной $kluch и вернуть его в вызывающий файл, где и соберется вся страничка.
Вот примерно так, простите за косноязычие... Быть может, задумано не очень красиво, но вот по-другому не сообразил...
Спустя 25 минут, 41 секунда (13.10.2010 - 13:32) Raskolnikoff написал(а):
Первое, что пришло в голову - redirect. Т.е. сделать так
header('Location: [URL=http://site.com/index.php?klutch=no');
Спустя 36 минут, 25 секунд (13.10.2010 - 14:08) khrapsha написал(а):
так ведь тогда этот параметр будет виден в командной строке браузера и любой незарегистрированный пользователь может, набрав параметр, войти на закрытую страницу... или я неправ?... что-то торможу....
Спустя 55 минут, 53 секунды (13.10.2010 - 15:04) Raskolnikoff написал(а):
Да, будет виден. Я думал, вы так и хотите)
Если нужно, чтоб был не виден, можете поискать по поводу функции header. Там есть вроде какой то параметр для передачи get и post запросов.
Если нужно, чтоб был не виден, можете поискать по поводу функции header. Там есть вроде какой то параметр для передачи get и post запросов.
Спустя 21 минута, 43 секунды (13.10.2010 - 15:26) khrapsha написал(а):
ага, спасибо, сейчас посмотрю...