[PHP-users 1113] PHP4でセッションIDとインクルード

Toshinori Takata php-users@php.gr.jp
Wed, 08 Aug 2001 16:00:34 +0900


はじめまして、高田と言います。

現在 VineLinux 2.1 上で PHP4.0.3pl1 を使って、
url の引数で指定されたファイルを読み込むプログラムを組んでいます。

main.phpで
main.php?url=http://localhost/tmp1.php&<?=SID?>
の様にリンク先が指定してあります。
これを選ぶとmain.php内で、
http://localhost/tmp1.php?PHPSESSID=xxxx
(xxx は main.php が最初に呼ばれたときに作られたセッションIDです。)
をインクルードして main.php 内に表示されるようになっています。

こういう事をするときにセッション情報も渡る様にするにはどうすればいいので
しょうか?

このプログラムでは暫くしてから、
Warning: Failed opening 'http//localhost/tmp1.php?PHPSESSID=xxx' for
inclusion (include_path='.:/usr/local/apache/php_lib') in
/usr/local/apache/htdocs/main.php on line 29
と表示されます。(29 は include 文の有る行です)

どうぞ、よろしくお願いします。


------------ http://localhost/main.php ---------------
<?php
 session_start();
 session_register(var);
 $var = "ABCD";

 print session_id();
 print "<BR>";
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<?php 
 if ($url) {
   $first=1;
   while (list($key, $val) = each($HTTP_GET_VARS)) {
     if ($key == "url") continue;
     if ($first == 1) {
       $url .= "?".$key."=".$val;
       $first=0;
     }
     else {
       $url .= "&".$key."=".$val;
     }
   }
   print "$url<BR>"; 
   include ("$url"); 
 }  
?>
<a href="main.php?url=http://localhost/tmp1.php&<?=SID?>">tmp1</a>
</body>
</html>


------------- http://localhost/tmp1.php ---------------
<?php
 session_start();

 print "<P>tmp1.php";

 print $var;
?>

-- 
Toshinori Takata
mailto:takata@bk.iij4u.or.jp