一个PHP页面,访问的时候显示需要输入密码才能查看,输入密码正确后写出一个cookie,有效期1小时。
当网页再次刷新或者重新打开该网页的时候读取cookie,cookie有效的话,就不验证密码直接显示加密后的内容。
求大神帮我写一下,小弟万分感谢!小弟分数不够了,就这点,万分感谢
你可以加一个表单或者在url网址上面加参数例如我用get参数的方式
正常访问的时候不让访问数据错误的一句话
<?phpif(!isset($_GET['name'])||!$_GET['name']=='sunny'){
exit('非法访问');
}
上面代码加上之后直接访问http://www.sunnyos.com/index.php就会失败
而稍微修改一下http://www.sunnyos.com/index.php?name=sunny 这样就会成功了,因为我从url网址上面获取了name这个参数来进行对比
还有就是通过表单的方式,html代码
<form method="post"><input type="text" name="name" />
<input type="submit" value="进入" />
</form>
php代码:
if(!isset($_POST['name'])||!$_POST['name']=='sunny'){
exit('非法访问');
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-02
<?php
$pass='123456';//你设置的正确密码
$cook_pass=isset($_COOKIE['pw'])>$_COOKIE['pw']:'';
if ($cook_pass!=$pass){
$form_pass=isset($_POST['pw'])>$_POST['pw']:'';
if ($form_pass==$pass){//密码正确,保存COOKIE
set_cookie('pw',$form_pass);
}else{//密码错误或者没有密码,显示登录内容
echo '<form method=post action=$PHP_SELF>
密码:<input type=passwd name=pw>
<input type=submit value='登录'>
</form>';
exit;
}
}
?>
这里开始是原始页面的代码追问
$pass='123456';//你设置的正确密码
$cook_pass=isset($_COOKIE['pw'])>$_COOKIE['pw']:'';
if ($cook_pass!=$pass){
$form_pass=isset($_POST['pw'])>$_POST['pw']:'';
if ($form_pass==$pass){//密码正确,保存COOKIE
set_cookie('pw',$form_pass);
}else{//密码错误或者没有密码,显示登录内容
echo '<form method=post action=$PHP_SELF>
密码:<input type=passwd name=pw>
<input type=submit value='登录'>
</form>';
exit;
}
}
?>
这里开始是原始页面的代码追问
亲,有错误代码啊,
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\home\ftp\z\zdpl04\wwwroot\1.php on line 3
第三行有错误
两个地方需要修改,一是3、5行的三元操作符号错误,大于符号修改为问号;二是11行的引号嵌套,需要修改为双引号,修改后就没错了,最后的结果以及通过语法的验证如下图: