[PHP-users 19851]Re: 携帯でセッション

makino k-m @ hyper.cx
2004年 1月 12日 (月) 12:43:55 JST


牧野です。

Mon, 12 Jan 2004 03:09:46 +0900
ジェリー<jerry @ kfx.biglobe.ne.jp> -wrote:
> いつもお世話になります。
> ジェリーです。
> 
> 携帯のブラウザ等でセッションデータを持ちまわししたいのですが、
> 上手くいきません。

*php.ini
 session.use_cookies 0
 session.use_trans_sid 1
(または.htaccessで)
<IfModule mod_php4.c>
php_flag session.use_cookies 0
php_flag session.use_trans_sid 1
.................
</IfModule>
 
php-4.3.3  register_globalsはOnです。
 
//++++++++++++++++++++++++++++++++++ index.php
<?php
session_start();

if (isset($_SESSION['ssID'])) {
    $ssID = $_SESSION['ssID'];
} else {
    $ssID = "no";
}
?>
<?php echo($ssID) ?>
<form action="2.php" method="post">
<input type="text" name="ID">
<input type="submit" value="送信">
</form>

//++++++++++++++++++++++++++++++++++ 2.php
<?php
session_start();
if (isset($_POST['ID'])) {
    $_SESSION['ssID'] = $_POST['ID'];
}
if (isset($_GET['ID'])) {
   $_SESSION['ssID'] = $_GET['ID'];
}
$ssID = $_SESSION['ssID'];
?>
<a href="2.php">2.php</a><br>
<a href="3.php">3.php</a><br>
<a href="index.php">index.php</a>


//++++++++++++++++++++++++++++++++++ 3.php
* 2.phpに同じ
//+++++++++++++++++++++++++++++++++++
register_globals Onの場合は...自分で考えて下さい。

上記のコードは何も考えていないのでセキュリティー的に穴だらけです。
でも、あなたのしたいことはできるはずです。

また、携帯電話の機種によってはGETで送れる文字数に制限があるものがありま
す。
ベターなのはsession情報をDB等に保存して、つれまわすsidは乱数生成したもの
"http://sample.com/2.php?ssID=4G8hF9s"な感じで6文字〜10文字にしたほうが
良いと思われます。
携帯電話によっては、id,ID,sid,SIDなどが使えないものもあるらしいので、携
帯用アプリを作る場合は注意が必要です。

後は、ご自分のため、ご自分で考えて開発して下さい。


/*++++++++++++++++++++++++++++++++
 * 牧野 <k-m @ hyper.cx>
 *++++++++++++++++++++++++++++++++
 */






PHP-users メーリングリストの案内