PHP:函数返回值如何';不可读
我想使用模式引导、PHP和jQuery创建登录系统,单击登录按钮后,我会显示此模式:PHP:函数返回值如何';不可读,php,jquery,authentication,Php,Jquery,Authentication,我想使用模式引导、PHP和jQuery创建登录系统,单击登录按钮后,我会显示此模式: <div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> <div c
<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalCenterTitle">Login Page</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="exampleInputEmail1">Username</label>
<input type="text" name='username' class="form-control" id="username">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" name='password' class="form-control" id="password">
</div>
<div class="form-group form-check">
<input name='remember' type="checkbox" class="form-check-input" id="remember">
<label class="form-check-label" for="exampleCheck1">Remember me</label>
</div>
<button type="button" name='login' id='login' class="btn btn-primary mr-auto">Login</button>
</div>
</div>
</div>
</div>
并且login.php页面代码为:
<?php
include_once('../includes/functions.php');
//login
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
$remember = $_POST['remember'];
$message=login($username ,$password); /// the error is here
if($message=='logined successfully' && $remember =='on'){
$domain = ($_SERVER['HTTP_HOST'] != 'localhost:3308') ? $_SERVER['HTTP_HOST'] : false;
setcookie("username",$username,time()+31556926, '/', $domain, false );
} elseif($message=='logined successfully' && $remember !='on') {
session_start();
$_SESSION['MM_Username'] = $username;
}
}
echo $message;
// end of login
?>
JavaScript是:
<script>
$(document).ready(function(){
$('#login').click(function(){
var username =$('#username').val();
var password =$('#password').val();
if(document.getElementById("remember").checked==true){
var remember ='on';
} else {
var remember ='off';
}
if(username!='' && password!=''){
console.log(remember);
$.ajax({
url:'login.php',
method : 'POST',
data :{username:username,password:password,remember:remember},
success:function(data){
if(data =='logined successfully'){
console.log(data);
$('#loginModal').hide();
location.reload();
} else {
console.log(data);
$('#loginModal').hide();
alert(data);
}
}
});
} else {
alert('Both username and password required!');
}
})
})
</script>
$(文档).ready(函数(){
$('#login')。单击(函数(){
var username=$('#username').val();
var password=$('#password').val();
if(document.getElementById(“记住”).checked==true){
var='on';
}否则{
var记住class='off';
}
如果(用户名!=''&&密码!=''){
console.log(记住);
$.ajax({
url:'login.php',
方法:“POST”,
数据:{用户名:用户名,密码:密码,记住:记住},
成功:功能(数据){
如果(数据==‘已成功登录’){
控制台日志(数据);
$('#loginModal').hide();
location.reload();
}否则{
控制台日志(数据);
$('#loginModal').hide();
警报(数据);
}
}
});
}否则{
警报('需要用户名和密码!');
}
})
})
当我在控制台上记录数据值时,它告诉我来自login.php的消息变量未定义,我不知道我的错误在哪里您在第4行的posts变量中使用“login”索引,但在jQuery ajax中,您不会在请求中传递任何登录数据
所以,在php文件中完成这个过程之后,并没有$message变量用于回送,并且您的请求返回为空
将其用作jQuery ajax中的数据(我的建议):
或者在php文件中使用此选项,而不是“isset($\u POST['login'])”:
只需从login()函数返回true/false,然后设置消息,重构它。logined不是一个单词,但在登录函数中,我有三条不同的消息要显示。然后返回一个数组
['status'=>true,'message'=>'logined successfully']
,但您确实想检查true或false,而不是string。您还可以从函数中抛出一个异常并捕获它,然后可以设置任何消息请不要使用自己的密码哈希,特别是不要使用MD5()
或SHA1()
。为了用户的安全,PHP提供并请使用它们。非常感谢,问题是我首先在index.PHP中创建了login.PHP,因此我使用了“isset($\u POST['login']),在我将其移动到单独的文件后,我忘了删除这一行,我只是删除了它并解决了它
<script>
$(document).ready(function(){
$('#login').click(function(){
var username =$('#username').val();
var password =$('#password').val();
if(document.getElementById("remember").checked==true){
var remember ='on';
} else {
var remember ='off';
}
if(username!='' && password!=''){
console.log(remember);
$.ajax({
url:'login.php',
method : 'POST',
data :{username:username,password:password,remember:remember},
success:function(data){
if(data =='logined successfully'){
console.log(data);
$('#loginModal').hide();
location.reload();
} else {
console.log(data);
$('#loginModal').hide();
alert(data);
}
}
});
} else {
alert('Both username and password required!');
}
})
})
</script>
data: { login: 1, username: username, password: password, remember: remember },
if(isset($_SERVER['REQUEST_SCHEME']) AND $_SERVER['REQUEST_SCHEME'] == 'POST'){