> 백엔드 개발 > PHP 튜토리얼 > unset火狐无效

unset火狐无效

WBOY
풀어 주다: 2016-06-23 13:55:21
원래의
1569명이 탐색했습니다.

unset($_SESSION['user']);
火狐无效,谷歌是OK的,不知道为啥,火狐是不是有什么特别要求
还有用火狐F12,会有安全问题,提示“密码字段出现在一个不安全的页面(http://)中。这是一个导致用户的登陆凭据可被窃取的安全风险。”
使用POST提交的用户名和密码,但是用了iframe来获取处理登陆的php的内容,是不是这样做不安全


回复讨论(解决方案)

提示“密码字段出现在一个不安全的页面(http://)中。这是一个导致用户的登陆凭据可被窃取的安全风险。”
意思就是你的密??出去?是明文,?有加密,容易被?取。用https就不?提示的。?句?可以不理的。

是用?名和密?post到iframe ?面做???? 不?不安全啊。

unset($_SESSION['user']) 不行?? ?句是在iframe?面?

unset($_SESSION['user']) 
这句直接写在一个logout.php里,
点击“退出”就会连接到这个文件,火狐里没法注销这个session,谷歌和360是正常的

用firefox测试了一下。
a.php

<?phpsession_start();$_SESSION['user'] = 'fdipzone';?>
로그인 후 복사


b.php
<?phpsession_start();if(isset($_SESSION['user'])){    unset($_SESSION['user']);    var_dump($_SESSION['user']);}?>
로그인 후 복사


var_dump NULL 很正常。

如果真的不能unset,可以执行$_SESSION['user'] = NULL;

var_dump  输出是NULL
找到原因了,原来是火狐回退不会刷新页面,判断登陆状态的js没有执行
logout.php 里是这么写的
unset($_SESSION['user']);
echo "<script> history.go(-1)</script>";

火狐回退,$(document).ready(function(){}里的函数为啥不会运行呢
谷歌是会运行的

看?是你的firefox有??了。???了,一切正常。

重新下了个火狐,还是一样,这情况是在太怪了

以前写验证码类的时候碰到过这个问题
window.onload的时候,我刷新了验证码图片
火狐提交表单再后退验证码不变,IE刷新
当时查了下资料,火狐的内核会为所有选项卡各自在内存中保存历史记录,当发生回退时其实仅仅读取了内存,js运行状态也就保存了下来。而IE内核的回退就好像是直接输入地址一样

 echo "<script> history.go(-1)</script>"; 
改成跳转header("Location:xx.php");试试

session 是存放在服务器上的
只要浏览器能传递正确的 sessionid ,其他的就与浏览器无关了

unset($_SESSION['user']);
并不能注销 session,而只是从 session中删去了 uesr 项
显然这句是有条件执行的,所以你应检查删除的条件是否成立
而传递删除条件就与浏览器有关了

以前写验证码类的时候碰到过这个问题
window.onload的时候,我刷新了验证码图片
火狐提交表单再后退验证码不变,IE刷新
当时查了下资料,火狐的内核会为所有选项卡各自在内存中保存历史记录,当发生回退时其实仅仅读取了内存,js运行状态也就保存了下来。而IE内核的回退就好像是直接输入地址一样


那这个问题有啥办法解决不

 echo "<script> history.go(-1)</script>"; 
改成跳转header("Location:xx.php");试试


改成这个就正常了。。

session 是存放在服务器上的
只要浏览器能传递正确的 sessionid ,其他的就与浏览器无关了

unset($_SESSION['user']);
并不能注销 session,而只是从 session中删去了 uesr 项
显然这句是有条件执行的,所以你应检查删除的条件是否成立
而传递删除条件就与浏览器有关了


删除应该是成功的,因为火狐回退没效果,但是刷新一下就好了

那这个问题有啥办法解决不



像9楼那样,用php的header Location 或者window.location.href 避免程序中后退
用户自己按后退那就是他的问题了

 用header('location: '.$_SERVER['HTTP_REFERER']);解决了,多谢大家

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿