繁体   English   中英

PHP / JSON登录脚本(Twitter风格)未设置会话

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM