你好,求助session_start()一定要放在页面的最顶吗?

session_start()一定要放在页面的最顶吗
我看有的教材是这个
<html>
<head>
<title>留言页面</title>
</head>
<body>
<form method="post" action="">
验证码:<input type="text" size="10" name="check">
<img src="EX4_14_image.php">
<input type="submit" name="ok" value="提交">
</form>
</body>
</html>
<?php
session_start(); //启动session
if(isset($_POST['ok']))
{
$checkstr=$_SESSION['string']; //使用$_SESSION变量获取SY4_5_image.php页面上的验证码
$str=$_POST['check']; //用户输入的字符串
if(strcasecmp($str,$checkstr)==0) //不区分大小写进行比较
echo "<script>alert('验证码输入正确!');</script>";
else
echo "<script>alert('输入错误!');</script>";
}
?>
他把session放在了html下面!!!

皈依舞
浏览 235回答 2
2回答

哔哔one

并不是说session_start()必须放在第一行,而是要保证在使用它之前,没有向浏览器输出过任何内容检查session_start()之前,是否已向浏览器输出过内容php手册中有的If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.例如<html><body><p>php</p></body></html><?phpsession_start();?>在session_start()之前,向浏览器中输出了php,会发出一个警告同样<?phpsession_start();?><html><body><p>zhongguo</p></body></html>这也是不行的,因为<?phpsession_start();?>前空了两行,空行也是有数据的,也不行,当然如果前面有如:require_once("conn.php")【只要没有输出】,也是可以的,并不是非要放在第一行的……

largeQ

不一定,但之前不能有输出,所以其实还是放在顶部不容易出错,反正至少start罢了,又没做什么。
打开App,查看更多内容
随时随地看视频慕课网APP