PHP网页如果需要查看信息必须输入密码,验证后才可显示出内容的代码如何实现啊?

一个PHP网站,有个栏目是下载,但是不想让任何人都可以下载,需要输入正确密码后才可以下载,用JS脚本只用来检查密码有没有输入,输入之后,提交表单给页面自身,就是action="",然后判断输出不同的DIV,页面初始时显示输入密码框DIV,输入密码后,如果密码错误,依然显示输入密码的DIV,只有密码正确,才给出下载地址的DIV,这个下载地址不能一开始就从数据库里读出来,要判断正确密码了才从数据库取出,保证安全性,请问这个思路的代码大致怎么实现啊?
解决了会提高悬赏分的!谢谢!

新建一个PHP文件如下:

<?php
header('Content-type:text/html;charset=utf-8');
$password = "1234"; // 这里是正确密码
$p = "";
if(isset($_COOKIE["isview"]) && $_COOKIE["isview"] == $password){
$isview = true;
}else{
if(isset($_POST["pwd"])){
if($_POST["pwd"] == $password){
setcookie("isview",$_POST["pwd"],time()+3600*0.2);
$isview = true;
}else{
$p = (empty($_POST["pwd"])) ? "需要密码才能查看,请输入密码。" : "密码不正确,请重新输入。";
}
}else{
$isview = false;
$p = "请输入密码查看,获取密码可联系我。";
}
}

if($isview){ ?>

密码成功显示的内容

<?php }else{ ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<title>测试</title>
<!--[if lt IE 6]>
<style type="text/css">
.z3_ie_fix{
float:left;
}
</style>
<![endif]-->
<style type="text/css">
<!--
body{
background:none;
}
.passport{
border:1px solid red;
background-color:#FFFFCC;
width:400px;
height:100px;
position:absolute;
left:49.9%;
top:49.9%;
margin-left:-200px;
margin-top:-55px;
font-size:14px;
text-align:center;
line-height:30px;
color:#746A6A;
}
-->
</style>
<div class="passport">
<div style="padding-top:20px;">
<form action="" method="post" style="margin:0px;">输入查看密码
<input type="password" name="pwd" /> <input type="submit" value="查看" />
</form>
<?php echo $p; ?>
</div>
</div>
</body>
</html>
<?php
} ?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-09
首先第一个未验证下载页面上的链接提交给密码验证页面一个ID。当验证成功页面之后页面显示ID所对应的下载地址。当验证失败。一直显示验证页面。
第2个回答  2011-11-09
1 初始页面(index )输入密码(form表单提交) -> 2 判断密码的对错 ->如果错的,返回输入界面(index)
|
|对的
从数据库读取数据读取数据并显示出来,(这是另外一个页面咯)
如果你不想再写一个页面的话
我记得 js 里面有一个 什么东西,是显示层 跟 隐藏层的 你去写两个js 触发时间吧
第3个回答  推荐于2017-09-25
$right_pwd="123456";
if($_POST['form_pwd']==$right_pwd)
{
echo "<div id=\"downloadUrl\"><a href=\"download.php\">去下载</a></div>";
}
else
{
echo "<div id=\"formDiv\"><form name=\"f1\" method=\"post\" action=\"\">";
echo "<input type=password name=form_pwd>";
echo "<input type=submit value=\"提交密码\"></form></div>";
}本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网