У меня есть скрипт входа в систему, но по какой-то причине он не работает. Я проверил базу данных, форму и переписал скрипт примерно 5 разными способами; однако у них у всех одна и та же проблема, сессия не запускается. Вот код:
<?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";
}
это форма, которую я использую:
<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>
это таблица usrs в моей базе данных:
usrs
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 символов, тогда как в пароле actall md5 было более 15. Поэтому все, что я сделал, это увеличил количество символов, которое поле может обработать, и альт!