我有这个登录脚本,但由于某种原因,它不工作。我检查了数据库,表单,并以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 :) –