我对PHP还是很陌生,我正在尝试找出当前方案中的最佳位置来放置session_start()
函数。
我当前正在制作网站,要加载的第一页是index.php
,它需要db.php
连接到MySQL数据库,并且仅包含用于登录的html表单,并在出现错误消息时推送错误消息详细信息无效。
当用户输入用户名和密码时,数据将传递到checklogin.php
,在此处使用准备好的语句,如果数据匹配,则会调用$_SESSION['username']
并将用户重定向到{{1 }}。 (如果没有匹配项,它将重定向到portal.php
并显示一条错误消息。)
我的问题是,应将index.html
放在session_start()
的开头(主要使用html代码,仅对index.php
使用php,以连接到数据库并推送错误)如果凭据不匹配则显示消息。
还是我应该在require 'db.php';
的开头(首次使用checklogin.php
的地方)使用它?
答案 0 :(得分:1)
session_start()函数必须是文档中的第一件事。在任何HTML标记之前。
使用网站上的会话信息的每个页面都必须通过session_start()
函数进行标识。这将在每个PHP页面上启动一个会话。 session_start函数必须首先发送到浏览器,否则将无法正常工作。它必须在任何HTML标记之前。通常,放置它的最佳位置是在<?php
标签之后。它必须在您打算使用的每个页面上。