2012-08-31 36 views
0

我正在一個擁有用戶配置文件的網站上工作,我設法完成了註冊頁面,一旦用戶激活了這個帳戶,他們將有權登錄。多個PHP錯誤

基本上我寫出我的登錄腳本,當我查看網站時,我有兩個錯誤,他們真的很混亂[錯誤1]:注意:未定義的索引:loginEmail在C:\ xampp \ htdocs \ mountain-bikers \ index.php on line 160 [錯誤2]:注意:未定義的索引:記得在C:\ xampp \ htdocs \ mountain-bikers \ index.php上線166 return_msg = no_good

這裏是登錄php代碼:

<?php 

if ($_POST['loginEmail'] != "") { 

include_once "includes/mysql_connection.php"; 

$loginEmail = $_POST['loginEmail']; 
$loginPassword = $_POST['loginPassword']; 
$loginRemember = $_POST['remember']; 

$loginEmail = strip_tags($loginEmail); 
$loginPassword = strip_tags($loginPassword); 
$loginEmail = mysql_real_escape_string($loginEmail); 
$loginPassword = mysql_real_escape_string($loginPassword); 

$pass = md5($loginPassword); 

//make query 
$sql = mysql_query("SELECT * FROM users WHERE email='$loginEmail' AND password='$loginPassword' AND activated='1'"); 
$login_check = mysql_num_rows($sql); 

if($login_check > 0){ 

    while($row = mysql_fetch_array($sql)){ 

     $id = $row["id"]; 
     session_register('id'); 
     $_SESSION['id'] = $id; 

     $firstname = $row["firstname"]; 
     session_register('firstname'); 
     $_SESSION['firstname'] = $firstname; 

     $email = $row["email"]; 
     session_register('email'); 
     $_SESSION['loginEmail'] = $email; 

    } // close while 

    // Remember Me Section Addition... if member has chosen to be remembered in the system 
    if($remember == "yes"){ 
     setcookie("idCookie", $id, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs 
     setcookie("firstnameCookie", $firstname, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs 
     setcookie("emailCookie", $email, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs 
     setcookie("passwordCookie", $password, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs 
    } 
    $my_msg = "all_good"; 
    print "return_msg=$my_msg&id=$id&firstname=$firstname"; 

} else { 
$my_msg = "no_good"; 
    print "return_msg=$my_msg"; 
    exit(); 
} 


}// close if post 
?> 

我也收到了電子郵件和密碼字段的未定義變量錯誤。此外,登錄在每個字段中都有一個value="<?php print "$loginEmail"; ?>"。如果你需要HTML只是問。

+0

見'isset()函數'http://www.php.net/manual/en/function.isset.php –

+0

你只需要更小心你的變量聲明。像這樣的錯誤是很常見的;如果你確保初始化變量並使用'isset()',你將能夠阻止它們。 –

回答

1

首先,你應該檢查isset:

if (isset($_POST['loginEmail']) && $_POST['loginEmail'] != "") 

接下來,我想記得的是一個複選框,如果未選中,不會傳遞值。確保isset那還有...

$loginRemember = isset($_POST['remember']) ? $_POST['remember'] : false; 

也,你會得到人們對你狂吠有關,因爲整個世界mysql_職能,包括我在內,正在試圖以確保沒有人還活着還能再使用它們。你應該看看PDO或mysqli的...

http://php.net/manual/en/book.pdo.php

+0

+1說明覆選框未發送,如果未選中。 – Fluffeh