Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проверка на допустимые символы в форме


Автор: communist 8.3.2008, 05:21
есть вот такая не хитрая форма.....запнулся на том что не могу сделать проверку по всем ячейкам сразу///нужно сделать проверку чтоб все поля не совподали и проверку на допустимые символы(латинские)


Код

<form action="reg.php" method="GET" lang="en-us"> 
 <br />
<input type="text" SIZE=1 MAXLENGTH=1 name="11" VALUE="A" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="12" VALUE="B" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="13" VALUE="C" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="14" VALUE="D" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="15" VALUE="E" required="true" /><br />
<input type="text" SIZE=1 MAXLENGTH=1 name="21" VALUE="F" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="22" VALUE="G" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="23" VALUE="H" required="true" />
<input type="text" SIZE=1 MAXLENGTH=2 name="24" VALUE="IJ" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="25" VALUE="K" required="true" /><br />
<input type="text" SIZE=1 MAXLENGTH=1 name="31" VALUE="L" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="32" VALUE="M" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="33" VALUE="N" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="34" VALUE="O" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="35" VALUE="P" required="true" /><br />
<input type="text" SIZE=1 MAXLENGTH=1 name="41" VALUE="Q" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="42" VALUE="R" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="43" VALUE="S" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="44" VALUE="T" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="45" VALUE="U" required="true" /><br />
<input type="text" SIZE=1 MAXLENGTH=1 name="51" VALUE="V" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="52" VALUE="W" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="53" VALUE="X" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="54" VALUE="Y" required="true" />
<input type="text" SIZE=1 MAXLENGTH=1 name="55" VALUE="Z" required="true" /> <br /><br />

<input type="textarea" SIZE=50 name="str" COLS=40 ROWS=5  WRAP="virtual" required="true" /><br />
<input type="submit" value="далее" />
</form>



Автор: Fortop 8.3.2008, 05:38
На уникальность - все помещаешь в массив 
т.е. вместо 
Код

name='11',name='11'
 
будет например 
Код

name='sym[]' 


затем 
Код

if ($_POST['sym'] == array_unique($_POST['sym'])) {

}


Латиницу проверить регэкспом предварительно сделав строку из всего массива
Код

$test = implode($_POST['sym']);



Автор: communist 8.3.2008, 12:23
покажи пож-та то что до латинице на примере...у меня почему то ошибки выдает

Автор: Fortop 8.3.2008, 18:44
Мда, с таким подходом ты многому не научишься.

А посмотреть в мануал по функции implode() не судьба?
http://ua2.php.net/implode

Вот тебе проверка на латиницу

Код

$matches = array();
$string = implode("", $_POST['sym']);
$pattern = "/[a-zA-Z]/";

if (strlen($string) == preg_match_all($pattern, $string, $matches)) {
    // все отлично
} else {
    // есть недопустимые символы.
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)