2015-05-31 6 views
0

Javascript submit(); функция не работает. Мой PHP-скрипт (hax.php) не возвращает никакого значения, все, что мне нужно, это AJAX, чтобы проверить, что он успешно сработал. Используется ли этот метод успеха в этом состоянии или он не проверяет подлинность скрипта. Кроме того, даже когда оператор else {} выполняется, он все равно не отправляет форму. Кто-нибудь знает, что случилось?submit() не работает JS

<form action="validatelogin.php" method="post" autocomplete="off" id="loginform"> 
     <input style="display:none" type="text" name="auto"/> 
     <input style="display:none" type="password" name="auto"/> 
     <label for="username">Username: </label> 
     <input type="text" name="username" placeholder="Your Username" id="username" class="modernInput" style="padding: 5px; width:100%;"><br><br> 
     <label for="password">Password:</label> 
     <input type="password" name="password" placeholder="Your Password" id="password" class="modernInput" style="padding: 5px; width:100%;"> 
     <?php echo $_SESSION["error"]; ?> 
     <input type="button" value="Submit" class="btn btn-success btn-block" onclick="hackvalidate()"> 
    </form> 
    <script> 
    function _(str) { 
     return document.getElementById(str); 
    } 
    function hackvalidate() { 
     var username = _("username").value; 
     var password = _("password").value; 
     var regex = /SELECT\s+|DELETE\s+|UPDATE\s+|--|=|/ig; 
     if (username.test(regex) || password.test(regex)) { 
      $.ajax({ 
       url: "hax.php", 
       type: "POST", 
       data: {user: username, pass: password}, 
       success: function() { 
        _("loginform").submit(); 
       } 
      }); 
     } else { 
      _("loginform").submit(); 
     } 
    } 
</script> 
+0

научиться войти код. это поможет вам с отладкой – Mox

ответ

4

Переключите порядок .test() операндов regexObj.test(str)

if (regex.test(username) || regex.test(password)) { 
3

Использование .match() вместо .test().

if (username.match(regex) || password.match(regex)) { 
      $.ajax({ 
       url: "hax.php", 
       type: "POST", 
       data: {user: username, pass: password}, 
       success: function() { 
        _("loginform").submit(); 
       } 
      }); 
     } else { 
      _("loginform").submit(); 
     } 

match() является методом строки, в то время как test() для RegExp objects.