我正在尝试使用登录/注册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>   
<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");
?>
login_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';
}
}
}
?>
database.php中
<?php
$con = mysql_connect("localhost", "root" ,"");
if($con)
{
mysql_select_db("finalproject", $con);
}
现在我该怎么办?
答案 0 :(得分:6)
你可以使用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,它可以帮助您将密码存储在哈希而不是纯文本中。它更安全。 How do you use bcrypt for hashing passwords in PHP?
使用预准备语句还将删除代码中的SQL注入漏洞。 How can I prevent SQL injection in PHP?
答案 1 :(得分:0)
将此代码放在要打印Logout的位置。
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>';
}
您需要在login.php中放置一些代码以便注销:
if (isset($_GET['action']) and $_GET['action']=='logout'){
if(!isset($_SESSION)){session_start();};
unset($_SESSION['id']);
header('Location:home.php');
exit();
}