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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как сделать защиту от пустого ввода?
 
 автор: JB   (13.02.2006 в 18:08)   письмо автору
 
 


<form action="add_db.php">
Введите имя пользователя: <input type=textarea name="user" size=30><br>
Введите ваш пароль: <input type=textarea name="pass" size=50><br>
<input type="submit" name="action" value="Добавить данные">
<?php
if (@action)
{
  
$dbhost "localhost"//хост БД
  
$dbname "demon"// имя БД
  
$dbuser "root"//имя пользователя
  
$dbpass ""//пароль
  
$db mysql_connect($dbhost,$dbuser,$dbpass);
  
mysql_select_db($dbname) or die("Невозможно подключиться");
  
$pass md5($pass);

  
mysql_query("INSERT INTO users(user,password) VALUES('$user','$pass')");
  echo 
"Данные внесены!";
  
mysql_close($db);
}

?>


При обращении к скрипту происходит пустой ввод данных. Как от этого избавиться?
Заранее спасибо за ответ.

   
 
 автор: JIEXA   (13.02.2006 в 18:43)   письмо автору
 
   для: JB   (13.02.2006 в 18:08)
 

<form action="add_db.php"> 
Введите имя пользователя: <input type=textarea name="user" size=30><br> 
Введите ваш пароль: <input type=textarea name="pass" size=50><br> 
<input type="submit" name="action" value="Добавить данные"> 
<?php 
if (isset(@$action)) 

  
$dbhost "localhost"//хост БД 
  
$dbname "demon"// имя БД 
  
$dbuser "root"//имя пользователя 
  
$dbpass ""//пароль 
  
$db mysql_connect($dbhost,$dbuser,$dbpass); 
  
mysql_select_db($dbname) or die("Невозможно подключиться"); 
  
$pass md5($pass);
  if(
$user == "") exit("Вы не ввели имя");
  if(
$pass == "") exit("Вы не ввели пароль");

  
mysql_query("INSERT INTO users(user,password) VALUES('$user','$pass')"); 
  echo 
"Данные внесены!"
  
mysql_close($db); 


?>

также советую обрабатывать данные функцией mysql_escape_string перед помещением их в БД

   
 
 автор: DDK   (13.02.2006 в 19:42)   письмо автору
 
   для: JIEXA   (13.02.2006 в 18:43)
 

Вводим в текстовое поле пробел и в базу опять, можно сказать, записывается бустое значение.

Уточню:

<form action="add_db.php"> 
Введите имя пользователя: <input type=textarea name="user" size=30><br> 
Введите ваш пароль: <input type=textarea name="pass" size=50><br> 
<input type="submit" name="action" value="Добавить данные"> 
<?php 
if (isset($action)) 

  
$dbhost "localhost"//хост БД 
  
$dbname "demon"// имя БД 
  
$dbuser "root"//имя пользователя 
  
$dbpass ""//пароль 
  
$db mysql_connect($dbhost,$dbuser,$dbpass); 
  
mysql_select_db($dbname) or die("Невозможно подключиться"); 
  
$user mysql_escape_string(trim($user)); 
  if(
$user == "") exit("Вы не ввели имя");
  if(
$pass == "") {exit("Вы не ввели пароль");} else {$pass md5(trim($pass));}
  
  
mysql_query("INSERT INTO users(user,password) VALUES('$user','$pass')"); 
  echo 
"Данные внесены!"
  
mysql_close($db); 


?>

   
 
 автор: FaStY   (13.02.2006 в 20:31)   письмо автору
 
   для: DDK   (13.02.2006 в 19:42)
 

так:

<?php
if(empty($user)){
 print(
"Вы не ввели имя"); 
}
  if(empty(
$pass)) {
print(
"Вы не ввели пароль");

?>

или так:

<?php
if(!isset($user)){
 print(
"Вы не ввели имя"); 
}
  if(!isset(
$pass)) {
print(
"Вы не ввели пароль");

?>

   
Rambler's Top100
вверх

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