Сделал такую авторизацию. До того зарегистрировал на "сайте" пользователя, его данные сохранились в БД. Логинюсь по е-мэйлу и паролю - вылетает "wrong password",хоть и все правильно.
$.ajax({
type: "POST",
url: "include/auth.php",
data: "email=" + auth_email + "&pass=" + auth_pass + "&rememberme=" + auth_rememberme,
dataType: "html",
cache: false,
success: function(data) {
if (data == 'yes_auth') {
location.reload();
} else {
$("#message-auth").slideDown(400);
$(".auth-loading").hide();
$("#button-auth").show();
}
}
});
if ($_SERVER["REQUEST_METHOD"] == "POST") {
include('db_connect.php');
include('../functions/functions.php');
$email = clear_string($_POST["email"]);
$pass = md5(clear_string($_POST["pass"]));
$pass = strrev($pass);
$pass = strtolower("9nm2rv8q".$pass.
"2yo6z");
if ($_POST["rememberme"] == "yes") {
setcookie('rememberme', $email.
'+'.$pass, time() + 3600 * 24 * 31, "/");
}
$result = mysqli_query($link, "SELECT * FROM reg_user WHERE email = '$email' AND pass = '$pass'");
If(mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_array($result);
session_start();
$_SESSION['auth'] = 'yes_auth';
$_SESSION['auth_pass'] = $row["pass"];
$_SESSION['auth_email'] = $row["email"];
$_SESSION['auth_name'] = $row["name"];
echo 'yes_auth';
} else {
echo 'no_auth';
}
}
Простите, что пишу советы в ответ, но мне нужно форматирование и много строк :D
if ($_SERVER["REQUEST_METHOD"] == "POST") { include('db_connect.php'); include('../functions/functions.php'); //Это называется дебаггинг - когда вы выводите всё, что вас интересует, смотрите и анализируете :D. var_dump - очень хорошая для этого функция. var_dump($_POST); echo '
' $email = clear_string($_POST["email"]); //Соль лучше добавлять ДО хеширования, ибо иначе, если кто-то получит доступ к БД - он сразу увидит, что пароль хранится в виде Соль1_хешПароля_Соль2. $pass = md5(clear_string($_POST["pass"])); $pass = strrev($pass); $pass = strtolower("9nm2rv8q".$pass. "2yo6z"); //Имейл и пароль (даже хеш) НЕЛЬЗЯ хранить в печеньках, ибо их стянуть можно без особых проблем. В куки пишут какой-нибудь хеш-id. //Иными словами, у вас в таблице пользователей (или в отдельной таблице) должно быть поле, например "session_hash", в который вы при первой авторизации на устройстве с галкой "запомнить меня" записываете какой-нибудь хеш (например, md5($_SESSION['user_id'].$_SERVER['REMOTE_ADDR']) //и потом настраиваете скрипт на авторизацию либо по логину и паролю, либо по хешу сессии + ещё что-нибудь. Например, связка id+session_hash if ($_POST["rememberme"] == "yes") { setcookie('rememberme', $email. '+'.$pass, time() + 3600 * 24 * 31, "/"); } //Здесь снова дебаг var_dump($email, $pass); echo '
'; //Дальше. Предположим, у вас 1 юзер, и его id - 1. //Я не умею в mysqli, поэтому пишу через PDO, вы просто переведёте $user = $db->query('SELECT `email`, `pass` FROM `reg_user` WHERE `user_id`=1')->fetch(); echo '$email == `email`: '; var_dump($email==$user['email']); echo '
'; echo '$pass == `pass`: '; var_dump($pass==$user['pass']); $result = mysqli_query($link, "SELECT * FROM reg_user WHERE email = '$email' AND pass = '$pass'"); If(mysqli_num_rows($result) > 0) { $row = mysqli_fetch_array($result); //@ - подавление ошибок. А т.к. у нас уже есть вывод до вызова session_start - ошибки точно будут. Поэтому мы их заглушим @session_start(); $_SESSION['auth'] = 'yes_auth'; $_SESSION['auth_pass'] = $row["pass"]; $_SESSION['auth_email'] = $row["email"]; $_SESSION['auth_name'] = $row["name"]; echo 'yes_auth'; } else { echo 'no_auth'; } }
Таким образом вы увидите на экране:
Читайте, анализируйте, делайте выводы, пишите.
Перед session_start();
напишите var_dump($row); die();
и покадите тут результат)
Так же я вам рекомендую не хранить в куке связку email + пароль)
Пустой результат запроса) Смотрите условия, проблема где то там)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
можно ли с помощью imagine yii2 получить изображение, а не сохранять егоТО есть сразу через ресайз получить обрезание изображение
Есть php скрипт, который запускается автоматом через cron как в запуск php скрипта по кнопке но данный там совет запускать через exec('/usr/bin/php /var/www/site/updatephp');...