مشکل در اعتبار سنجی فرم

سلام وخسته نباشید دوستان

تو صفحه اولم به چند تا فیلد را همراه با چک باکس به کاربر نمایش میدم که این ها رو به صورت ارایه واکشی کردم

وکاربر تیک یکی رو میزنه
وبه صورت المنت مخفی به صفحه بعد میفرستم تا کاربر مشخصاتشو وارد کند برای تبدیل ارایه به رشته از تابع implode استفاده
کردم حالا تو صفحه دوم
اگر کاربر مشخصاتشو درست وارد کنه و اعتبار سنجی صورت نگیره
اطلاعات به همراه تیک چک بااکس برام ذخیره میشن
ولی اگر کاربر فیلدی رو اشتباه وارد کنه و براش خطا صادر کنه زمانی که صفحه رفرش میشه اون
مقدار صفحه قبل یعنی همون چک باکس و ازبین میره

خواهشا کمکم کنید خیلی الزامی ؟؟؟
این کد صفحه اول
[PHPS]

<?php

$con=mysql_connect("localhost","root","usbw","azmoon");

mysql_select_db("azmoon",$con);
mysql_query('set names utf8');
?>
<form method="POST" action="index5.php">
<table border="1" dir="rtl">
<?php


$sql="SELECT test.idtest, test.day, test.time, test.date
FROM test
LEFT JOIN it ON test.idtest = it.idtest
WHERE it.idtest IS NULL order by time,date";




$t=mysql_query($sql);

if(mysql_num_rows($t)>0)
{
?>
<tr>
<th class="div3">انتخاب</th>
<th class="div3">تاریخ</th>
<th class="div3">روز</th>
<th class="div3">زمان</th>
</tr>


<?php
while($row=mysql_fetch_assoc($t))
{
?>

<tr>
<td class="div3" ><input type="checkbox" name="idtest[]" class="5" value="<?php echo $row['idtest']; ?>" /> </td>


<td class="t1"><?php echo $row['date'];?></td>
<td class="t1"><?php echo $row['day'];?> </td>
<td class="t1"><?php echo $row['time'];?></td>

</tr>


<?php

}

?>
<tr>
<td><input type="submit" class="s" name="submit" value="تایید"/></td>
</tr>

</table>
</form>
<?php
}
else
{
echo "<b>هیچ نوبتی ثبت نشده</b>";
}
// mysql_close($con);

?>

[/PHPS]

این هم کد صفحه دوم نگاه کنید میفهمید مشکل کجاست
[PHPS]
<?php
$con = mysql_connect("localhost","root","usbw","azmoon");

mysql_select_db("azmoon",$con);
mysql_query('set names utf8');

$rand = mt_rand(10,99);

?>
<form method="POST" action="index5.php">
<table border="0">
<tr>
<td><input type="text" name="idb" class="1"></td> <td>کد ملی</td>
</tr>
<tr>
<td><input type="text" name="name" class="2"></td><td> نام</td>
</tr>
<tr>
<td><input type="text" name="tel" ></td> <td> تلفن</td>
</tr>
<tr>
<td>
بیمه:
<select name="bime">
<option value="">ندارم</option>
<option value="تامین اجتماعی">تامین اجتماعی</option>
<option value="خدمات درمانی" >خدمات درمانی</option>
<option value="البرز">البرز</option>
<option value="سپاه">سپاه</option>
<option value="طلایی">طلایی</option>
<option value="نیروهای مسلح">نیروهای مسلح</option>
<option value="برق">برق</option>
<option value="بانک ها">بانک ها</option>
</select>
</td>
</tr>
<tr>
<td><input type="text" name="serial"></td><td>شماره سریال بیمه</td>
</tr>
<td>
<?php
echo'<input type="hidden" name="idtest"value="',implode("+",$_POST['idtest']),'">';
?>
</td>

<tr>
<td><i class='i1'><?php echo $rand; ?></i></td>
</tr>
<tr>
<td><input type="text" name="kod"></td><td>وارد کردن عدد تصادفی</td>
</tr>
<tr>
<td><input type="hidden" name="random" value="<?php echo $rand; ?>"></td>
</tr>
<tr>
<td><input type="submit" name="submitt"></td>
</tr>
</table>
</form>
<?php

if(!empty($_POST['submitt']))
{

if(empty($_POST['idb']))
echo "<b>لطفا کد ملی خود را وارد کنید</b>";

elseif(preg_match('/^[0-9]+$/', $_POST['idb']) === 0)
echo "<b>کد ملی شما اشتباه است</b>";

elseif(strlen($_POST['idb'])<9 || strlen($_POST['idb'])>11)
echo "کد ملی شما ناقص است";

elseif(empty($_POST['name']))
echo "<b>لطفا نام و فامیل خود را وارد کنید</b>";

else if(strlen($_POST['name'])<4 || strlen($_POST['name'])>20)
echo "نام وفامیل شما نباید بیشتر از 20 کاراکتر باشد";

//elseif (preg_match('/^[ی-ا]+$/', $_POST['name']) === 0)
// echo "<b>نام خود رو بادقت وارد کنید</b>";


elseif(empty($_POST['tel']))
echo "<b>لطفا شماره تماس خود را وارد کنید</b>";

elseif (preg_match('/^[0-9]+$/', $_POST['tel']) === 0)
echo "<b>شماره تماس وارد شده نا معتبر است</b>";

elseif(strlen($_POST['tel'])< 11 || strlen($_POST['tel'])>11)
echo "لطفا شماره تماس را با کد وارد کنید";

elseif(!empty($_POST['bime']) && empty($_POST['serial']))
echo "<b>در صورت داشتن بیمه شماره سریال بیمه خود را وارد کنید</b>";

elseif(empty($_POST['bime']) && !empty($_POST['serial']))
echo "<b>لطفا نوع بیمه خود را انتخاب کنید</b>";

elseif(!empty($_POST['serial']) && (preg_match('/^[0-9]+$/', $_POST['serial']) === 0))
echo "شماره سریال بیمه عدد است";

elseif(!empty($_POST['serial']) && strlen($_POST['serial'])<9 || strlen($_POST['serial'])>11)
echo "کاراکتر اضافه وارد نکنید";



else {
if(($_POST['random']) == ($_POST['kod']))
{


$a=$_POST['idb'];
$b=$_POST['name'];
$c=$_POST['tel'];
$d=$_POST['bime'];
$e=$_POST['serial'];
$tt=$_POST['idtest'];

$www = "insert into it(idb,name,tel,bime,serial,idtest) VALUES ('".$a."','".$b."','".$c."','".$d."','".$e."','".$tt."')";
$rp = mysql_query($www);
if($rp)
echo "<script>alert('اطلاعات شما با موفقیت ثبت شد')</script>";
}
elseif(($_POST['random']) != ($_POST['kod']))
{
echo "کد امنیتی اشتباه است";
}
}
}

mysql_close($con);
?>


[/PHPS]
 

fiachehr

Member
دوست عزیز سلام اولا که خیلی بهتره که validation هات رو با جاوا اسکریپبت قبل از post شدن چک کنی بعد واسه چی با آرایه می فرستی چرا با post نمی فرستی اینجوری کنترلش راحت تره
 

جدیدترین ارسال ها

بالا