关于session_start()的问题

以花的姿态书写生命 2013-05-25 02:41:37
我的系统流程是这样的:首先管理员输入用户名和密码登录后,系统会直接跳转到result.php。而我在result.php中写入这么一段,以防止用户在地址栏直接输入result.php访问。
<?php
include "conn.php";
include "admin_header.php";

session_start();
if($_SESSION["admin_name"]==""&&$_SESSION["admin_pass"]==""){
session_write_close();
header("Location:index.php");
}
?>

但是登录后系统提示: A session had already been started - ignoring session_start() on line 5
...全文
725 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
卿言戏语 2013-06-03
  • 打赏
  • 举报
回复
引用 7 楼 ycxyangchenxiao 的回复:
[quote=引用 6 楼 qingsheng1355 的回复:] 你include进去的里面有session_start()了,两次开启就会出现你这种情况,可以在你include进去的代码里面用完之后关闭session,或者这个里面代码里面去掉session_start()。 这样可以判断session是否开启 if(!isset($_SESSION)){ session_start(); }
那如果我还想在跳到系统首页之前加一句“用户非法登录”,应该怎么加呢?[/quote]在系统首页对是否正常登陆的这个session进行判断,比如正常登陆让这个session为1,不正常为0,判断到为0就alert一个“用户非法登录”就可以了
  • 打赏
  • 举报
回复
引用 6 楼 qingsheng1355 的回复:
你include进去的里面有session_start()了,两次开启就会出现你这种情况,可以在你include进去的代码里面用完之后关闭session,或者这个里面代码里面去掉session_start()。 这样可以判断session是否开启 if(!isset($_SESSION)){ session_start(); }
那如果我还想在跳到系统首页之前加一句“用户非法登录”,应该怎么加呢?
卿言戏语 2013-05-26
  • 打赏
  • 举报
回复
你include进去的里面有session_start()了,两次开启就会出现你这种情况,可以在你include进去的代码里面用完之后关闭session,或者这个里面代码里面去掉session_start()。 这样可以判断session是否开启 if(!isset($_SESSION)){ session_start(); }
  • 打赏
  • 举报
回复
引用 4 楼 snmr_com 的回复:
不用整段去掉,判断一下是否start了,否再执行 session_start() 不就行了 另一个问题(跟你说的问题无关), session_start() 前面怎么有空行呢?
我自己加的空行,为了跟前两个调用的文件区分开,是不是书写格式错误,那我改回来。 另一个问题,判断是否start的语句是怎么样的? 对了,我还有一个login.php是在admin.php文件里输入用户名和密码后在login.php里验证是否正确的,正确以后就跳到result.php。这个login.php里有没有需要修改的?
<?php 
//用户身份验证
session_start();
include "conn.php";
include "header.php";
extract($_POST); 
if ($admin_name!=$admin || $admin_pass!=$pass_admin)
{
   echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>请确认用户名和密码是否正确</big></b></font></p>";
   echo("<HTML><META http-equiv=\"refresh\" content =\"1;url=admin.php\"></HTML>");
   exit;
}
else
{
	$_SESSION["admin_name"]=$admin_name;
	$_SESSION["admin_pass"]=$admin_pass;
	echo("<HTML><META http-equiv=\"refresh\" content =\"0;url=result.php\"></HTML>");
	exit;
}

include "foot.php";
?>
ImN1 2013-05-25
  • 打赏
  • 举报
回复
不用整段去掉,判断一下是否start了,否再执行 session_start() 不就行了 另一个问题(跟你说的问题无关), session_start() 前面怎么有空行呢?
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
php5.4? 你程序中多次执行了 session_start()
wamp2.2的,我也不知道我的php是什么版本的。我的admin_header.php里也有这么一段,是不是跟这个有关系?但是如果我把这个文件里的这段去掉的话,用户就可以直接输入文件名访问了呀!
loveof123 2013-05-25
  • 打赏
  • 举报
回复
包含的两个文件中已经有了session_start()
xuzuning 2013-05-25
  • 打赏
  • 举报
回复
php5.4? 你程序中多次执行了 session_start()

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧