登录脚本困难?

时间:2013-08-19 20:59:08

标签: php html session login localhost

我希望有人可以帮我处理我的登录脚本。当我从wamp localhost运行它时,代码工作得很好,但是当它在服务器上运行时它会在我尝试登录时返回一个空白页面,任何人都可以告诉我为什么?代码如下。

<?php
session_start();

//login script
if(isset($_REQUEST['ch']) && $_REQUEST['ch'] == 'login'){

//give your login credentials here
if($_REQUEST['uname'] == 'zipbuzz' && $_REQUEST['pass'] == 'sewilt')
$_SESSION['login_user'] = 1;
else
$_SESSION['login_msg'] = 1;
}

//get the page name where to redirect
if(isset($_REQUEST['pagename']))
$pagename = $_REQUEST['pagename'];

//logout script
if(isset($_REQUEST['ch']) && $_REQUEST['ch'] == 'logout'){
unset($_SESSION['login_user']);
header('Location:login.php');
}
if(isset($_SESSION['login_user'])){
if(isset($_REQUEST['pagename']))
header('Location:'.$pagename.'.php');
else
header('Location:admin.php');
}else{
?>


<?php
//display the error msg if the login credentials are wrong!
if(isset($_SESSION['login_msg'])){
echo 'Wrong username and password !';
unset($_SESSION['login_msg']);
}
?>

然后我将以下内容添加到需要登录才能访问的页面中。

<?php session_start();
//check logged in or not!
if(!isset($_SESSION['login_user'])){
header('Location:login.php?pagename='.basename($_SERVER['PHP_SELF'], ".php"));
}
?>

2 个答案:

答案 0 :(得分:0)

您的else{ ?>未关闭。

答案 1 :(得分:0)

首先,这是您发布的代码的更正版本。

<?php
session_start();
//login script
if(isset($_REQUEST['ch']) && $_REQUEST['ch'] == 'login')
{
    //give your login credentials here
    if($_REQUEST['uname'] == 'zipbuzz' && $_REQUEST['pass'] == 'sewilt')
        $_SESSION['login_user'] = 1;
    else
        $_SESSION['login_msg'] = 1;
}

//get the page name where to redirect
if(isset($_REQUEST['pagename']))
    $pagename = $_REQUEST['pagename'];

//logout script
if(isset($_REQUEST['ch']) && $_REQUEST['ch'] == 'logout')
{
    unset($_SESSION['login_user']);
    header('Location:login.php');
}
if(isset($_SESSION['login_user']))
{
    if(isset($_REQUEST['pagename']))
        header('Location:'.$pagename.'.php');
    else
        header('Location:admin.php');
}
else
{
    //display the error msg if the login credentials are wrong!
    if(isset($_SESSION['login_msg']))
    {
        echo 'Wrong username and password !';
        unset($_SESSION['login_msg']);
    }
}
?>

除此之外,还有几行可以使用session_write_close();确保在重定向到另一个URL之前确实保存/更新了会话数据和/或状态。我没有在上面的修正中实现它。把它作为一个培训机会。 ;)

相关问题