【发布时间】:2017-05-21 23:10:20
【问题描述】:
我有这个“注册用户”文件,其中有一个表格,我将在这里简化我所拥有的:
<form action="" method="POST">
<label for="user" class="control-label">User </label>
<input type="text" name="user" class="form-control" id="user" value="" required=""/>
<label for="user" class="control-label">Password1 </label>
<input type="text" name="password1" class="form-control" id="password1" value="" required=""/>
<label for="user" class="control-label">Password2 </label>
<input type="text" name="password2" class="form-control" id="password2" value="" required=""/>
<button type="button" value="signUp" name="submit" class="btn btn-lg btn-primary btn-block" onClick="register()">Sign up!</button>
如您所见,其中有一个事件,在一个 JS 文件中。这个文件有所有的输入,它工作得很好(我不认为它是相关的,所以我不会发布它)。它还具有对 PHP 文件的 AJAX 调用,将数据插入数据库。
function register(){
if(validationRegister()){
$.ajax({
url: "http://localhost/myProject/extras/processSignUp.php",
type: "POST",
data: {"user": user,
"password": password,
"password2": password2,
},
dataType: "html",
cache: false,
beforeSend: function() {
console.log("Processing...");
},
success:
function(data){
if(data == "Registered"){
window.location.href = "http://localhost/myProject/index.php";
}else{
window.location.href = "http://localhost/myProject/signUp.php";
}
}
});
}else{
alert("Incorrect data");
}
}
这是 PHP 文件:
<?php
include_once "connection.php"; --> this has all the data for the connection to the database
if($_POST['user'] == '' || $_POST['password'] == '' || $_POST['password2'] == ''){
echo 'Fill all the information';
}else{
$sql = 'SELECT * FROM `user`';
$rec = mysqli_query($con, $sql);
$verify_user = 0;
while($result = mysqli_fetch_object($rec)){
if($result->user == $_POST['user']){
$verify_user = 1;
}
}
if($verify_user == 0){
if($_POST['password'] == $_POST['password2']){
$user = $_POST['user'];
$password = $_POST['password'];
$sql = "INSERT INTO user (user,password) VALUES ('$user','$password')";
mysqli_query($con, $sql);
echo "Registered";
}else{
echo "Passwords do not match";
}
}else{
echo "This user has already been registered";
}
}
?>
PHP 代码,单独使用时效果很好(它曾经在表单文件的开头,由 if($_POST['submit']){} 包围)但现在我想在一个单独的文件,并使用 AJAX,但我无法注册用户:/数据的值永远不会“注册”...有什么想法吗?
提前致谢! :)
【问题讨论】:
-
记录
data,这是什么?您对 SQL 注入持开放态度,应该对您的密码进行哈希处理。 -
看看你的代码 特别是
if($_POST['user'] == '' or $_POST['password']){??or $_POST['password']什么 -
@chris85 是的,我知道,但是我正在学习并且刚刚开始这个项目,很快就会添加更多内容。 data 是 AJAX 调用接收的内容。我实际上在处理这个问题时遇到了很多麻烦,并且怀疑大部分问题都在那个部分:/
-
@RiggsFolly 嗨,是的,很抱歉。正如我所提到的,我已将代码编辑到最重要的部分以说明我的问题。在编辑时,我一定已经剪掉了必须存在的部分代码,但我没有意识到。将编辑帖子。
-
我的意思是它的实际价值是多少
console.log(data);也许你有一个新行,或者一些空格?
标签: javascript php mysql ajax