PHP会话在现场很难但不是本地的
我们的开发团队刚刚将应用程序从本地服务器移动到了实时站点.该应用程序利用可以写入并利用MSQLi以及PDO方法的远程数据库来获取数据并将数据推送到数据库.
更新connect .inc文件以获得正确的数据库凭据后,Web应用程序在后端工作.数据通过表单进入数据库.但是,由于某种原因,未设置会话变量.现在,我留下了邪恶的,几乎是传统的网络开发问题:
我做了一个快速会话测试,其中设置了虚拟会话变量并进行了回显,它响起了铃声.设置会话后查询问题.也就是说,在运行查询之后,传递的数据再次被清理并传递给会话变量.以下是一个很好的例子. if ($query_dummy = $query_putitthere) { $_SESSION ['name'] = $name; $_SESSION ['date of application'] = $date; $_SESSION ['certifications'] = $certs; $_SESSION ['address'] = $addr; header ('Location: next_page.php'); } 就像一个优秀的小PHP开发人员一样,OB_start和session_start都位于PHP文档的顶部,并且他们再次使用相同的代码在本地服务器上工作.我唯一能想到的问题就是当我们更改新数据库的凭据时发生了某些事情,但这并没有太大意义,因为数据正好让数据库正常运行. 我怀疑这是一个PHP配置问题,因为你认为无论运行什么版本,会话和PHP的处理行为都必须保持一致.然而,发生了更奇怪的事情. 变量在前端通过msqli_real_escape _string进行清理.一个例子如下. $name = mysqli_real_escape_string($connect,$_POST['your_name']); $date = mysqli_real_escape_string($connect,$_POST['date_of_app']); $certs = mysqli_real_escape_string($connect,$_POST['certifs']); 当我说他们在参加会议之前再次进行消毒时,我意识到我可能会说错话.实际上,当会话通过时,他们会通过html_enttites在第二页上进行清理. MSQLi从用户输入和html_entities处理卫生设施的心态是照顾可能已经从后端裂缝中滑落的任何吸虫. 解决方法
如果没有办法复制行为,很难找到确切的原因,但这里有一些你可能需要仔细检查的事情:
>会话cookie是否会进入浏览器?这是作为HTTP Cookie标头发送的,因此需要在脚本将任何输出发送到客户端之前发生. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |