#php #jquery #ajax
#php #jquery #ajax
Вопрос:
Я несколько раз просматривал учебные пособия, и мне трудно понять, где мой код неверен. Я могу запустить свой php-файл и отправить свою информацию в свою базу данных, поэтому я знаю, что проблема не в моем подключении, поэтому я думаю, что это мой index.html досье. Возможно, это как-то связано с тем, как я пытался реализовать jquery, но я об этом тоже не знаю
Index.html
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="login.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#login').click(function(event){
event.preventDefault();
var username =$('#use').val();
var pass = $('#pass').val();
$.ajax({
url: 'login.php',
method:'POST',
data:
{
User: username,
Pass: pass
},
success:function(result){
alert(result);
}
});
});
});</script>
</head>
<body>
<div class="login-page">
<div class="form">
<form class="register-form">
<input type="text" placeholder="name"/>
<input type="password" placeholder="password"/>
<input type="text" placeholder="email address"/>
<button>create</button>
<p class="message">Already registered? <a href="#">Sign In</a></p>
</form>
<form class="login-form">
<input type="text" id="use" placeholder="username"/>
<input type="password" id="pass" placeholder="password"/>
<button type="submit" id="login">login</button>
<p class="message">Not registered? <a href="#">Create an account</a></p>
</form>
</div>
</div>
</body>
</html>
PHP-код, подключающийся к моей БД
<?php
$dbname = 'project test';
$dbuser = 'root';
$dbpass = '';
$dbhost = 'localhost';
$username=$_POST['use'];
$password=$_POST['pass'];
$conn= mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO user (User, Pass)
VALUES ('{$username}','{$password}')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close(); ;
?>
Комментарии:
1. В вашем коде, который вы передаете
User
, иPass
в вашем ajax есть опечатка, и вы получаете ее с помощью$_POST['use']
,$_POST['pass']
.. и т. д. т. Е.:User != use
и то же самое для других.2. В вашем коде возможны широко открытые SQL-инъекции, НЕ используйте их в производстве.
3. Это только для теста. Я пока даже не могу получить данные формы, поэтому не смог даже учесть безопасность.
4. Используйте встроенный PDO php.net/manual/en/intro.pdo.php
Ответ №1:
В вашем index.html файл, который вы отправляете User
и Password
значения Однако, когда вы пытаетесь получить их в своем php-файле, вы пытаетесь получить use
и pass
значения. Их имена не совпадают. Имена должны совпадать, чтобы правильно получить значения.
Комментарии:
1. Итак, я сопоставил файлы php с тем, что находится в моем файле ajax, но по-прежнему ничего не происходит при нажатии кнопки.