Avatar billede lylover Nybegynder
25. august 2011 - 11:19 Der er 3 kommentarer

Ajax login validation

Hey drenge!
Jeg har leget lidt med noget Ajax.
Vi taler om at validere login informationer.
Til dette har jeg følgende kode:

<script language="javascript">

$(document).ready(function()
{
    $("#login_form").submit(function()
    {
        //remove all the class add the messagebox classes and start fading
        $("#msgbox").removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
        //check the username exists or not from ajax
        $.post("login.php",{ brugernavnet:$('#brugernavn').val(),password:$('#password').val(),rand:Math.random() } ,function(data)
        {
          if(data=='yes') //if correct login detail
          {
              $("#msgbox").fadeTo(200,0.1,function()  //start fading the messagebox
            {
              //add message and change the class of the box and start fading
              $(this).html('Logging in.....').addClass('messageboxok').fadeTo(900,1,
              function()
              {
                  //redirect to secure page
                document.location='community/forum.php';
              });
             
            });
          }
          else
          {
              $("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
            {
              //add message and change the class of the box and start fading
              $(this).html('Login forkert').addClass('messageboxerror').fadeTo(900,1);
            });       
          }
               
        });
        return false; //not to post the  form physically
    });
    //now call the ajax also focus move from
    $("#password").blur(function()
    {
        $("#login_form").trigger('submit');
    });
});
</script>

Dette er koden i JS der sådan set virker som det skal.
Problemet er min php kode(tror jeg) som ikke returner det YES selvom det er rigtigt nok(hvad brugeren indtaster).
Se min PHP kode:
if(isset($_POST[send])) {
if(isset($_POST[brugernavn]) || isset($_POST[password])) {


    $brugernavn = $_POST["brugernavn"];
    $brugernavnet = mysql_escape_string($brugernavn);
    $password = $_POST["password"];
    $password = mysql_escape_string($password);
    $password = md5($password);
   
$userQuery = mysql_query("SELECT id,brugernavn,password FROM brugere WHERE brugernavn='$brugernavnet'");
if(mysql_num_rows($userQuery) == 1)
{
$userArray = mysql_fetch_array($userQuery);
if($userArray["password"] == $password)
{
    echo  "yes";
    $_SESSION['brugernavn'] = $userArray["brugernavn"];
}else{
    echo "no";
}
}else{
    echo "no";
}
}else{ echo "no"; }

}




PÅ FORHÅND TAK :)
Anders
Avatar billede jakobdo Ekspert
25. august 2011 - 12:47 #1
Forsøg dig med denne login kode:

if(isset($_POST[send])){
  if(isset($_POST[brugernavn]) || isset($_POST[password])) {
    $brugernavn = mysql_real_escape_string($_POST['brugernavn']);
    $password = md5($_POST['password']);
 
    $userQuery = mysql_query("SELECT id,brugernavn,password FROM brugere WHERE brugernavn='$brugernavn' AND password='$password' LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($userQuery) == 1){
      $user = mysql_fetch_assoc($userQuery);
      $_SESSION['brugernavn'] = $brugernavn;
      exit('yes');
    }
  }
}
exit('no');
Avatar billede lylover Nybegynder
25. august 2011 - 13:03 #2
Hey Jakob!
Denne kode fungerer heller ikke.
Den melder stadig om "Login details sucks..."
Jeg bruger naturligvis jQuery forresten.
Avatar billede lylover Nybegynder
25. august 2011 - 13:22 #3
Det virkede alligevel.
venligst læg svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester