我有這個登錄腳本,但由於某種原因,它不工作。我檢查了數據庫,表單,並以5種不同的方式重新編寫了腳本;然而,他們都有同樣的問題,它不會啓動會話。下面是代碼:PHP - 登錄腳本
<?php
session_start();
//connect and select DB
mysql_connect ("localhost", "root", "") or die ('Error: ' . mysql_error());
mysql_select_db('usr_info')or die ("cannot select DB :(");
//transfer values sent from form
$usrname = $_POST['usrname'];
$passwrd = $_POST['passwrd'];
//injection protection
$usrname = stripslashes($usrname);
$passwrd = stripslashes($passwrd);
$usrname = mysql_real_escape_string($usrname);
$passwrd = mysql_real_escape_string($passwrd);
$sql = "SELECT * FROM usrs
WHERE usremail='$usrname'
and passwrd='".md5($_POST['passwrd'])."'";
$result = mysql_query($sql);
//count the number of rows found with the given info
$count = mysql_num_rows($result);
//the matched result must be equal to 1
if ($count == 1) {
$_SESSION['u_name'] = $usrname;
header("Location: ../../landing.php");
exit();
}
else {
echo "Wrong Username or Password";
}
這是用形式IM:
<div id="login-signup" class="letters2"><a href="javascript:blankfunction()">Login | Signup</a></div>
<div id="point-1" class="point-1"><img src="site-wide/point-1.png" width="405" height="131" />
<div id="login-form">
<form id="login" method="POST" action="site-wide/effects/login.php">
<label for="username"></label>
<input type="text" name="usrname" id="usrname" value="email" onfocus="clearMe(this);" onblur="unClearMe(this);"/>
<label for="passwrd"></label>
<input type="password" name="passwrd" id="passwrd" value="password" onfocus="clearMe(this);" onblur="unClearMe(this);"/>
<input type="image" src="site-wide/submit.png" name="submit" id="submit" value="login"/>
</form>
這是的USR表在我的數據庫:
的USR
Field Type Null Default Comments
ID int(4) No
usrfname varchar(15) No
usrlname varchar(15) No
usremail varchar(45) No
passwrd varchar(8) No
usrage int(3) No
usrgender varchar(7) No
我找到了回答xD ..問題是數據庫。密碼字段只有8個字符,而真正的md5密碼超過了15個。所以我所做的只是增加字段可處理的字符數和中提琴!
剛剛意識到它實際上跳過了整個'if'語句。 – GeneralCan
我告訴過你在這段代碼中沒有好處,lol :) –