PDA

View Full Version : سوال: اعتبارسنجي تگ select



ravand
سه شنبه 03 آبان 1390, 14:57 عصر
سلام انگار اين كدها اعتبارسنجيشون با بقيه فرق داره.
من يه نوع اعتبارسنجي براي متن با php نوشتم ولي اين كدها انگار فرق داره. ميشه برام توضيح بديد؟ يا كدي رو بذاريد؟


<select name="انتخاب رشته ی تحصیلی ">
<option value="nomber 1">ادبیات و علوم انسانی
<option value="nomber 2">ریاضی فیزیک
<option value="nomber 3">تجربی
<option selected>فنی و حرفه ای
</select>

MMSHFE
سه شنبه 03 آبان 1390, 16:52 عصر
با سلام، اين كد رو امتحان كنيد:


<select name="branch">
<option value="number1">ادبيات و علوم انساني</option>
<option value="number2">رياضي و فيزيك</option>
<option value="number3">تجربي</option>
<option selected="selected" value="number4">فني و حرفه اي</option>
</select>

و يكي از روشهاي اعتبارسنجي:


<?php
$flag = false;
if(isset($_POST['branch']) && $_POST['branch'] != '') {
$flag = true;
$values = array('number1', 'number2', 'number3', 'number4');
if(!in_array($_POST['branch'], $values) {
$flag = false;
{
}
?>

بعد از اجراي كد فوق، متغير flag$ تنها درصورتي true خواهد بود كه فرم ارسال شده باشه و همچنين توي كنترل select، يكي از مقادير به شكل درست انتخاب و ازطريق فرم ارسال شده باشه.
نكته: پيشنهاد ميكنم براي خاصيتهاي name و value و... عناصر، از زبان فارسي استفاده نكنيد.

ravand
چهارشنبه 04 آبان 1390, 09:01 صبح
من اين كدها رو امتحان كردم كار نكرد شما ميتوني اين كده رو داخل يك فرم بذاري و امتحان كني؟
كه اگه موردي انتخاب نشده باشه اخطار بده؟:متفکر:

MMSHFE
چهارشنبه 04 آبان 1390, 18:09 عصر
اين كدي كه نوشتم مربوط به صفحه مقصد فرم هست. اگه ميخواين توي همون صفحه مبدأ (خود فرم) بررسي كنيد، بايد از JavaScript استفاده كنيد. موفق باشيد.

ravand
چهارشنبه 04 آبان 1390, 18:15 عصر
ميدونم داداش
ميدونم كه مال كجا هست ولي اين كد براي من كار نميكنه منم براي همين php ميخواستم كه اينجا توي اين تاپيك پرسيدم. شما اين كد سمت سرور رو يه كاريش كن كه پيغام بده كه مثلا ًشما ماه را انتخاب نكرديد.

ravand
پنج شنبه 05 آبان 1390, 10:37 صبح
منظورم اين بود كه كدتون رو طوري بسازيد كه وقتي مقداري رو انتخاب نكنيم پيغام بده كه مثلاً شما ماه را انتخاب نكرديد. من كه هر كاريش كردم نشد.

MMSHFE
پنج شنبه 05 آبان 1390, 16:24 عصر
با سلام، اين كد رو امتحان كنيد:

<?php
$flag = false;
if(isset($_POST['branch']) && $_POST['branch'] != '') {
$flag = true;
$values = array('number1', 'number2', 'number3', 'number4');
if(!in_array($_POST['branch'], $values) {
$flag = false;
{
}
if(!$flag) {
die('رشته را انتخاب نكرده ايد <a href="javascript:history.go(-1)">سعي مجدد</a>');
}
?>
موفق باشيد.

ravand
پنج شنبه 05 آبان 1390, 17:54 عصر
خيلي ممنون از شما دوست عزيز و ديگر اعضاي سايت كه كمك كردن.
اين مشكل رو از دوست گرامي آقاي مهدي يقوبي پرسيدم و كد زير رو گرفتم كه به خوبي كار كرد.



<FORM method="POST" action="get.php">
<select name="branch">
<option value="number1">ادبيات و علوم انساني</option>
<option value="number2">رياضي و فيزيك</option>
<option value="number3">تجربي</option>
<option selected="selected">انتخاب كن</option>
</select>
<input type="submit">
</form>




و سمت سرور


<?php
$flag = false;
if(isset($_POST['branch']) && $_POST['branch'] != '') {
$flag = true;
$values = array('number1', 'number2', 'number3', 'number4');
if(!in_array($_POST['branch'], $values)) {
$flag = false;
}
}
if(!$flag) {
die('رشته را انتخاب نكرده ايد <a href="javascript:history.go(-1)">سعي مجدد</a>');
}
else
{
echo 'Eyval !!!';
}
?>

MMSHFE
پنج شنبه 05 آبان 1390, 18:46 عصر
آآآآآآآآآآآآآآآآآآآآآآآآآ آآآ :متعجب: ! من فكر كردم فرم رو ساختين و فقط اين تكه كد Select رو مشكل داشتين. در هر حال خوشحالم كه مشكلتون رفع شده. موفق باشيد.

ravand
شنبه 07 آبان 1390, 10:07 صبح
من اين كد رو بازم امتحان كردم و ديدم وقتي اعتبارسنجي صورت ميگيره و مقدار داده شده درست هست مطلبي به mysql ارسال نميشه و بعد فهميدم يه جاي كار اشتباه هست. من بايد اين قسمت رو بعد از كدهاي اخطار مي نوشتم كه ننوشتم.

$tfmah = $_REQUEST['tfmah'];
كل كدها به صورت زير است.

$flag = false;
if(isset($_POST['tfmah']) && $_POST['tfmah'] != '') {
$flag = true;
$values = array('1', '2', '3', '4','5','6','7','8','9','10','11','12');
if(!in_array($_POST['tfmah'], $values)) {
$flag = false;
}
}
if(!$flag) {
echo ("<script type='text/javascript'>alert('ماه تولد را وارد نكرديد')</script>");
die('ماه تولد را وارد نكرديد');
}
else
{
$tfmah = $_REQUEST['tfmah'];
}