javascript
  • php
  • 2017-05-29 96 views -1 likes 
    -1

    我是java腳本編碼的新手。我有一個需要用戶名,密碼和電子郵件的表單。它驗證其中三個,並不會進入下一個「logout.php」頁面,甚至不提醒,如果該ID已被採取。它只驗證文本框的條目。我想首先驗證這三個表單條目,然後如果它們是有效的,並且id是唯一的,那麼點擊提交「logout.php」應該被打開。 下面是我的代碼:使用javascript進行表單驗證後註冊失敗

    登錄up.php

    <form method="post" name='registration' onSubmit="return formValidation();"> 
    
    <input type="text" placeholder="Id*" required=" " name="uid"> 
    
    <input type="password" placeholder="Password*" required=" " name="passid"> 
    
    <input type="text" placeholder="Emailaddress*" required=" " name="uemail"> 
    
    <input type="submit" value="Submit" style="font-face: 'Comic Sans MS'; font-size: larger; color: white; background-color: #FFA500; border: 3pt ridge lightgrey"> 
             </form> 
    

    進行驗證的Java腳本代碼:

    的JavaScript

    <script type="text/javascript"> 
    function formValidation() 
    { 
    var uid = document.registration.uid; 
    var passid = document.registration.passid; 
    var uemail = document.registration.uemail; 
    
    
    if(userid_validation(uid,5,12)) 
    { 
    
    if(passid_validation(passid,7,12)) 
    { 
    
    if(ValidateEmail(uemail)) 
    { 
    } 
    } 
    } 
    return false; 
    } 
    
    
    function userid_validation(uid,mx,my) 
    { 
    var uid_len = uid.value.length; 
    if (uid_len == 0 || uid_len >= my || uid_len < mx) 
    { 
    alert("User Id should not be empty/length be between "+mx+" to "+my); 
    uid.focus(); 
    return false; 
    } 
    return true; 
    } 
    
    function passid_validation(passid,mx,my) 
    { 
    var passid_len = passid.value.length; 
    if (passid_len == 0 ||passid_len >= my || passid_len < mx) 
    { 
    alert("Password should not be empty/length be between "+mx+" to "+my); 
    passid.focus(); 
    return false; 
    } 
    return true; 
    } 
    
    
    function ValidateEmail(uemail) 
    { 
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
    if(uemail.value.match(mailformat)) 
    { 
    //alert("You have entered a valid email address!"); 
    return true; 
    } 
    else 
    { 
    alert("You have entered an invalid email address!"); 
    uemail.focus(); 
    return false; 
    } 
    } 
    

    PHP的一部分將檢查身份證已被拿走或沒有。點擊提交按鈕後,這部分代碼不會被執行。這部分代碼中沒有顯示任何消息。

    PHP

    <?php 
    session_start(); 
    if(!empty($_POST)) { 
        class MyDB extends SQLite3 
        { 
         function __construct() 
         { 
          $this->open('trip.db'); 
         } 
        } 
        $db = new MyDB(); 
        if(!$db){ 
         echo $db->lastErrorMsg(); 
        } else { 
    
        } 
        $id=null; 
        $pass=null; 
        $email=null; 
        $id_exists=false; 
    
        if (isset($_POST['uid'])) { 
         $id = $_POST['uid']; 
        } 
    
        if (isset($_POST['passid'])) { 
         $pass = $_POST['passid']; 
        } 
    
         if (isset($_POST['uemail'])) { 
         $email = $_POST['uemail']; 
        } 
    
    
    
        $result= "SELECT COUNT(*) FROM Users WHERE ID = '".$id. "';" ; 
        $count= $db->querySingle($result); 
    
        if ($count > 0) 
        { 
         $id_exists = true; 
         echo "This id is not available. Please enter a valid id. "; 
        } 
    
        else 
        { 
         $sql= " INSERT INTO Users (ID, PASSWORD, EMAIL) 
          VALUES ('$id','$pass','$email'); " ; 
         $ret = $db->query($sql); 
         $_SESSION['Id'] = $id; 
         header("location:logout.php"); 
        } 
    
    
        $db->close(); 
    } 
    ?> 
    

    回答

    1

    這是示例代碼。

    function test_js() { 
     
    if(document.test_form.id.value == "") { 
     
        alert('input name!'); 
     
        document.test_form.id.focus(); 
     
        return; 
     
    } else { 
     
        document.test_form.action = "logout.php"; 
     
        document.test_form.submit(); 
     
    } 
     
    }
    <form method="post" action="login.php" name="test_form"> 
     
         <input type="text" name="id"> 
     
         <input type="submit" value="Submit" onclick="javascript:test_js();"> 
     
    </form>

    +0

    我不想檢查,如果文本框爲空,因爲已經被我的JavaScript代碼來處理。現在的問題是,驗證後,PHP部分未運行 – user399

    +0

    我認爲你不要在代碼中寫** action **。 **

    ** – Sheva

    +0

    我試着用動作做它,但它沒有幫助:( – user399

    相關問題