Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当用户登录时,如何用注销替换登录_Php_Html_Database - Fatal编程技术网

Php 当用户登录时,如何用注销替换登录

Php 当用户登录时,如何用注销替换登录,php,html,database,Php,Html,Database,我正在尝试一个网站,那里有一个登录/注册wizerd。我希望当用户登录时,登录和注册链接将被注销链接替换。我如何才能做到这一点? 我的密码在这里 header.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="style.css"/> </head> <bod

我正在尝试一个网站,那里有一个登录/注册wizerd。我希望当用户登录时,登录和注册链接将被注销链接替换。我如何才能做到这一点? 我的密码在这里

header.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">


<link rel="stylesheet" type="text/css" href="style.css"/>

</head>

<body class="body">
<div id="inbody">

<div class="main_header">
    <div class="site_name">

    </div>
    <div class="add">
        <p><a class="link" href="add.php" style="text-decoration:none">Adds</a>&nbsp &nbsp
            <a class="link" href="login.php" style="text-decoration:none">login</a>&nbsp &nbsp
        <a class="link" href="register.php" style="text-decoration:none">Register</a></p>



    </div>
</div>



        <div class="main_body_part"> 

 
 

home.php

<?php
include ("include/header.php");
?> 

登录\u success.php

<?php

include 'database.php';
session_start();
$u_name=$_POST['u_name'];
$password=$_POST['password'];

login($u_name, $password);
function login($name,$pass)
{
    $sql = "SELECT * FROM registration WHERE user_name='$name'";
    $result = mysql_query($sql);
    while($row =  mysql_fetch_array($result))
{
    if($row['password']==$pass)
    {
       $_SESSION['id']=$row['user_id'];
       header('Location:home.php');
    }
    else 
    {
        echo 'not log in';
    }
}
}



?>

您可以使用php if-else有条件地显示正确的html

<?php if(isset($_SESSION['id'])): ?>
  <a class="link" href="logout.php" style="text-decoration:none">logout</a>
<?php else: ?>
  <a class="link" href="login.php" style="text-decoration:none">login</a>
<?php endif; ?>

还有另一种你可能更熟悉的符号,它的作用与上面的相同

<?php if(isset($_SESSION['id'])){ ?>
  <a class="link" href="logout.php" style="text-decoration:none">logout</a>
<?php }else{ ?>
  <a class="link" href="login.php" style="text-decoration:none">login</a>
<?php } ?>

看一看bcrypt,它将帮助您以散列形式而不是纯文本形式存储密码。它更安全


使用准备好的语句还将删除代码中的SQL注入漏洞

您可以使用php if-else有条件地显示正确的html

<?php if(isset($_SESSION['id'])): ?>
  <a class="link" href="logout.php" style="text-decoration:none">logout</a>
<?php else: ?>
  <a class="link" href="login.php" style="text-decoration:none">login</a>
<?php endif; ?>

还有另一种你可能更熟悉的符号,它的作用与上面的相同

<?php if(isset($_SESSION['id'])){ ?>
  <a class="link" href="logout.php" style="text-decoration:none">logout</a>
<?php }else{ ?>
  <a class="link" href="login.php" style="text-decoration:none">login</a>
<?php } ?>

看一看bcrypt,它将帮助您以散列形式而不是纯文本形式存储密码。它更安全


使用准备好的语句还将删除代码中的SQL注入漏洞

将此代码放在要打印注销的位置

if(isset($_SESSION['id'])){
echo '<a class="link" href="login.php?action=logout" style="text-decoration:none">logout</a>';
}else{
echo '<a class="link" href="login.php" style="text-decoration:none">logout</a>';
}

将此代码放置在要打印注销的位置

if(isset($_SESSION['id'])){
echo '<a class="link" href="login.php?action=logout" style="text-decoration:none">logout</a>';
}else{
echo '<a class="link" href="login.php" style="text-decoration:none">logout</a>';
}

如果设置了
会话
值,则将按钮置于条件中。您的代码也可以接受SQL注入。您还应该在同一关卡中检查密码和用户名,无需让PHP进行检查。也不要将密码存储在纯文本中。最后一个注意事项切换到
mysqli
pdo
,以便使用参数化查询。您肯定应该清除该输入。如果设置了
session
值,请将该按钮置于条件中。您的代码也可以接受SQL注入。您还应该在同一关卡中检查密码和用户名,无需让PHP进行检查。也不要将密码存储在纯文本中。最后一个注意事项切换到
mysqli
pdo
,以便使用参数化查询。你一定要对输入进行消毒。最后注意,不要使用
isset
empty
。一个或另一个,如果它不是
空的
,那么它就是
设置的
。最后注意,不要使用
isset
empty
。一个或另一个,如果它不是
空的
,那么它就是
设置的