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

Форум PHP

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

 

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

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

тема: Проверка ввода текста
 
 автор: Arganum   (04.11.2009 в 18:00)   письмо автору
 
 

Люди надо сделать проверку ввода что то на подобии
 if (preg_match("/[^A-z0-9]/", $pass) || (strlen($pass)<6) || (strlen($pass)>30)){$page.="<br/>Пароль ДОЛЖЕН БЫТЬ от 6 до 30 символов ЛАТИНСКОГО АЛФАВИТА или ЦИФР!!!<br/><br/>";
exit;

Но только что бы проверялось на русский англиский текст цифры точку воцклицательный знак. Короче что только это могло вводиться

  Ответить  
 
 автор: Trianon   (04.11.2009 в 18:02)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:00)
 

а за каким кренделем Вы ограничиваете набор символов для пароля?
Он Ваш что ли, пароль этот?

И кстати за каким кренделем ограничиваете его максимальную длину?

  Ответить  
 
 автор: Arganum   (04.11.2009 в 18:07)   письмо автору
 
   для: Trianon   (04.11.2009 в 18:02)
 

Я вас не много не пойму. Если вы имеете виду от куда все идет то из пост формы
extract($_POST);
      $pass=htmlspecialchars($pass);

  Ответить  
 
 автор: Arganum   (04.11.2009 в 18:10)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:07)
 

Уточню что мне надо что бы лишнего не вводили только русский текст англиский цифры точка воцклицательный знак а то у меня в почте ставиш обратный слеш
\
и у всех почта очищаеца

  Ответить  
 
 автор: Trianon   (04.11.2009 в 18:12)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:10)
 

>Уточню что мне надо что бы лишнего не вводили только русский текст англиский цифры точка воцклицательный знак а то у меня в почте ставиш обратный слеш
\
и у всех почта очищаеца

Так это потому, что у Вас в скрипте ошибки.
Ищите их, исправляйте - и будет Вам счастье и благорастворение воздусей.
А костыли делать не надо.

  Ответить  
 
 автор: Trianon   (04.11.2009 в 18:10)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:07)
 

Я имею в виду ровно то, что написал.
Почему Вы запрещаете применять пользователю в его пароле те символы, которые он выбрал, а также делать его длинее 30 символов?

  Ответить  
 
 автор: Arganum   (04.11.2009 в 18:13)   письмо автору
 
   для: Trianon   (04.11.2009 в 18:10)
 

Ну это уже не по теме совсем. Если я это уберу то можно сделать запрос к бд и все зареганные юзера вылезут вам на страницу .Это пример из реги написал

  Ответить  
 
 автор: Arganum   (04.11.2009 в 18:15)   письмо автору
 
   для: Trianon   (04.11.2009 в 18:10)
 

Ну а где ошибка лично я голову сломал где она
 <?php
 $player
["mail"]=unserialize($player["mail"]);
  if (
$_GET[mod]=="write") {
  
     if (isset(
$_POST[username])) {
         
$_POST[username]=htmlspecialchars($_POST[username]);
         
$_POST[post]=substr(htmlspecialchars($_POST[post]),0,999);
         
$sql=mysql_query("SELECT mail,id,char_name FROM users WHERE char_name='$_POST[username]' LIMIT 1");
         
$page.=mysql_error();
         if (
mysql_num_rows($sql)!=1) {$page.="<br/>Адресат не найден!<br/>";}
         else {
             
$user=mysql_fetch_array($sql);
             
$user["mail"]=unserialize($user["mail"]);
             
$mail["time"]=time();
             
$mail["post"]=$_POST[post];
             
$mail[username]=$player[char_name];
             
$user["mail"][mailfrom][]=$mail;
             foreach(
$user["mail"][mailfrom] as $key=>$value)
             {if ((
time()-$value["time"])>3*24*60*60){$user["mail"][mailfrom]=delete_element($user["mail"][mailfrom],$key);}}
             
$user["mail"]["new"]++;
             
$user["mail"]=serialize($user["mail"]);
             
$sql=mysql_query("UPDATE users SET mail='$user[mail]' WHERE id='$user[id]' LIMIT 1");
             
$page.=mysql_error();
             
$mail[username]=$_POST[username];
             
$player["mail"][mailto][]=$mail;
             foreach(
$player["mail"][mailto] as $key=>$value)
             {if ((
time()-$value["time"])>3*24*3600){$player["mail"][mailto]=delete_element($player["mail"][mailto],$key);}}
             
$player["mail"]=serialize($player["mail"]);
             
$sql=mysql_query("UPDATE users SET mail='$player[mail]' WHERE id='$player[id]' LIMIT 1");
             
$page.="<br/>Письмо $user[char_name] доставлено!<br/>";
         }
     }
     else {
           
$page.="<br/><b>Напишите сообщение</b><br/>";
         
$page.="<form action='./?do=mail&amp;mod=write' method='post'>
            <br/>Ник<br/><input name='username' type='text' value='
$_GET[to]' />
            <br/>Сообщение<br/><input name='post' type='text' />
            <br/><input type='submit' value='Отправить' />
            </form>"
;

     }
     
$page.="<br/><a href='./?do=mail&amp;mod=mailfrom'>Входящие</a>";
      
$page.="<br/><a href='./?do=mail&amp;mod=mailto'>Исходящие</a>";
         
$page.="<br/><a href='./?do=mail'>Почта</a><br/>";
  }
  elseif (
$_GET[mod]=="mailfrom") {
      if (!
is_array($player["mail"][mailfrom])) {$page.=$player["mail"][mailfrom]."<br/>Входящих сообщений нет!<br/>";}
      else {
           if (!isset(
$_GET[str])){$_GET[str]=1;}
           
$page.="<br/><b>Входящие</b><br/>";
           
$begin=sizeof($player["mail"][mailfrom])-($_GET[str]-1)*10-1;
         for (
$i=$begin;$i>$begin-10;$i--){
             if (
$i<0) {break;}
           
$page.="<br/><a href='./?do=mail&amp;mod=write&amp;to=".$player["mail"][mailfrom][$i][username]."'>".$player["mail"][mailfrom][$i][username]."</a> ";
           
$page.=date("j.m.",$player["mail"][mailfrom][$i]["time"]).(date("Y",$player["mail"][mailfrom][$i]["time"])+170).date("  G:i",$player["mail"][mailfrom][$i]["time"]);
           
$page.="<br/>".$player["mail"][mailfrom][$i][post]."<br/>";
         }
         
$page.=nav_page(ceil(sizeof($player["mail"][mailfrom])/10),$_GET[str],"./?do=mail&amp;mod=mailfrom&amp;str=");
         
$player["mail"]["new"]=0;
         
$player["mail"]=serialize($player["mail"]);
         
$sql=mysql_query("UPDATE users SET mail='$player[mail]' WHERE id='$player[id]' LIMIT 1");
      }
      
$page.="<br/><a href='./?do=mail&amp;mod=mailto'>Исходящие</a>";
      
$page.="<br/><a href='./?do=mail'>Почта</a><br/>";
  }
  elseif (
$_GET[mod]=="mailto") {
        if (!
is_array($player["mail"][mailto])) {$page.="<br/>Исходящих сообщений нет!<br/>";}
        else {
           if (!isset(
$_GET[str])){$_GET[str]=1;}
           
$page.="<br/><b>Исходящие</b><br/>";
           
$begin=sizeof($player["mail"][mailto])-($_GET[str]-1)*10-1;
         for (
$i=$begin;$i>$begin-10;$i--){
             if (
$i<0) {break;}
           
$page.="<br/><a href='./?do=mail&amp;mod=write&amp;to=".$player["mail"][mailto][$i][username]."'>".$player["mail"][mailto][$i][username]."</a> ";
           
$page.=date("j.m.",$player["mail"][mailto][$i]["time"]).(date("Y",$player["mail"][mailto][$i]["time"])+170).date("  G:i",$player["mail"][mailto][$i]["time"]);
           
$page.="<br/>".$player["mail"][mailto][$i][post]."<br/>";
         }
         
$page.=nav_page(ceil(sizeof($player["mail"][mailto])/10),$_GET[str],"./?do=mail&amp;mod=mailto&amp;str=");
      }
      
$page.="<br/><a href='./?do=mail&amp;mod=mailfrom'>Входящие</a>";
      
$page.="<br/><a href='./?do=mail'>Почта</a><br/>";
  }
  else{
      if (empty(
$player["mail"]["new"])) {$player["mail"]["new"]=0;}
      
$page.="<br/>Новых: ".$player["mail"]["new"];
      
$page.="<br/><a href='./?do=mail&amp;mod=mailfrom'>Входящие</a>";
      
$page.="<br/><a href='./?do=mail&amp;mod=mailto'>Исходящие</a>";
      
$page.="<br/><a href='./?do=mail&amp;mod=write'>Написать письмо</a>";
      
$page.="<br/>";
  }  
?>

  Ответить  
 
 автор: Arganum   (04.11.2009 в 18:29)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:00)
 

Ну что не кто не знает как это реализовать даже через eregi?

  Ответить  
 
 автор: Arganum   (04.11.2009 в 18:42)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:29)
 

уже нашел на форуме мне надо было что то на подобии
 <?php  
// указываем аддрес и тему письма.  
$to  "sashka@alpkrim.kiev.ua";  
$subject "Новая анкета";  
// проверка  
$patern "|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i";  
if(!
preg_match($paternstripslashes($name))) exit("В названии фирмы использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку.");  
if(!
preg_match($patern$pass)) exit("В аннотации использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку.");  
$patern "|^[ a-z,A-Z,@,_,-,-,0-9,/,:,.]+$|i";  
if(!
preg_match($patern$url)) exit("В URL использованы недопустимые символы<br>Вернитесь назад и исправьте ошибку.");  
?> 

Неужели это было так сложно?

  Ответить  
 
 автор: Trianon   (04.11.2009 в 20:13)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:42)
 

Это неправильно.
А уж то, что Вы ограничили пароль, убрав и латинские буквы и большую часть знаков - недопустимо категорически.
Но Вы ж ССЗБ - к рекомендациям прислушиваться не станете. Вам ж нужно чтоб пирям сейчас и сразу, а что там дальше - не расти трава.

  Ответить  
 
 автор: neadekvat   (05.11.2009 в 01:50)   письмо автору
 
   для: Arganum   (04.11.2009 в 18:00)
 

А не проще ли сделать так:
$pass = md5 ( $pass );
Попробуй-ка запрос к бд сделать, имея хеш от запроса..

  Ответить  
Rambler's Top100
вверх

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