[英]PHP/JSON Login script (Twitter style) not setting sessions
我无法使我的Twitter风格登录正常工作,由于某种原因,它卡在了
session_register("useremail");
session_register("userpass");
并且在此之后不执行重定向。 如果我输入了错误的帐户数据,它将起作用,并弹出相应的错误消息。
这是完整的代码:
<?php
if(empty($_POST['email']) || empty($_POST['password']))
{
die(msg(0,"All the fields are required"));
}
if(!(preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email'])))
die(msg(0,"You haven't provided a valid e-mail"));
$host="localhost";
$username="root";
$password="x";
$db_name="x";
$tbl_name="x";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$useremail=$_POST['email'];
$userpass=$_POST['password'];
$useremail = stripslashes($useremail);
$userpass = stripslashes($userpass);
$useremail = mysql_real_escape_string($useremail);
$userpass = mysql_real_escape_string($userpass);
$sql="SELECT * FROM $tbl_name WHERE email='$useremail' and password='$userpass'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("useremail");
session_register("userpass");
echo msg(1,"/backoffice/");
}
else {
echo msg(0,"Invalid E-Mail or Password.");
}
function msg($status,$txt)
{
return '{"status":'.$status.',"txt":"'.$txt.'"}';
}
?>
还有JS部分
$(document).ready(function(){
$('#signin').submit(function(e) {
login();
e.preventDefault();
});
});
function login()
{
hideshow('loadinglogin',1);
error(0);
$.ajax({
type: "POST",
url: "submit_login.php",
data: $('#signin').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
window.location=msg.txt;
}
else if(parseInt(msg.status)==0)
{
error(1,msg.txt);
}
hideshow('loadinglogin',0);
}
});
}
function hideshow(el,act)
{
if(act) $('#'+el).css('visibility','visible');
else $('#'+el).css('visibility','hidden');
}
function error(act,txt)
{
hideshow('error',act);
if(txt) $('#error').html(txt);
}
session_register()已弃用。
采用:
session_start();
$_SESSION['useremail'] = @useremail;
$_SESSION['password'] = @password;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.