2017-02-12 152 views
0
<?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

我坚持这一点,我需要提交这个项目已经是一天过期,所以任何帮助将不胜感激!

+0

如何以错误的细节登录?此代码仅适用于一位用户。 – Rager

回答

0

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

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

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

简单的例子:https://3v4l.org/mu9Pm

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

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

注销脚本工作后,你可以也应该考虑CSRF,但我认为这是以后的想法。

+0

是的工作你建议注销 –

+0

感谢您的帮助,并请建议我如何结束会议登出呢! –

+0

注销不起作用 –