2011-07-15 3 views
0

bonjour je suis nouveau ici et en programmation aussi. Aujourd'hui, j'ai été fait un formulaire de connexion en php/mysql et jquery validation de formulaire et a été surpris que mon formulaire ne fonctionne pas en raison de script js? vous travaillez bien.login php avec validation jquery

<div class="top_login_error" id="top_error">All fields must be field</div> 
    <div id="logincontainer"> 
     <div id="loginbox"> 
      <div id="loginheader"> 
       <div>Control Panel Login</div> 
      </div> 
      <div id="innerlogin"> 
       <form method="POST" action="obr.php" id="login_form"> 
        <p>Enter your username:</p> 
        <input type="text" class="logininput" name="login" id="login" /> 
        <p>Enter your password:</p> 
        <input type="password" class="logininput" name="password" id="password" /> 
        <input type="submit" class="loginbtn" value="Submit" name="enter" id="admin_login" /><br /> 
        <p><a href="#" title="Forgoteen Password?">Forgotten Password?</a></p> 
       </form> 
      </div> 
     </div> 
     <img SRC="../images/administration/login_fade.png" alt="Fade" /> 
    </div> 
</body> 

jquery ccode pour valider la forme

$('#admin_login').click(function(q){ 

q.preventDefault(); 

    var login = $('#login').val(); 
    var password = $('#password').val(); 

    if (login.length == 0){ 
     $('#top_error').fadeIn(500); 
     $('#login').addClass("logininput_error"); 
     var error = true; 
    } else { 
     $('#top_error').fadeOut(500); 
     $('#login').removeClass("logininput_error"); 
     } 
    if (password.length == 0){ 
     $('#top_error').fadeIn(500); 
     $('#password').addClass("logininput_error"); 
     var error = true; 
    } else { 
     $('#top_error').fadeOut(500); 
     $('#password').removeClass("logininput_error"); 
     } 

}); 

et php

<?php 
session_start(); 



    if (isset($_POST['login'])){$login = $_POST['login'];} if ($login == ''){unset($login); exit('please enter name');} 
    if (isset($_POST['password'])){$password = $_POST['password'];} if ($password == ''){unset($password); exit('please enter password');} 

    $login = mysql_escape_string($_POST['login']); 
    $password = mysql_escape_string($_POST['password']); 

    //$password = md5($password); I have been disabled while testing in simle way, login : aaa , password : aaa; 

    include("../db.php"); 

    $result = mysql_query("SELECT * FROM users WHERE login='".$login."' and password='".$password."'") or die(mysql_error()); 

    $line = mysql_fetch_array($result); 

    if (empty($line['id'])){ 
     exit("Your name or login is incorect <a href='login.php'>back</a>"); 
    } else { 

    $_SESSION['autorized'] = true; 
    $_SESSION['login'] = $login; 
    $_SESSION['password'] = $password; 
    } 
    echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>"; 

?> 

quelqu'un peut me aider avec le code, dire ce qu'il faut changer que tout fonctionne bien. Merci

Répondre

5

Le coupable est q.preventDefault();, ne le faites que lorsque le formulaire ne doit pas être soumis.

+0

Si ce n'est pas difficile peut-être quelqu'un peut-il me dire quel code ajouter à ma jquery pour envoyer des données avec ajax – Viktors

1

Probablement Prusse a raison. La documentation de Jquery est très bonne => Vous devriez lire http://api.jquery.com/jQuery.post/ pour faire une demande de publication (AJAX) et http://api.jquery.com/submit/ pour gérer la soumission.

Je vous conseille également d'utiliser PDO au lieu de MySQL "normal" pour prévenir également les injections SQL. Vous pouvez ensuite utiliser PHPunit pour tester correctement votre code en suivant Uncle Bob's three rules of TDD. J'aime utiliser la base de données SQLite en mémoire pour tester mon code (new PDO('sqlite::memory:');). Vous pourriez voir ma bibliothèque d'authentification simple pour voir comment j'ai fait cela =>https://github.com/alfredwesterveld/php-auth