我需要为每个文档加载设置动态ID。此ID应在PHP中设置。现在,当我设置session_start()
时,php代码将被执行两次,因为生成的文档源中的ID代码与alert脚本变量中的相同代码不同。没有运行时错误。
此代码出了什么问题?如何在session_start()
之后阻止会话重新执行我的代码?
当代码执行两次(var idvar包含不同的值)时,为什么heck只执行一次警报?
我简化了脚本,以便您可以尝试自己:
<?php
// Session start generates two different ID's
session_start();
// Create ID
$time = microtime(1);
$parts = explode('.', (string)$time);
$idvar = strtoupper(strrev(dechex($parts[0]) . dechex($parts[1]))) . dechex(rand());
?>
<script>
// Contains a new generated ID after session_start()
var IDvr = '<?php print $idvr; ?>';
alert(IDvr);
</script>
截图:
答案 0 :(得分:1)
答案 1 :(得分:0)
我发现了这个:
PHP Session storing behavior into variables? 但即使我在页面中添加了一个图标,它也无法正常工作。该页面也是独立的,不包含在另一页面中。
即使这不起作用!
// Session start generates two different ID's
if(!isset($_SESSION) && !isset($idvr)) {
session_start();
// Create ID
$time = microtime(1);
$parts = explode('.', (string)$time);
$idvr = strtoupper(strrev(dechex($parts[0]) . dechex($parts[1]))) . dechex(rand());
}
更新
现在更正了:
使用view-source:pgname和session初始化后,代码将在源视图中再次执行!