Проблема в обработки формы.

NetIce

Guest
Проблема в обработки формы.

Доброе время суток
Проблема в обработки формы.
Есть 4 поля 1,2 должны быть заполнены обязательно плюс одно из полей 3 или 4 тоже должно быть заполнено обязательно.
Проблема том что не получается сделать так чтобы форма считалась верно заполнена в том случаи если заполнено 1,2 и одно из 3 или 4 полей. Могу сделать так чтобы проверялось заполнение всех полей и так как мне надо не могу.
Документацию (не работает что делать и faq плюс PHP5 Д.Н. Колисниченко)читал но разобраться не смог, надеюсь на помощь, пожалуйста покажите как правильно обработать форму из ходя из моих условий.
PS: не надо отправлять еще раз перечитывать, лучше объясните и покажите на примере плз...
PHP:
<form action="index.php" method="post">
<input type="text" name="n1">
<input type="text" name="n2">
<input type="text" name="n3">
<input type="text" name="n4">
<INPUT type="hidden" name="opi" value="ds">
<INPUT type="hidden" name="opi" value="ds">
<input type="submit" value="Добавить">
</form>

$name_err='';
	$email_err='';
	$message_err='';
	$cat_err='';
	$add_eror='';
	$tel_eror='';
	$send='';
 if (isset($_POST['opi'])) { 
     if ($_POST['n1'] == '') { 
	$n1_err = "ошибка1";
	$send = "no";
    } 
    if ($_POST['n2'] == '') { 
	$n2_err = "ошибка2";
	$send = "no";
    } 
if ($_POST['n3'] == '') {
	$n3_err = "ошибка3";
	$send = "no";
    } 
if ($_POST['n4'] == '') {
	$n4_err = "ошибка4";
	$send = "no";
    }
    }

    if ($send != "no") {
   echo "Ошибок нет";
    } elseif ($send == "no") {
	echo "$n1_err";
	echo "$n2_err";
	echo "$n3_err";
                echo "$n4_err";
}
 

SiMM

Новичок
Если заполнено(1е поле) и заполнено(2е поле) и (заполнено(3е поле) или заполнено(4е поле)) то всё правильно
иначе неправильно
Теперь переводи это с русского на английский с подстановкой нужных функций в нужные места - получишь требуемое. Для определения текста об ошибке - поднапряги голову.
PS: для "заполнено" наверно больше подойдёт [m]empty[/m]
 

dimardi

Guest
SiMM - правильно сказал
но от себя добавлю:
яваскриптом проверять заполнение полей, есть пхп классы на сайте, довольно неплохо работают
 

NetIce

Guest
SiMM
не получается у меня сделать правильную обработку
покажи плз код ...
 

Brondo

Новичок
Попробуй так, хотя он вообще корявый, но работает.
Мне кажется, как тебе надо.
<?php
$r=true;
$r1=$_POST["n1"];
$r2=$_POST["n2"];
$r3=$_POST["n3"];
$r4=$_POST["n4"];
if ($r3==false && $r4==false) {
echo "Заполните поле 3 или 4";
} else {
switch($r){
case $r1==false:
echo "Заполните поле 1";
break;
case $r2==false:
echo "Заполните поле 2";
break;
default:
echo "Всё сраслось едем дальше";
break;
}
}
?>
 
Сверху