我无法让我的 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);
}