我有關於我的網站註冊會議的一個問題登錄腳本: 這樣的事情是這樣的,我的工作我的網站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>
什麼能阻止會議從登記?
檢查你的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
這是非常感謝!如果你把它作爲答案我可以標記它..感謝:) – durian