انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اشکال در اعتبار سنجی فرم با PHP و javascript

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

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

من یک صفحه متشکل از یک فرم و یک کد امنیتی در انتهای اون جهت جلوگیری از پیامهای هرز ایجاد کردم و فیلدها رو با جاوااسکریپت validate کردم و کد امنیتی رو با php !!  
سوال اول اینکه: الان که مقدار action رو برابر با هر صفحه ای قرار بدم وقتی رو دکمه submit کلیک میکنم اگه مقدار فیلدها صحیح وارد شده باشه بدون اینکه صحت کد امنیتی رو بررسی کنه به اون صفحه که در action تعریف شده وارد میشه!!!! اشکال کجاست؟
سوال دوم اینکه: من یک پایگاه داده ایجاد کردم و میخوام اطلاعات کاربر به اون پایگاه فرستاده بشه تا بعد از بررسی توسط مدیر سایت در سایت منتشر بشه و یک پیغام مبنی بر موفقیت آمیز بودن ثبت اطلاعات به همراه اطلاعات وارد شده کاربر تو یک صفحه جدید به خودش نشون داده شه لطفا راهنمایی کنید که چیکار کنم  خیلی ممنون میشم

کد پی‌اچ‌پی:
<?php session_start();

if(isset(
$_POST['Submit'])){
    
// code for check server side validation
    
$correct_captcha = @$_SESSION['captcha_code'];
    unset(
$_SESSION['captcha_code']);
    if (
strcasecmp($correct_captcha$_POST['captcha_code']) != 0){
        
$msg"<span style='color:#f7601d;font-size:14pt;font-family:yekan'>کد امنیتی صحیح نیست</span>";// Captcha verification is incorrect.
    
}else{// Captcha verification is Correct. Final Code Execute here!
        
$msg="<span style='color:green'>کد امنیتی صحیح است.</span>";
    }
}

?>
<?php
$con 
mysql_connect("localhost","root","");
mysql_select_db("startup2");

// Check connection
if (!$con){
    die(
"به دلیل مشکل زیر، اتصال برقرار نشد : <br />" mysql_error());
}
mysql_close($con);
?>

<!DOCTYPE html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Untitled Document</title>

    <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryValidationTextarea.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
    <link href="SpryAssets/SpryValidationTextarea.css" rel="stylesheet" type="text/css" />
    <link href="phpcaptcha/css/style.css" rel="stylesheet" type="text/css" />
    <script type='text/javascript'>
        function refreshCaptcha(){
            var img = document.images['captchaimg'];
            img.src = img.src.substring(0,img.src.lastIndexOf("?"))+"?rand="+Math.random()*1000;
        }


    </script>
</head>

<body>
<?php
$onvan 
$txtName2 $txtFamily2 $txtFamily3 $textfield $address $phon $mobile $textfield5 "";
if (
$_SERVER["REQUEST_METHOD"] == "POST")
{
    
$onvan test_input($_POST["onvan"]);
    
$txtName2 test_input($_POST["txtName2"]);
    
$txtFamily2 test_input($_POST["txtFamily2"]);
    
$txtFamily3 test_input($_POST["txtFamily3"]);
    
$textfield test_input($_POST["textfield"]);
    
$address test_input($_POST["address"]);
    
$phon test_input($_POST["phon"]);
    
$mobile test_input($_POST["mobile"]);
    
$textfield5 test_input($_POST["textfield5"]);

}

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

<form dir="rtl" id="form1" name="form1" method="post" action="content.html">

    <table width="682" height="754" cellpadding="3" cellspacing="15" dir="rtl" class="momtable">
        <tr>
            <td width="322">عنوان آگهی:</td>
            <td width="301"><span id="sprytextfield1">
        <label for="onvan"></label>
        <input type="text" name="onvan" id="onvan" maxlength="50 chars" value="<?php echo @htmlentities($_POST['onvan'])?>"/>
        <span class="textfieldRequiredMsg">لطفا عنوان آگهی را وارد کنید.</span></span></td>
        </tr>
        <tr>
            <td>متن آگهی:</td>
            <td><span id="sprytextarea1">
        <textarea name="txtName2" id="txtName2"><?php echo @htmlentities($_POST['txtName2'])?></textarea>
        <span class="textareaRequiredMsg">لطفا متن آگهی را وارد نمایید.</span><span class="textareaMaxCharsMsg">کاراکترها بیشتر از 500 حرف مجاز نیست.</span><span class="textareaMinCharsMsg">کاراکترهای کمتر از 30 حرف ،مجاز نیست.</span></span></td>
        </tr>
        <tr>
            <td>نام شرکت:</td>
            <td><input class="unrequired" type="text" name="txtFamily2" id="txtFamily2" maxlength="38 chars" value="<?php echo @htmlentities($_POST['txtFamily2'])?>"/></td>
        </tr>
        <tr>
            <td align="right">نام و نام خانوادگی:</td>
            <td><input class="unrequired" type="text" name="txtFamily3" id="txtFamily3" maxlength="25 chars" value="<?php echo @htmlentities($_POST['txtFamily3'])?>"/></td>
        </tr>
        <tr>
            <td>شهر:</td>
            <td><input type="text" name="textfield" id="textfield" maxlength="20 chars" value="<?php echo @htmlentities($_POST['textfield'])?>"/></td>
        </tr>
        <tr>
            <td>آدرس:</td>
            <td><label for="address"></label>
        <span id="sprytextarea2">
        <textarea name="address" id="address"><?php echo @htmlentities($_POST['address'])?></textarea>
      <span class="textareaMaxCharsMsg">Exceeded maximum number of characters.</span></span></td>
        </tr>
        <tr>
            <td>تلفن تماس:</td>
            <td><label for="phon"></label>
                <label for="phon"></label>
      <span id="sprytextfield5">
      <input name="phon" type="text" id="phon" value="<?php echo @htmlentities($_POST['phon'])?>" maxlength="30">
      <span class="textfieldRequiredMsg">لطفا شماره تماس خود 
      را وارد کنید.</span></span></td>
        </tr>
        <tr>
            <td>موبایل:</td>
            <td><span id="sprytextfield3">
            <label for="mobile"></label>
            <input type="text" name="mobile" id="mobile" value="<?php echo @htmlentities($_POST['mobile'])?>"/>
          <span class="textfieldRequiredMsg">لطفا شماره موبایل خود را واردکنید.</span><span class="textfieldInvalidFormatMsg">شماره موبایل صحیح نیست.</span></span></td>
        </tr>
        <tr>
            <td>ایمیل:</td>
            <td><span id="sprytextfield2">
        <input type="text" name="textfield5" id="textfield5" value="<?php echo @htmlentities($_POST['textfield5'])?>"/>
      <span class="textfieldRequiredMsg">لطفا نشانی ایمیل خود 
      را وارد کنید.</span><span class="textfieldInvalidFormatMsg">نشانی ایمیل نامعتبر است.</span></span></td>
        </tr>
        <tr>
            <td height="44" colspan="2"><input class="resetbutton" name="btnreset" type="reset" value="بازنویسی" /></td>
        </tr>
        <tr>
          <td height="204" colspan="2">
              <table width="306" border="0" align="center" cellpadding="5" cellspacing="5" class="table">
                  <?php if(isset($msg)){?>
                      <tr>
                          <td colspan="2" align="center" valign="top"><?php echo $msg;?></td>
                      </tr>
                  <?php ?>
                  <tr>

                      <td><a href='javascript: refreshCaptcha();'><img src="images/search_icon.png" width="24px" height="24px" align="left"/></a>
                          <img src="phpcaptcha/captcha.php?rand=<?php echo rand();?>" align="left" id='captchaimg'><br/><br/><br/>
                          <label for='message' dir="rtl" class="lable_1">لطفا کد امنیتی را وارد کنید:</label>
                          <br>

                          <input style="width:276px;height:25px;font-size:12pt" maxlength="10" id="captcha_code" name="captcha_code" type="text" autocomplete="off">
                          <br>
                      </td>
                  </tr>
                  <tr>
                      <td><input style="width:284px;height:40px" name="Submit" type="submit" value="ثبت" class="button1"></td>
                  </tr>
              </table>
          </td>
        </tr>
  </table>
</form>



<script type="text/javascript">
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
    var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "email");
    var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "phone_number");
    var sprytextarea1 = new Spry.Widget.ValidationTextarea("sprytextarea1", {maxChars:500, minChars:30, useCharacterMasking:false});
    var sprytextfield5 = new Spry.Widget.ValidationTextField("sprytextfield5", "none");
    var sprytextarea2 = new Spry.Widget.ValidationTextarea("sprytextarea2", {isRequired:false, maxChars:200});
</script>


</body>
</html> 
پاسخ


پیام‌های این موضوع
اشکال در اعتبار سنجی فرم با PHP و javascript - توسط ساراعلی - ۱۳۹۴/۰۲/۰۵, ۱۰:۲۸ ب.ظ
RE: اشکال در اعتبار سنجی فرم - توسط admin - ۱۳۹۴/۰۲/۰۶, ۰۲:۰۷ ب.ظ
RE: اشکال در اعتبار سنجی فرم - توسط ساراعلی - ۱۳۹۴/۰۲/۰۶, ۰۸:۰۰ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان