|
|
|
| Как проверяются заполнение полей без перезагрузки формы или как с перезагрузкой ,но с сохранением введенных данных | |
|
|
|
|
|
|
|
для: serjinio
(12.07.2008 в 02:04)
| | Ajax | |
|
|
|
|
|
|
|
для: serjinio
(12.07.2008 в 02:04)
| | >или как с перезагрузкой ,но с сохранением введенных данных
Выводить проверяемые данные в эту же форму. | |
|
|
|
|
|
|
|
для: sms-send
(12.07.2008 в 02:17)
| | Каким способом...или где посмотреть пример?? | |
|
|
|
|
|
|
|
для: serjinio
(12.07.2008 в 03:11)
| |
<?php
echo '<form action="?" method="post">',
'<input type="text" name="field1" value="'.htmlspecialchars(isset($_REQUEST['field1'])?$_REQUEST['field1']:'').'"><br />',
'<input type="text" name="field2" value="'.htmlspecialchars(isset($_REQUEST['field2'])?$_REQUEST['field2']:'').'"><br />',
'<input type="text" name="field3" value="'.htmlspecialchars(isset($_REQUEST['field3'])?$_REQUEST['field3']:'').'"><br />',
'<input type="submit" value="Отправить"><br />',
'</form>';
?>
|
Остальное как обычно. | |
|
|
|
|
|
|
|
для: sms-send
(12.07.2008 в 03:17)
| | А зачем htmlspecialchars()? | |
|
|
|
|
|
|
|
для: sim5
(12.07.2008 в 15:08)
| | >А зачем htmlspecialchars()?
Опять шутим? | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2008 в 15:23)
| | > Опять шутим?
Похоже с sim5 это случается периодически :)) | |
|
|
|
|
|
|
|
для: BinLaden
(12.07.2008 в 15:29)
| | Ну если я принимаю форму, то я знать буду, что, например, в поле А не должно быть никаких вещей типа тегов. А если мне пытаются их втюхивать, блокировать вообще передачу. А то что не запрещено - htmlspecialchars() при выводе из базы. Чем страшен тег в форме? | |
|
|
|
|
|
|
|
для: sim5
(12.07.2008 в 15:47)
| | Там не тег в поле. Там плоский текст.
Чтобы плоский текст сделать значением атрибута, его СЛЕДУЕТ представить согласно стандартам.
PS. Между прочим, когда я пишу здесь <SCRIPT> , мне никакую передачу не блокируют.С чего бы?...
PPS. Sim5, я не верю, что Вы этого не знаете. И не смотря на это, Вас хочется послать делать 21-ю задачу. | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2008 в 15:54)
| | Но зачем делать лишнее обрамляя в htmlspecialchars до проверки? Не проверив чего там, сразу ляп и... Я думаю так - поле имя, значит имя, не имя - "до свидания", мыло соответсвенно, а вот сообщение, тут уже варианты. Если разрешаем, то тогда htmlspecialchars(), нет, как и с именем. Нафига мне ненужный мусор в базе?
PS. Не надо меня "посылать" )). Я понимаю о чем вы. Собственно, если JS воткнут и его вернуть, развалится просто страница. Я говорю о том, что поля надо проверять, а не просто "обезопасивать" html-представлением. | |
|
|
|
|
|
|
|
для: sim5
(12.07.2008 в 16:04)
| | В каком смысле, проверив чего там?
Там - текст. Текст может быть любым. То есть совершенно любым То есть абсолютно любым. На что его тогда проверять?
На длину разве что.
Почему текст не может быть внешне похож на JS-код? Например, когда является примером JS-кода? | |
|
|
|
|
|
|
|
для: sim5
(12.07.2008 в 16:04)
| | > Но зачем делать лишнее обрамляя в htmlspecialchars до проверки? Не проверив чего там, сразу ляп и ... Я думаю так - поле имя, значит имя, не имя - "до свидания"
Например, пользователь изначально ввел никнейм с лишним, "плохим" символом, который Вы ни за что на свете не согласитесь впихивать в базу данных. Нажал "Отправить". Появляется та же страница с матерным сообщением от разработчика. Мол чё ты пишешь, сволочь.
И что он увидит дальше? Что поле никнейм, в которое он вводил ник, стало вообще пустым или страница стала отображаться неверно? А ему всего-то надо было убрать этот символ. | |
|
|
|
|
|
|
|
для: BinLaden
(12.07.2008 в 16:17)
| | Ребята, если бы было так, например:
<?
$name = isset($_POST['name']) ? $_POST['name'] : "";
$mail = isset($_POST['mail']) ? $_POST['mail'] : "";
$post = isset($_POST['post']) ? $_POST['post'] : "";
if ($name) {
//проверяем потроха
//втюхивают запрещенное
//хидером на фигу
//если ошибочка просто,
//а мы разрешили, то
$name = htmlspecialchars($name); //и т.д.
}
//вывод формы со значениями $name, $mail, $post
?>
|
тогда я понимаю, но зачем это делать до проверки, обрамив и забросив в значения.
>Например, пользователь изначально ввел никнейм с лишним, "плохим" символом
"Плохие" символы, если речь о нике - проверять надоть, нафига они мне нужны, я об этом и говорю. | |
|
|
|
|
|
|
|
для: sim5
(12.07.2008 в 16:32)
| | Ну я, к примеру прочел
'<input type="text" name="field1" value="'.htmlspecialchars(@$_REQUEST['field1']).'"><br />',
| в первую очередь как value="'.htmlspecialchars(...
А Вы , вероятно, как htmlspecialchars(@$_REQUEST['field1']) | |
|
|
|
|
|
|
|
для: Trianon
(12.07.2008 в 16:39)
| | Я прочитал также. Просто я привык, сперва проверять, потом принимать решение, а не наоборот.) | |
|
|
|
|
|
|
|
для: sim5
(12.07.2008 в 16:47)
| | >Я прочитал также. Просто я привык, сперва проверять, потом принимать решение, а не наоборот.)
Форма будет отображена повторно только в том случае, если какая то из проверок покажет ошибку заполнения. Вы можете сначала проверить данные и в случае ошибки выполнить этот код, который покажет пользователю форму с его крякозябрами и сопровождающим текстом ошибок, которые он должен исправить. | |
|
|
|
|
|
|
|
для: sms-send
(12.07.2008 в 23:10)
| | Сделал по другой схеме..
<?php
if ($_SERVER['REQUEST_METHOD']=='POST') {
foreach($_POST as $key => $value) {
$value=trim($value); // убираем пробелы в начале и в конце переменной.
if (get_magic_quotes_gpc()) $value = stripslashes($value); //убираем слеши, если надо
$value=htmlspecialchars($value,ENT_QUOTES); //заменяем служебные символы HTML на эквиваленты
$_POST[$key]=$value; //все изменения записываем в массив $_POST
}
$err='';
if (!$name) $err.="Вы забыли написать свое имя<br>";
if (!$notes) $err.="Вы забыли написать сам отзыв!<br>";
}
if (!$err)
{
//если ошибок нет, то пишем куда надо...или выводим...
Header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
else
{
$_POST['name'] = $_POST['email'] = $_POST['notes'] ='';
}
?>
<html>
<head></head>
<body>
<? if ($err) echo '<font color=red><b>'.$err.'</b></font>'; ?>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="POST"><br>
Name: <input type="text" name="name" value="<? echo $_POST['name'] ?>"><br>
Notes: <textarea rows="3" cols="30" name="notes"><? echo $_POST['notes'] ?></textarea><br>
<input type="submit" name="submit">
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: serjinio
(13.07.2008 в 02:38)
| | Вы проверяете уже html код, а не текст введённый пользователем. Если будут более сложные проверки, то могут возникнуть трудности. Да и хранить данные в виде html как то не удобно. | |
|
|
|
|
|
|
|
для: sms-send
(13.07.2008 в 03:33)
| | Это для админки...т.е для себя..... | |
|
|
|
|
|
|
|
для: sms-send
(12.07.2008 в 23:10)
| | Вот я и говорю - проверить... | |
|
|
|
|
|
|
|
для: sms-send
(12.07.2008 в 03:17)
| | Объясните какой смысл в этой конструкции..
value="'.isset($_REQUEST['field1'])?$_REQUEST['field1']:''.'"
|
я как понимаю, что если в поле введено что-то, то значение value=$_REQUEST['field1'], и в $field1---это что-то....
если поле пустое то значение value= равно пустоте...т.е пустое поле и в переменной $field1ничего нет... | |
|
|
|