PDA

View Full Version : سوال: مشکل در اعتبار سنجی



fereshte_b
پنج شنبه 02 مرداد 1393, 09:07 صبح
سلام دوستان من اعتبار سنجی رو توی فرم ثبتم گذاشتم اما جواب نمیده و اطلاعات رو ثبت میکنه.

و اون کدی هم که برای تست تکراری بودن شماره دانشجویی گذاشتم اونم کار نمیکنه
میشه بگین مشکل کجاس؟

ببخشید من هنو تازه کارم:افسرده:



$name = test_input($_POST["txt1"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$nameErr = "Only letters and white space allowed";
}

if (isset($_POST['sub']))
{

$check=mysql_query("INSERT INTO st (name,family,sexiality,father,st_number,phone,mobi le,address) VALUES ( '" . $_POST['txt1']. "','" . $_POST['txt2']. "','" .$_POST['jensiat']. "','" .$_POST['father']. "','" .$_POST['id']. "','" .$_POST['phone']. "','" .$_POST['mobile']. "','" .$_POST['address']. "')") or die(mysql_error());


echo '<script language="javascript">';
echo 'alert("اطلاعات دانشجو ثبت شد.")';


echo '</script>';




if (mysql_num_rows($check) > 0)
{?>

<script type="text/javascript">
alert("The st number <?php echo $_POST['id']; ?> is already registered.");
history.back();
</script>
<?php
}
}


function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}


?>
<form action="#" method="POST" >
<p>
<table align="right" cellpadding="4" style="margin-right:60px" >
<caption>ورود اطلاعات دانشجو</caption>
<tr>
<td>
کد دانشجویی
</td>
<td><input type="text" name="id" required >
</td>
</tr>
<tr>
<td>
نام دانشجو
</td>
<td>
<input type="text" name="txt1" required>
</td>
</tr>
<tr>
<td>
نام خانوادگی
</td>
<td>
<input type="text" name="txt2" required>
</td>
</tr>
<tr>
<td>
جنسیت
</td>
<td>
زن: <input type="radio" name="jensiat" value="زن">
مرد: <input type="radio" name="jensiat" value="مرد">
</td>
</tr>
<tr>
<td>
نام پدر
</td>
<td>
<input type="text" name="father" required></td>
</tr>

<td>
تلفن ثابت
</td>
<td>
<input type="text" name="phone" required></td>
</tr>

<td>
تلفن همراه
</td>
<td>
<input type="text" name="mobile" required></td>
</tr>

<td>
آدرس
</td>
<td>
<input type="text" name="address" required></td>
</tr>


<tr>
<td>
<input type="submit" name="sub" value="ثبت دانشجو">


<input type="reset" name="reset" value="جدید" >
<a href="panel_admin.php" style="text-decoration:none"><input type="button" name="back" value="بازگشت"> </a>

</td>
</tr>
</table>
</p>
</form>

vahidqara
پنج شنبه 02 مرداد 1393, 09:51 صبح
درود .. شما اعتبار سنجی رو به وسیله توابع ctype انجام بدید.. ببینید بازم مشکل دارید آیا؟؟

http://ir1.php.net/manual/en/book.ctype.php

fereshte_b
پنج شنبه 02 مرداد 1393, 10:37 صبح
ازین روش استفاده کردم ولی فقط پیغام رو میده و اطلاعات رو ثبت هم میکنه...:اشتباه:



$field = $_POST["id"];
if(!ctype_digit($field)){
echo "It's not a digit";
}

vahidqara
پنج شنبه 02 مرداد 1393, 13:39 عصر
ازین روش استفاده کردم ولی فقط پیغام رو میده و اطلاعات رو ثبت هم میکنه...:اشتباه:



$field = $_POST["id"];
if(!ctype_digit($field)){
echo "It's not a digit";
}


خوب معلومه ثبت میکنه چون شما شرط را که چک میکنی طیق منطق شرط باید تصمیم بگیری..
اگه Validate هست خوب هیچی ثبت کنه اگه ن فقط پیام خطا بده دیگه :لبخندساده:

fereshte_b
شنبه 04 مرداد 1393, 08:28 صبح
خوب معلومه ثبت میکنه چون شما شرط را که چک میکنی طیق منطق شرط باید تصمیم بگیری..
اگه Validate هست خوب هیچی ثبت کنه اگه ن فقط پیام خطا بده دیگه :لبخندساده:



:متفکر: خب الان چیکارش کنم!! چی بنویسم؟

vahidqara
شنبه 04 مرداد 1393, 09:15 صبح
درود ..

خب مثل همون بالا که خودتون نوشتید چک کن با if اگه اطالاعات ورودی طبق چیزی که می خوای هستی پس عملیات بانک اطلاعاتی در غیر این صورت پیام خطای validate
بیشتر ما راهنمایی میکنیم تا اینکه مستقیما کد رو به شما بدیم اینجوری بهتره :لبخندساده: