Php 当用户登录时,如何用注销替换登录
我正在尝试一个网站,那里有一个登录/注册wizerd。我希望当用户登录时,登录和注册链接将被注销链接替换。我如何才能做到这一点? 我的密码在这里 header.phpPhp 当用户登录时,如何用注销替换登录,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
<!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>   
<a class="link" href="login.php" style="text-decoration:none">login</a>   
<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
。一个或另一个,如果它不是空的
,那么它就是设置的
。