Mysqli логин готовые заявления

0

Хорошо, я заставил меня зарегистрироваться в системе регистрации, но когда я попытался сделать систему входа в систему, она не сработала. Когда пользователь входит в систему с правильным именем пользователя и паролем, его сообщение "Вы вошли в систему", но когда я обновляю сайт, он говорит, что мне нужно войти в систему. И я должен спросить, как я могу проверить, что пользователь зарегистрирован в качестве примера. Если пользователь вошел в систему так, эхо, и если это не так, повторите это.

Вот мой код:

session_start();
            require 'inc/connect.php';

            if(isset($_POST['name'], $_POST['password'])){
                if(!empty($_POST['name'])){
                    if(!empty($_POST['password'])){


                        $username = $_POST['name'];
                        $password = $_POST['password'];
                        $user = $_SESSION['name'];

                        // KRYPTERING
                        $md5 = md5($password);
                        $sha1 = sha1($md5);
                        $crypt = crypt($sha1, 'st');
                        $md51 = md5($crypt);
                        $sha12 = sha1($md51);
                        $crypt1 = crypt($sha12, 'st');
                        $kode = base64_encode($crypt1);

                        $check = $mysqli->prepare("SELECT username, password FROM user WHERE username=? && password=?");
                        $check->bind_param("ss", $username, $kode);
                        $check->execute();
                        $check->bind_result($username, $kode);
                        $print = $check->fetch();
                        $check->close();

                        if ($print)
                            echo "You are now logged in!";
                        else
                            echo "Username / Password was incorrect!";

                    } else
                        echo "You need something!";
                } else
                    echo "You need something!";
            }
  • 4
    Потому что вы ничего не устанавливаете в сеансе, говоря, что вход в систему прошел успешно, и не проверяете то же самое в верхней части страницы. (Например, вы можете поместить имя пользователя в сеанс, когда вход успешен.)
  • 0
    Как мне это сделать?
Теги:
session
mysqli
login
prepare

1 ответ

0
Лучший ответ

Вам нужно поместить имя пользователя в сеанс на успешном входе в систему, проверить его в верхней части страницы и перенаправить на другой, когда он уже установлен.

session_start();
            require 'inc/connect.php';

if(isset($_SESSION['username']))
{
  //already logged in, redirect
  header('Location: otherpage.php');
  exit;
}

            if(isset($_POST['name'], $_POST['password'])){
                if(!empty($_POST['name'])){
                    if(!empty($_POST['password'])){


                        $username = $_POST['name'];
                        $password = $_POST['password'];
                        $user = $_SESSION['name'];

                        // KRYPTERING
                        $md5 = md5($password);
                        $sha1 = sha1($md5);
                        $crypt = crypt($sha1, 'st');
                        $md51 = md5($crypt);
                        $sha12 = sha1($md51);
                        $crypt1 = crypt($sha12, 'st');
                        $kode = base64_encode($crypt1);

                        $check = $mysqli->prepare("SELECT username, password FROM user WHERE username=? && password=?");
                        $check->bind_param("ss", $username, $kode);
                        $check->execute();
                        $check->bind_result($username, $kode);
                        $print = $check->fetch();
                        $check->close();

                        if ($print)
                        {
                            //redirect to different page for the message
                            //echo "You are now logged in!";
                            $_SESSION['username'] = $username;
                             header('Location: otherpage.php');
                             exit;
                        }
                        else
                            echo "Username / Password was incorrect!";

                    } else
                        echo "You need something!";
                } else
                    echo "You need something!";
            }

Затем на других страницах вам нужно что-то вроде:

session_start();
if(!isset($_SESSION['username']))
{
  //not logged in, redirect to login form
  header('Location: login_form.php');
  exit;
}
  • 0
    И в otherpage.php, как я могу проверить, вошел ли он в систему или нет?
  • 0
    @HalaKeblawi добавил это к ответу.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню