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><?phpsession_start(); //启动sessionif(isset($_POST['ok'])){$checkstr=$_SESSION['string']; //使用$_SESSION变量获取SY4_5_image.php页面上的验证码$str=$_POST['check']; //用户输入的字符串if(strcasecmp($str,$checkstr)==0) //不区分大小写进行比较echo "<script>alert('验证码输入正确!');</script>";elseecho "<script>alert('输入错误!');</script>";}?>他把session放在了html下面!!!
2 回答

哔哔one
TA贡献1854条经验 获得超8个赞
并不是说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>
<?php
session_start();
?>
在session_start()之前,向浏览器中输出了php,会发出一个警告
同样
<?php
session_start();
?>
<html>
<body>
<p>zhongguo</p>
</body>
</html>
这也是不行的,因为
<?php
session_start();
?>
前空了两行,空行也是有数据的,也不行,当然
如果前面有如:require_once("conn.php")【只要没有输出】,也是可以的,并不是非要放在第一行的……
添加回答
举报
0/150
提交
取消