login / logout не работает php правильно

<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php $user='hassan'; $apple ="6217c55b626e7477b972034993b40a29"; $salt="231**6"; $uname= $_POST["uname"]; $pas= $_POST["psw"]; $token1= hash("ripemd128", '$salt$pas'); if($token1===$apple && $user===$uname) { $_SESSION["user"]= $user; echo $_SESSION["user"]; if ($_SESSION["user"] == $user && $token1===$apple ) { echo "Welcome ".$_SESSION["user"]; } ?> <h1>you are logged in</h1> <form action="inbox.php" class="boxed" style ="border: 4px solid black ; text-align: center; method="post"> <h1><b>Check inbox :</b></h1> <input type="submit" class="button" value="Inbox" style =" background-color: grey; border: none; color: white; padding: 15px 70px; margin: 15px 0px; cursor: pointer;"><br><br> </form> <form action="add.php"class="boxed" style ="border: 4px solid black ; text-align: center; method="post"> <h1><b>ADD propert :</b></h1> <input type="submit" value="ADD" style =" background-color: grey; border: none; color: white; padding: 15px 70px; margin: 15px 0px; cursor: pointer;"> </form> <form action="logout.php" class="boxed" style ="border: 4px solid black ; text-align: center; method="post"> <h1>logout here</h1> <input type="submit" class="button" value="Logout" style =" background-color: grey; border: none; color: white; padding: 15px 70px; margin: 15px 0px; cursor: pointer;"> </form> <?php $_SESSION["user"]= "null"; $token=null; $user=null; } else { ?> <h1>You entered wrong details please enter again</h1> <a href="admin.html">try again</a> <?php } ?> </body> </html> 

У меня проблема с входом и выходом. Сеанс поддерживается, но он все еще регистрирует меня с неправильными деталями. Я использовал хэш и соль для шифрования пароля, а затем сохранил его в переменной apple . Извините за мой бедный отступ; Я новичок в PHP. После входа в систему мой скрипт выполнит три функции – все работают, но выход из системы также не работает.

Я застрял в этом, и мне нужно представить это для проекта, который уже просрочен, поэтому любая помощь будет принята с благодарностью!

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

 hash("ripemd128", "$salt$pas"); 

или

 hash("ripemd128", $salt.$pas); 

Упрощенный пример: https://3v4l.org/mu9Pm

Выход ETA: ваш html содержит кнопку, связанную с отдельным скриптом (logout.php). Вам необходимо передать идентификатор сеанса в этот файл (подробнее здесь ) и уничтожить сеанс.

Если $ _SESSION ["user"] = "null"; … в коде, который вы опубликовали, предполагается вывести пользователя из системы. Это не так. Я выполняю выполнение, когда предоставлен правильный pwd, и он вообще не подключен к кнопке.

После того, как скрипт logout работает, вы можете и должны думать о CSRF, но я думаю, что это мысль позже.