2017-03-26 3 views
0

Ich entwerfe eine Webanwendung. Es funktionierte alles gut, bevor man Ajax hinzufügte. Jetzt möchte ich Ajax hinzufügen, aber nichts passiert die gleiche erste Seite wird immer wieder geladen. Bitte sagen Sie mir, warum ajax nicht antwortet (keine Fehlermeldung, keine neue Seite geladen). Mein Code ist unten. h.php ist eine einfache Datei Hallo sagen.Ajax reagiert nicht

first.php:

<html> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

    <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
     <title>Online library </title> 
     <link rel="stylesheet" type="text/css" href="CSS/style.css" /> 
<form method="post"> 
<div class="result"></div> 
UserName:<input type="text" name="name" id="username"><br><br> 
Password:<input type="password" name="password" id="password"><br><br> 
<button id="loginn" type="submit" name="button" <strong>login</strong> </button> 
</form> 
<script type="text/javascript" src=""jquery-3.2.0.js""></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 

    $("#loginn").submit(function(e){ 
     var username=$("#username").val(); 
     var password=$("#password").val(); 
     var result=$('.result').val(); 
     var dataString = 'username='+username+'&password='+password; 
      $.ajax({ 
      type: "POST", 
      url: "log.php", 
      data: dataString, 
      success: function(responseText){  
      if(responseText==0) { 

      result.html('<span class="error">incorrect username</span>'); 
      } 
     else if(responseText==1) 
      { 
       window.location="h.php"; 
      } 
     else{ 
       alert('error in query'); 
      } 
      } 
      }); 

     e.preventDefault(); 
    }); 
}); 

</script> 
</body> 
</html> 

log.php:

<?php 
include 'user.php'; 
$name=$_POST["username"]; 
$password=$_POST["password"]; 
$con=new users(); 
$con->login($name,$password); 
?> 

user.php:

<?php 

class users 
{ 
public function constructs() 
{ 
$con=mysqli_connect("localhost", "root", "") or die (mysqli_error()); 
mysqli_select_db($con,'online') or die(mysqli_error($con)); 
return $con; 
} 

function login($username, $password) { 
$con=$this->constructs(); 
$rs = mysqli_query($con, "SELECT username, password FROM member WHERE username='$username' AND password='$password'"); 
if(mysqli_num_rows($rs)>0) 
{ 
echo 1; 
} 
else { 
echo 0; 
} 
} 
?> 
+0

Wo schlägt die Ausführung fehl? Sie sind offen für SQL-Injektionen und müssen Ihre Kennwörter hashen. – chris85

+0

'function constructs()' Bist du sicher, dass du nicht 'function __construct()' gemeint hast? –

+0

'

0

Es Menge Fehler in Ihrem Code sind nicht seine sehr unsicher zu erwähnen, wie die Kommentare angegeben haben. Hier sind ein paar Dinge, die Sie fehlen:

  • geschweifte Klammer am Ende in users.php
  • JQuery ist nicht richtig in Indexdatei enthält, die Sie haben und extra " "
  • Du für ein Hören einreichen Ereignis auf einem Taste anstelle eines Formulars, ändern Sie das zu einem Klickereignis
  • Ihre Ergebnisse var innerhalb der Submit-Ereignis Dosent brauchen die val() am Ende werden Sie nicht die Ergebnisse aus der Abfrage sehen, weil dies.

Vorausgesetzt, dass die Datenbank korrekt eingerichtet ist, sollte der Rest des Codes funktionieren. Hier

ist der Arbeitscode:

index.php

$("#loginn").click(function(e){ 
    var username=$("#username").val(); 
    var password=$("#password").val(); 
    var result=$('.result'); 
    var dataString = 'username='+username+'&password='+password; 
     $.ajax({ 
     type: "POST", 
     url: "log.php", 
     data: dataString, 
     success: function(responseText){ 
     console.log(responseText); 
     if(responseText==0) { 

     $(result).html('<span class="error">incorrect username</span>'); 
     } 
     else if(responseText==1) 
     { 
      window.location="h.php"; 
     } 
     else{ 
      alert('error in query'); 
     } 
     }, 
     fail: function(err) { 
      console.log(err); 

     } 
     }); 

    e.preventDefault(); 
}); 
}); 

Protokoll.php - das gleiche

user.php - fehlende geschweifte Klammer am Ende

+0

Seine Anforderung, dass es für Angriffe offen sein sollte. Versuchte, dass dein Code immer noch nicht funktioniert. Keine Syntaxfehler im ursprünglichen Code. Ist es ein Problem mit meinem Browser? Ich verwende Chrom mit Xampp. – huny

+0

Ich habe den Code ausprobiert, bevor es für mich funktioniert hat. Das einzige, was mir in den Sinn kommt, ist, dass Ihre Datenbankverbindung nicht korrekt hergestellt wurde. –

+0

es funktioniert immer noch nicht für mich. Ich habe versucht ohne Ajax und meine Datenbank funktionierte korrekt. Was denkst du ist falsch in meiner Datenbankverbindung? – huny