2013-08-19 45 views
1

我希望有人可以幫我用我的登錄腳本。當我從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

將此添加到腳本的開頭並檢查錯誤:'ini_set('display_errors',1); error_reporting(E_ALL);' –

+1

死亡白屏=錯誤檢查\顯示關閉 – 2013-08-19 21:01:12

+0

您正在混合括號內和非括號內的塊(如果聲明)。不要這樣做!這是一個維護噩夢。至於錯誤,你可以檢查服務器的錯誤日誌。它應該在那裏 – Cfreak

回答

0

您有else{ ?>未關閉。

+1

如果我關閉else語句,我得到內部服務器錯誤500. – user2480085

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();以確保您的會話數據和/或狀態確實被保存/更新您重定向到另一個網址之前。雖然我在上述修正中沒有實現。把它當作培訓機會。 ;)

+1

好吧,所以我打開錯誤檢查和頁面說這個 – user2480085

+1

警告:session_start()[function.session-start]:打開(/ home/users/web/b197/ipg.brorboardsnet/cgi-bin/tmp/sess_938a7d2379acb25f093f48792420240d,O_RDWR) 失敗:沒有這樣的文件或目錄(2)在/hermes/bosoraweb016/b197/ipg.brorboardsnet/sites/airbornmonkey/login.php上線7 警告:session_start()[function.session-start]:無法發送會話緩存限制器 - 已發送的頭文件(輸出開始於 /hermes/bosoraweb016/b197/ipg.brorboardsnet/sites/airbornmonkey/login.php:2)in /hermes/bosoraweb016/b197/ipg.brorboardsnet/sites/airbornmonkey/login.php on line 7 全屏幕背景圖像 – user2480085

+1

@ user2480085第一個錯誤(* Warning:session_start ...沒有這樣的文件或目錄*)會告訴您無法創建會話,因爲存儲會話文件的相關目錄不可用或不存在。這是**服務器配置問題**,而不是與您的PHP代碼相關的問題!由於第一個錯誤被打印到屏幕,因此會觸發以下錯誤。這很正常。所以,要保持簡短:你的服務器配置不正確。您必須修復這個問題,以便PHP可以找到存儲臨時會話文件的目錄。 –