2012-10-27 35 views
1

我有關於我的網站註冊會議的一個問題登錄腳本: 這樣的事情是這樣的,我的工作我的網站WebMatrix的和我的工作是相同的文件在兩個不同的計算機,我也把網站上傳到服務器。在所有三種情況下,它工作得很好! 最近我在筆記本電腦上創建了相同的工作環境,webmatrix + xampp mysql db - 僅在這裏我發現會話拒絕創建,代碼:會議登記不工作

(登錄頁面包含在索引中。 PHP頁面。

<?php 
session_start(); 
$no_mail_pass_error=""; 
$no_user_error=""; 
$wrong_pass_error=""; 

if ($_POST['submit_login']){ 

$log_email = $_POST ["log_email"]; //VAR $email = to what usename has entered 
$log_password = $_POST ["log_password"]; //VAR $password = to what usename has entered 
$remember_me = $_POST ["remember_me"]; 

$log_email = strip_tags($log_email); 
$log_password = strip_tags($log_password); 

$log_email = mysql_real_escape_string($log_email); 
$log_password = mysql_real_escape_string($log_password); 

if ($log_email==""||$log_password=="") { 
$no_mail_pass_error=' 
    <div id="login_errors_div" style="display:none;"> 
    <table border="0"> 
    <tr> 
    <td> 
    <img src="ec_mark_25.png"/> 
    </td> 
    <td> 
    no mail  
    </td>  
    </tr> 
    </table> 
    <hr /> 
    </div> 

    '; 
} 
else { 

$login_connect = mysql_connect ("***", "***", "***") 

or die ("couldnt connect"); 
mysql_select_db (***) or die ("not found"); //if db was not found die 
mysql_query("SET NAMES 'utf8'"); 

$login_query = mysql_query("SELECT * FROM users WHERE email='$log_email'"); //search for specific username entered 

$login_numrows = mysql_num_rows($login_query); //check that it appears AT LEAST in ONE row 

if ($login_numrows!=0) // IF IT APPEARS IN NONE - NO USER EXISTS 

    { 

    while ($row = mysql_fetch_assoc($login_query)) //Takes the whole row of the specific user and extracts all the fields 
    { 
     $dbemail = $row['email']; 
     $dbpassword = $row['password']; //Sets thoes fields into variables 
     $id = $row['id']; 
     $log_firstname = $row['firstname']; 
     $log_lastname = $row['lastname']; 
    } 

    if ($log_email==$dbemail&&md5($log_password)==$dbpassword) 

    { 

    if ($remember_me=='on') { 
    setcookie ("email",$email,time()+604800); 

      session_register('email'); 
      $_SESSION['email']=$log_email; 

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

      session_register('firstname'); 
      $_SESSION['firstname']=$log_firstname; 

      session_register('lastname'); 
      $_SESSION['lastname']=$log_lastname; 

    header ("Location: homepage.php"); 
    } 
    else if ($remember_me=='') { 

      session_register('email'); 
      $_SESSION['email']=$log_email; 


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

      session_register('firstname'); 
      $_SESSION['firstname']=$log_firstname; 

      session_register('lastname'); 
      $_SESSION['lastname']=$log_lastname; 


      header ("Location: homepage.php"); 
      } 

    } 
    else { 
    $wrong_pass_error=' 
    <div id="wrong_pass_error_div" style="display:none;"> 
    <table border="0"> 
    <tr> 
    <td> 
    <img src="ec_mark_25.png"/> 
    </td> 
    <td> 
    wrong pass 
    </td>  
    </tr> 
    </table> 
    <hr /> 
    </div> 
    '; 
    } 


    } 

    else { 
    $no_user_error=' 
    <div id="no_user_error_div" style="display:none;"> 
    <table border="0"> 
    <tr> 
    <td> 
    <img src="ec_mark_25.png"/> 
    </td> 
    <td> 
    user not found 
    </td>  
    </tr> 
    </table> 
    <hr /> 
    </div> 
    '; 
    } 
} 

} 
?> 
<form name="login_form" id="logn_form" method="post" action="index.php"> 
<table border="0" style="margin-left: 60px; margin-bottom: 3px;"> 

    <tr>  

    <td id="login_info">mail</td> 
    <td id="login_info">pass</td> 
    <td></td> 
    </tr> 

    <tr> 
    <td><input id="login_input" name="log_email" type="text"/></td> 
    <td><input id="login_input" name="log_password" type="password"/></td> 
    <td><input id="login_submit" name="submit_login" type="submit" value="enter"/></td> 
    </tr> 

    <tr> 
    <td valign="top"> 
    <!-- TABLE FOR REMEMBER ME --> 
    <table style="margin: 0px; padding:0px;"><tr> 
    <td> 
    <input name="remember_me" type="checkbox"/> 
    </td> 
    <td>remember me</td> 
    </tr></table> 
    <!-- TABLE FOR REMEMBER ME - END -->  
     </td> 
    <td valign="top"><div style="margin-top: 5px; margin-right: 5px;"><a id="forgot_password_a" href="#">forgot pass</a></div></td> 
    </tr> 
    </table> 
    </form> 

什麼能阻止會議從登記?

+2

檢查你的PHP版本(我相信他們從兩個環境不同)。從PHP 5.3開始,'session_register'已被棄用,並在PHP> = 5.4中被刪除。只要刪除'session_register'並使用'$ _SESSION ['key'] =「value」;'而不是。見[session_register](http://php.net/manual/en/function.session-register.php)docs – dbf

+0

這是非常感謝!如果你把它作爲答案我可以標記它..感謝:) – durian

回答

4

發佈我的評論作爲一個答案;)

檢查你的PHP版本(我相信他們從兩個環境不同)。

session_register已被棄用PHP 5.3的和在PHP> = 5.4移除。請刪除session_register並使用$_SESSION['key'] = "value";代替。

session_register文檔。

0

檢查PHP在哪裏保存您的會話數據,你可以找到這個用phpinfo()函數,你可以改變它在php.ini中。我認爲這叫做session.save_path,並確保apache用戶(或任何web服務器)具有寫入權限到那個目錄。

也期待在http://php.net/manual/en/function.session-save-path.php