0

javascript(クライアント)変数を転送して、セッションとしてphp(サーバーサイド)からアクセスできるようにする方法を理解するのにいくつかの問題がありました:PHPでiframeの「src」値を取得しますか?

今、私はfirebugを使用して何が起こっているのかをデバッグしようとしている状況にいますが、それは意味がありません:

iframeを更新するこの関数があり、そのiframeが表示しているページを渡したい:

function frameclick(pageurl)
 {
        $.post("session_write.php?",
    {
            frameurl : pageurl             
    }

    $("#iFrame1").attr('src', pageurl);
    console.log  ('<?php echo "logout:".$langpath.$_SESSION['frameurl'];?>');
 }

pageurlは元です。"/lang/en/new.htm"-そしてfirebugでそれを調べると、それが正しく通過したことを示していることもわかります(/の変換もあります)。

投稿先のスクリプトサーバーサイドは次のようになります。

#session_write.php
<?php
session_start();
print_r($_GET['frameurl']);
if (isset($_GET['frameurl'])) 
{
$_SESSION['frameurl'] = $_GET['frameurl'];
print_r($_SESSION);
}
?>

サーバー上のそのphpスクリプトへの投稿は、javascroptを介して失敗します-$ _ SESSION ['frameurl']は''になりますが、私が例を挙げた場合。このように手動で行います:(http):

//localhost/phpmenu/session_write.php?frameurl=lang%2Fen%2Fnew.htm

次に、$ _SESSION["frameurl"]変数に正しく設定されます。

javascriptの投稿を行うことと、ブラウザで手動で行うことの違いと、なぜこの問題が発生するのかを理解できません。

アイデアを持っている人はいますか?ありがとう

4

3 に答える 3

2

.postPOSTリクエストを実行するを使用していますが、アドレスバーにURLを入力すると、それがGETリクエストになります。

$_GETGETを介して渡されたパラメータを$_POST取得し、POSTを介して渡されたパラメータを取得します。したがって、.postJavascriptで使用しているが$_GET、PHPで取得しようとすると、機能しません。

于 2012-10-27T21:34:43.900 に答える
0

PHPファイルに変数をPOSTする場合、$_GETは設定されません。$_POST['frameurl']代わりに使用してください。また、通話frameclickを終了するための親密な関係が欠落しているようです。post

于 2012-10-27T21:34:53.967 に答える
0

リクエストを介してデータを渡し POST 、すべてのGETリクエストを取得しています。$_POST代わりに使用してください。あなたも興味があるかもしれません$_REQUEST

于 2012-10-27T21:45:33.810 に答える