为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

皈依舞 2022-04-05 19:15:58
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")【只要没有输出】,也是可以的,并不是非要放在第一行的……



查看完整回答
反对 回复 2022-04-11
?
largeQ

TA贡献2039条经验 获得超8个赞

不一定,但之前不能有输出,所以其实还是放在顶部不容易出错,反正至少start罢了,又没做什么。

查看完整回答
反对 回复 2022-04-11
  • 2 回答
  • 0 关注
  • 234 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号