2012-11-09 44 views
0

我最近升級了我的php版本,我的登錄表單不再有效。如果我把正確的輸入..它不重定向,而是顯示一個空白頁面。我仍然在學習,任何幫助將不勝感激。登錄表單無法正常工作

<? 
session_start(); 
if(!empty($_SESSION[uname])) 
{ 
    header("location:homepage.php"); 
    exit(); 
} 
require_once "conn.php"; 
if(isset($s1)) 
{ 
    if(!empty($uname1) && !empty($upass1)) 
    { 
     $sql = "SELECT * FROM members_info WHERE uname = '$uname1' AND upass = '$upass1'"; 
     $result = mysql_query($sql); 
     if(mysql_num_rows($result) == "1") 
     { 
      $a = mysql_fetch_array($result); 
      $_SESSION[uname] = $uname1; 
      header("location:homepage.php"); 
      exit(); 
     } 
     else 
     { 
      $login_error = "The username and password you entered was invalid."; 
     } 
    } 
} 
include_once "main3.php"; 
?> 
+1

你會得到什麼錯誤? 「不工作」有點含糊。 – j08691

+4

不是答案,但是:請不要將密碼以明文存儲在數據庫中(但使用bcrypt對其進行哈希)。並且請停止使用舊的'mysql_ *'函數,並考慮使用準備好的語句開始使用PDO/MySQLi。您的用戶將不勝感激。 – PeeHaa

回答

2

改變這個你會看到一些東西。還要在php.ini文件中將show error設置爲true。所以你可以看到錯誤如果可用。

if(!empty($_SESSION[uname])) 

這個

if(!empty($_SESSION['uname'])) 
+0

賓果。 +1。幾乎肯定是問題的原因。不加引號的數組鍵導致PHP發出警告,然後禁用header()重定向,因爲輸出已經啓動。 –

+0

是因爲你在你的環境中顯示錯誤php發佈了未定義索引警告,並且在重定向之前在你的輸出中添加了文本。 – slash28cu

+0

修復了它...... @Sura感謝您的幫助。 –

0

當你不使用任何請求變量的任何地方,我的猜測是,你有register_globals在舊版本的PHP開啓。

此功能已棄用,已從php 5.4中刪除。

要訪問發佈的變量,現在你將不得不使用:的

$_POST['uname1'] 

代替:

$uname1 

另外請注意,你的代碼很容易受到SQL注入,你應該切換到PDO/mysqli並準備好語句。