xampp — Форма входа

Я новичок в PHP, я создал форму входа и домашнюю страницу. Я следовал тому же, что сказано в уроках, но я продолжаю получать сообщение об ошибке как «неправильные данные», хотя я предоставил правильные учетные данные.

// страница авторизации

    **Login.php**

<?php
session_start();
include_once 'database1.php';

if(isset($_SESSION['user'])!="")
{
header("Location: index1.php");
}
if(isset($_POST['login']))
{
$email = mysql_real_escape_string($_POST['email']);
$pass = mysql_real_escape_string($_POST['password']);
$result=mysql_query("SELECT * FROM users WHERE email='$email'");
$row=mysql_fetch_array($result);
if($row['password']==md5($pass))
{
$_SESSION['user'] = $row['number'];
header("Location: index1.php");
?>
<script> alert ('haii'); </script>
<?php
}
else
{
?>
<script>alert('wrong details');</script>
<?php
}

}
?>
<html><body><form  method="post" >
<label><center>EMAIL</center> <input type="text" name="email" placeholder="Your Email" required /> </label> </br>

<label>PASSWORD <input type="password" name="password" placeholder="Your Password" required /></label> </br><button type="submit" name="login">login</button> </br>
</br>

</form>

</html>

// индексная страница

**index1.php**

<?php
session_start();
include_once 'database1.php';

if(!isset($_SESSION['user']))
{
header("Location: login.php");
}
$result=mysql_query("SELECT * FROM users WHERE number=".$_SESSION['user']);
$userRow=mysql_fetch_array($result);
?>
<html>
<body>
<p> welcome </p>

</body>
</html>

2

Решение

Обычно строка md5 имеет 32 символа.

echo md5(77); // Result: 28dd2c7955ce926456240b2ff0100bde

Но в вашем случае база данных возвращает усеченную строку md5, которая имеет 20 символов.

28dd2c7955ce92645624

Проблема в том, что длина поля пароля вашей БД составляет всего 20 символов. Измените таблицу и установите длину поля пароля равной 32 символам, чтобы она могла содержать полную и правильную строку md5.

1

Другие решения

session_start();
include_once 'database1.php';
if(isset($_SESSION['user'])!="") {
header("Location: index1.php");
}
if(isset($_POST['login'])){
$email = mysql_real_escape_string($_POST['email']);
$pass = mysql_real_escape_string($_POST['password']);
$result=mysql_query("SELECT * FROM users WHERE email='$email'");
$row=mysql_fetch_array($result);
if($row['password']==md5($pass)) {
$_SESSION['user'] = $row['number'];
echo "<script>alert('logged in');</script>"header("Location: index1.php");

}
else {
echo "<script>alert('wrong credentials');</script>"}
}
0

По вопросам рекламы [email protected]