我在下面有一些代码,用于检查会话是否存在,然后相应地打印出正确的HTML。
<?php
// check if session started
if (session_status() !== PHP_SESSION_NONE):?>
JUNK HERE!!!
<?php
else:?>
<!DOCTYPE html>
<!-- START START START START START START START -->
<head>
<meta charset="utf-8">
<title>2300 Edit</title>
<meta name="author" content="Kenny Hall">
<link rel="stylesheet" href="style.css">
<script src="jquery-2.1.1.min.js"></script>
<script src="access.js"></script>
</head>
<body>
<div>
<label for="ac">Access Code:</label>
<input id="ac" name="ac" type="password">
<input type="submit" value="Go!">
</div>
</body>
<!-- END END END END END END END -->
</html>
<?php endif;
?>
我尝试在if/else
语句中切换内容,并打印出相同的内容。我可能做错了什么?
另外,这是一种可接受的做法,我是如何以这种方式打印html
的?我真的不想包含其他文件,因为它只是由于有人只是导航到包含所在的目录并在我的会话控制之外独立运行而不安全。
感谢您的帮助!
答案 0 :(得分:0)
这是来自php docs
的更好的会话检查摘要<?php
/**
* @return bool
*/
function is_session_started()
{
if ( php_sapi_name() !== 'cli' ) {
if ( version_compare(phpversion(), '5.4.0', '>=') ) {
return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
} else {
return session_id() === '' ? FALSE : TRUE;
}
}
return FALSE;
}
// Example
if ( is_session_started() === FALSE ) session_start();
?>