セッション 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'] には値がありません。どうすれば解決できますか?