相关疑难解决方法(0)

带有禁用cookie的PHP会话,它有效吗?

今天我作为PHP开发人员接受了skype面试,其中一个问题是关于Cookies和PHP Sessions.

问题是,如果在用户浏览器中禁用了Cookie,是否可以设置和读取,使用PHP会话?

我告诉他们不是,默认情况下,PHP会话取决于设置会话cookie.当PHP会话开始,新的会话cookie设置默认名称PHPSESSID,并且该cookie认为会话ID的值,例如:ftu63d8al491s5gatuobj39gk7然后在TMP文件夹中的文件sess_ftu63d8al491s5gatuobj39gk7 Apache服务器上创建并认为会议的内容,例如:test1 | s:12:"SessionTest1"; test2 | s:12:"SessionTest2";

他们告诉我这不是真的,即使用户在浏览器中禁用了cookie,也可以使用PHP Sessions.

然后我告诉他们你可以这样做,但会话ID将作为GET变量通过URL传递.这不安全,你必须在php.ini中设置它.

他们正在讨论如何在浏览器中禁用Cookie时如何使用PHP会话.如果我们正在建立网上商店,并且一些奶奶使用我们的网上商店并禁用cookie,她会更加小心.PHP会话非常棒,因为即使用户禁用了Cookie,您也可以使用它们.我就像wtf,wtf wtf?!?!

我用两个文件进行测试,index.php启动会话并设置会话变量.然后session.php尝试读取该会话变量.

这是它的样子:

的index.php

<p>This is where I start and set php sessions.</p>

<?php

    session_start();
    $_SESSION['test1'] = "SessionTest1";
    $_SESSION['test2'] = "SessionTest2";

?>

<p>This is a link, that starts new HTTP Request, and tries to read session set on this page:</p>
<p><a href="session.php">Read Session</a></p>
Run Code Online (Sandbox Code Playgroud)

session.php文件

<?php

    session_start();
    var_export($_SESSION);

?>

<p><a href="index.php">Back</a></p>
Run Code Online (Sandbox Code Playgroud)

现在,如果您在浏览器中启用cookie,请访问index.php,并访问session.php,会话将被打印出来.

但是,如果你清除浏览器历史记录和cookie,然后访问index.php,然后访问session.php,你会看到空数组对吗?

基本上我的问题是,我是对的吗?如果在浏览器中禁用cookie,可以使用PHP会话吗?并且默认情况下做PHP会话机制,取决于设置会话COOKIE?

更新:我对此感到很生气,所以我回电话给那个和我说话的人.并问他,默认情况下PHP会话可以不使用cookie吗?那家伙说"是".然后我告诉他他错了,他说:"是的,是的,如果你这么说......"然后开始大笑.然后我告诉他,如果PHP会话可以在没有设置cookie的情况下工作,那么服务器如何知道当前用户/浏览器会话ID,如果它没有存储在会话cookie中?(我想知道他是否知道会话ID可以作为GET变量传递)并且他至少安静了20多秒,并告诉我他是系统管理员,我应该问开发人员.而且他已经43岁了,并且在商务方面拥有13年的丰富经验(他以30?wtf开始?),但他信任我.我向他解释了Session如何工作以及你可以在没有Cookie的情况下使用它,但是会话ID被作为GET变量传递,告诉他我告诉他们在采访中,但他们告诉我不,不,不...:S

所以基本上,这个人对PHP和PHP Sessions没有任何线索,是的,他是那个问我会话的人,告诉我PHP会话可以在没有cookie的情况下工作,即使我告诉他不能这样做,那个有一种方法可以在没有cookie的情况下使用PHP会话,但默认情况下它不起作用.他就像,不,不......最后他告诉我,他认为会话可以在没有cookie的情况下工作,因为他作为服务器上的系统管理员,永远看不到tmp文件夹中的会话?!?!?

无论如何,那些家伙都吮吸PHP,我无法接受他们的工作机会,毕竟我不认为他们会给我一份工作......

感谢所有的评论!

php cookies session

44
推荐指数
4
解决办法
4万
查看次数

我什么时候应该使用html5 sessionStorage?

我已经学会了sessionStorage(在会话期间持续)和localStorage(如果没有删除则永远存在)之间的区别.

我可以看到它localStorage可以用作更好的cookie版本.(更大的尺寸,不是像cookie那样为每个HTTP请求前往服务器).

但是,因为sessionStorage,我在想什么时候才能有效地使用它?

我想到用户输入到pageA中的文本字段,然后在同一个选项卡或浏览器窗口中移动到pageB,pageB可以查找sessionStorage.

我不能真正扩展我的猜测,而不是上面的场景.谁能告诉我sessionStorage怎么用?

html html5 local-storage web-storage

18
推荐指数
2
解决办法
7318
查看次数

标签 统计

cookies ×1

html ×1

html5 ×1

local-storage ×1

php ×1

session ×1

web-storage ×1