1

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

1 回答 1

2

session_register() 已弃用。

利用:

session_start();
$_SESSION['useremail'] = @useremail;
$_SESSION['password'] = @password;
于 2013-07-21T19:47:50.993 回答