sicher Stellen Sie PHP-Server ausgeführt wird, und dass die php Der Code befindet sich im entsprechenden Ordner. Ich stieß auf das gleiche Problem, wenn der PHP nicht da war. Ich empfehle auch, den HTML-Code in den gleichen Ordner zu stellen, um Fehler beim Ursprungstest zu vermeiden.
Wenn das nicht das Problem ist, stellen Sie sicher, dass jeder SQL-Aufruf im PHP korrekt ist, und dass Sie aktuelle PHP-Standards verwenden ... PHP ändert sich schnell im Gegensatz zu HTML, CSS und Javascript, so dass einige Funktionen veraltet sein können .
Außerdem habe ich festgestellt, dass Sie Ihre Variable möglicherweise nicht korrekt sammeln, was auch diesen Fehler verursachen kann. Wenn Sie Variablen über das Formular senden, müssen sie im richtigen Format sein und entweder per POST oder GET gesendet werden, je nach Vorliebe. Zum Beispiel, wenn ich eine Login-Seite für ein Labyrinth-Spiel hatte:
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<form class="modal-content animate" method="post">
<div class="container">
<label><b>Username</b></label>
<input type="text" id="usernameinput" placeholder="Enter username" name="uname" required>
<label><b>Password</b></label>
<input type="password" id="passwordinput" placeholder="Enter Password" name="psw" required>
<button onclick="document.getElementById('id01').style.display='block'">Sign Up</button>
<button type="button" id="loginsubmit" onclick="myLogin(document.getElementById('usernameinput').value, document.getElementById('passwordinput').value)">Login</button>
</div>
</form>
JavaScript
function myLogin(username, password){
var datasend=("user="+username+"&pwd="+password);
$.ajax({
url: 'makeUserEntry.php',
type: 'POST',
data: datasend,
success: function(response, status) {
if(response=="Username or Password did not match"){
alert("Username or Password did not match");
}
if(response=="Connection Failure"){
alert("Connection Failure");
}
else{
localStorage.userid = response;
window.location.href = "./maze.html"
}
},
error: function(xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
var response = xhr.responseText;
console.log(response);
var statusMessage = xhr.status + ' ' + xhr.statusText;
var message = 'Query failed, php script returned this status: ';
var message = message + statusMessage + ' response: ' + response;
alert(message);
}
}); // end ajax call
}
PHP
<?php
$MazeUser=$_POST['user'];
$MazePass=$_POST['pwd'];
//Connect to DB
$servername="127.0.0.1";
$username="root";
$password="password";
$dbname="infinitymaze";
//Create Connection
$conn = new MySQLi($servername, $username, $password, $dbname);
//Check connetion
if ($conn->connect_error){
die("Connection Failed: " . $conn->connect_error);
echo json_encode("Connection Failure");
}
$verifyUPmatchSQL=("SELECT * FROM mazeusers WHERE username LIKE '$MazeUser' and password LIKE '$MazePass'");
$result = $conn->query($verifyUPmatchSQL);
$num_rows = $result->num_rows;
if($num_rows>0){
$userIDSQL =("SELECT mazeuserid FROM mazeusers WHERE username LIKE '$MazeUser' and password LIKE '$MazePass'");
$userID = $conn->query($userIDSQL);
echo json_encode($userID);
}
else{
echo json_encode("Username or Password did not match");
}
$conn->close();
?>
Es würde helfen, wenn Sie die anderen Teile des Codes wie HTML und JavaScript miteinbeziehen würden, da ich kein eigenes Beispiel geben müsste. Ich hoffe jedoch, dass diese Hinweise helfen!
gelöst Sie müssen Sie öffnen Seiten/Scripts Verwenden einer URL und des lokalen Webservers. Wenn Sie sie als lokale Dateien öffnen, führen Sie das PHP nicht aus, sondern geben Sie die PHP-Quelle aus. Überprüfen Sie die Quellansicht Ihres Browsers. – ThW