ホームページ  >  記事  >  バックエンド開発  >  緊急!セッションの問題

緊急!セッションの問題

WBOY
WBOYオリジナル
2016-06-23 14:21:25775ブラウズ

セッション URL php

RewriteRule ^index.html&fun=000$ gyjw/check.php が URL を書き換えます
私のログイン ページ
<?php	session_start();	//使用session存储用户信息	if(isset($_POST["username"]))	{		$ss_user_id="";				//利用User累的IsValid()方法判断所输入的用户名和口令是否正确		require_once("user/UserClass.php");		$user=new User();		//如果正确,转到系统首页		if($user->IsValid($_POST["username"],$_POST["password"],$ss_user_id))		{			$_SESSION["ss_user_id"]=$ss_user_id;			echo "<script language='javascript'>";			echo " location='index.html';";			echo "</script>";		}		//如果不正确,转到登陆页面		else		{			echo "<script language='javascript'>";			echo " alert('用户名或密码错误');";      		echo "</script>";		}	}?>
ホームページ php
<?php	include 'http://localhost/gyjw/index.html&fun=000';?>//省略html部分
check.php
<?php  	if(! isset($_SESSION['ss_user_id']))	{   		echo "<script language='javascript'>";		echo "alert('您的用户无权进行此操作!');";		echo "top.location='login.html';";		echo "</script>"; 		exit;  	}?>
問題は、ログインが正常にホームページにジャンプしたときに、最初にジャンプすることですcheck.php を開くと、「あなたのユーザーにはこの操作を実行する権限がありません!」と直接表示され、$_SESSION['ss_user_id'] が存在しないことが示されます。その後、ホームページの php
<?php	include ("check.php");?>
を変更すると、この $_SESSION['ss_user_id'] が存在し、ホームページのコンテンツが正常に表示されるようになります。
それを解決するのを手伝ってください!

ディスカッションへの返信 (解決策)

session_start() is missing in check.php;

session_start() is missing in check.php;
うーん、誤って削除してしまいましたが、それは問題ではありません。

session_start() is missing in check.php; 生成されたセッションファイル sess_ を観察すると、 include で check.php が使用されている場合、 http://localhost が配置されている場合、 sess_ が 1 つだけ生成されることがわかりました。 /gyjw/index.html&fun=000 を含めると、2 つの sess_ が生成されますが、そのうちの 1 つはデータがありません。これは、http://localhost/gyjw/index.html&fun=000 にジャンプするときにシステムが再生成されることを意味しますか? 、つまり $_SESSION['ss_user_id'] には値がありません。どうすれば解決できますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。