1

PHP で画像ファイルを開く操作は、新しいセッションで行われます。この動作を防ぐにはどうすればよいですか?

画面解像度を取得するために、すべての Web ページに JavaScript を配置しました。JavaScriptコードは次のとおりです。

 <script language="JavaScript">
 document.getElementById("mypictureid").src="http://www.mywebsite.com/getresolutionpic.php?w="+screen.width+"&h="+screen.height;
</script>

ページの html には以下が含まれます。

<img id="mypictureid" src="http://mywebsite.com/otherimage.gif"

次の php コードは、各ページの読み込みで実行され、ユーザー データを $_SESSION に保存します。

$some_name = session_name("generalvisit");
session_start();
$_SESSION['entertime']=new DateTime();

ユーザーを追跡するために、mysql データベースによってユーザー ID が作成され、$_SESSION['userid'] に格納されます。

if(!is_numeric($_SESSION['userid']) $_SESSION['userid']=getNewUserID();

これで、javascript によってトリガーされたときに、 そのユーザーの画面解像度が同じユーザーの変数にgetresolutionpic.php格納されます。$_SESSION私たちはgetresolutionpic.php持っています:

$some_name = session_name("generalvisit");
session_start();
if(!is_numeric($_SESSION['userid'])
{
    $_SESSION['userid']=getNewUserID();
    $_SESSION['entertime']=new DateTime();
}
$_SESSION['width']=$_GET['w'];
$_SESSION['height']=$_GET['h'];

問題は、getresolutionpic.php が呼び出されたときに$_SESSION['userid']空であり、実際には新しいユーザーではないのに新しいユーザー ID が作成されることです。

どこが間違っているのか分かりますか?

4

2 に答える 2

0

これを試して:

<script language="JavaScript">
window.onload = function() {
    document.getElementById("mypictureid").src = "http://www.mywebsite.com/getresolutionpic.php?w=" + screen.width + "&h="+screen.height;
</script>

これは、メイン ページが読み込まれるまで画像を読み込もうとせず、その時点でセッション Cookie を設定する必要があります。

于 2014-07-05T07:51:21.433 に答える
0

この問題を引き起こした私の間違いは、 http://www.mywebsite.com/etc ..の代わりにhttp://mywebsite.com/etc .. を使用していた場所の一部だったので、前者で作成された変数は利用できなかったと思います後のページで。$_SESSION

しかし、コードの実行方法をいくつか変更することで問題を解決しました。ここで、スクリプトだけでなく、ドメイン内のすべてのページで入力wを読み取ります。サイト内の他のphpファイルと同じように扱い ます。実際、画像ファイルを読み取ってユーザーに送信するだけです。hgetresolutionpic.phpgetresolutionpic.phpgetresolutionpic.php

将来同じ問題に直面する人々に役立つように、私が十分に明確であることを願っています.

于 2014-08-25T17:27:23.963 に答える