Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как проверить все поля без перезагрузки формы

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: sim5   (13.07.2008 в 05:34)   письмо автору
 
   для: sms-send   (12.07.2008 в 23:10)
 

Вот я и говорю - проверить...

   
 
 автор: serjinio   (13.07.2008 в 04:12)   письмо автору
 
   для: sms-send   (13.07.2008 в 03:33)
 

Это для админки...т.е для себя.....

   
 
 автор: sms-send   (13.07.2008 в 03:33)   письмо автору
 
   для: serjinio   (13.07.2008 в 02:38)
 

Вы проверяете уже html код, а не текст введённый пользователем. Если будут более сложные проверки, то могут возникнуть трудности. Да и хранить данные в виде html как то не удобно.

   
 
 автор: serjinio   (13.07.2008 в 02:38)   письмо автору
 
   для: 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> 

   
 
 автор: sms-send   (12.07.2008 в 23:10)   письмо автору
 
   для: sim5   (12.07.2008 в 16:47)
 

>Я прочитал также. Просто я привык, сперва проверять, потом принимать решение, а не наоборот.)


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

   
 
 автор: serjinio   (12.07.2008 в 19:59)   письмо автору
 
   для: sms-send   (12.07.2008 в 03:17)
 

Объясните какой смысл в этой конструкции..
value="'.isset($_REQUEST['field1'])?$_REQUEST['field1']:''.'"

я как понимаю, что если в поле введено что-то, то значение value=$_REQUEST['field1'], и в $field1---это что-то....
если поле пустое то значение value= равно пустоте...т.е пустое поле и в переменной $field1ничего нет...

   
 
 автор: sim5   (12.07.2008 в 16:47)   письмо автору
 
   для: Trianon   (12.07.2008 в 16:39)
 

Я прочитал также. Просто я привык, сперва проверять, потом принимать решение, а не наоборот.)

   
 
 автор: Trianon   (12.07.2008 в 16:39)   письмо автору
 
   для: sim5   (12.07.2008 в 16:32)
 

Ну я, к примеру прочел
'<input type="text" name="field1" value="'.htmlspecialchars(@$_REQUEST['field1']).'"><br />',
в первую очередь как value="'.htmlspecialchars(...
А Вы , вероятно, как htmlspecialchars(@$_REQUEST['field1'])

   
 
 автор: sim5   (12.07.2008 в 16:32)   письмо автору
 
   для: 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   
?>

тогда я понимаю, но зачем это делать до проверки, обрамив и забросив в значения.

>Например, пользователь изначально ввел никнейм с лишним, "плохим" символом

"Плохие" символы, если речь о нике - проверять надоть, нафига они мне нужны, я об этом и говорю.

   
 
 автор: BinLaden   (12.07.2008 в 16:17)   письмо автору
 
   для: sim5   (12.07.2008 в 16:04)
 

> Но зачем делать лишнее обрамляя в htmlspecialchars до проверки? Не проверив чего там, сразу ляп и ... Я думаю так - поле имя, значит имя, не имя - "до свидания"

Например, пользователь изначально ввел никнейм с лишним, "плохим" символом, который Вы ни за что на свете не согласитесь впихивать в базу данных. Нажал "Отправить". Появляется та же страница с матерным сообщением от разработчика. Мол чё ты пишешь, сволочь.
И что он увидит дальше? Что поле никнейм, в которое он вводил ник, стало вообще пустым или страница стала отображаться неверно? А ему всего-то надо было убрать этот символ.

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования