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;
}
}
?>
Wo schlägt die Ausführung fehl? Sie sind offen für SQL-Injektionen und müssen Ihre Kennwörter hashen. – chris85
'function constructs()' Bist du sicher, dass du nicht 'function __construct()' gemeint hast? –
'
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:
users.php
" "
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
Protokoll.php - das gleiche
user.php - fehlende geschweifte Klammer am Ende
Quelle
2017-03-27 00:15:48
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
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. –
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