登录/注销无法正常运行php

时间:2017-02-12 19:25:58

标签: php login logout

<?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>

我遇到登录和退出的问题。会话正在维护,但它仍然以错误的细节登录。我使用哈希和salt来加密密码,然后将其存储在变量apple中。抱歉我的压痕很差;我是PHP的新手。登录后,我的脚本将执行三个功能 - 一切正常,但注销也失败。

我坚持这个,我需要提交一个已经过期的项目,所以任何帮助都将非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用错误的凭据登录,因为PHP不会在单引号字符串中扩展变量。你需要使用:

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

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

简化示例:https://3v4l.org/mu9Pm

ETA注销: 您的html包含一个链接到单独脚本(logout.php)的按钮。您需要将会话ID传递给该文件(阅读更多here),并销毁会话。

如果$ _SESSION [“user”] =“null”; ...您发布的代码中的...应该将用户注销。它没有。当提供正确的密码并且根本没有连接到按钮时,我会被执行。

在注销脚本工作之后,您可以而且应该考虑CSRF,但我认为这是以后的想法。