2012-04-16 8 views
1

私はajaxでphp sessionを設定したいと思います。 session.phpにセッションを設定する機能があります。jquery/ajaxでPHPセッションを設定するには?

public static function set($key, $value) { 
    $_SESSION[$key] = $value; 
} 

JavaScriptのアラートを確認して、「はい」をクリックするとセッションを設定します。 セッションを簡単に設定するにはどうすればよいですか?

EDIT 2012年4月16日午後03時31分GMT:+1

デビッド:答えのためのおかげで、それがはっきり見えます。私はそれを試みたが、私のPCで何もしない。 (同じフォルダに)

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<p>I would like to say: </p> 
<script> 
    $("p").append("<strong>Hello</strong>"); //check jquery is working 
    $.get('a.php', function(data) { 
     // do something on success? 
    }); 
</script> 

b.php

<script type="text/javascript"> 
    alert('aaa'); 
</script> 
<?php 
echo "print by b.php"; 
?> 

a.phpと私はあなたが行う簡単なPHPのページを持つことができ、ブラウザ

+1

あなたは$ _SESSIONに値を割り当てる前にsession_startを書いていますか? –

+0

@ user1336101:「ブラウザで実行する」、「自分のPCで何もしない」などと言ったとき、私は最初にPHP対応Webサーバーを持っていない可能性があると考えていましたか?どのローカルWebサーバを使用していますか?PHPはそのWebサーバ上でまったく動作しますか? – David

+0

また、PHPが動作している場合、Firebugのようなものでこのリクエストをデバッグできますか?そうすれば、あなたはその応答が何であるかを知ることができます。 (それは、AJAX呼び出しで成功した場合は何もしていないので、応答があったことをUIに表示するようには見えないからです。) – David

答えて

2

にa.phpを実行します。だから私は持っています(すでに持っているコードを使用して)値を設定し、jQueryにそのページを呼び出しさせるだけです。

$.get('setsessionvalue.php', function(data) { 
    // do something on success? 
}); 

そしてそれは、あなたがクエリ文字列に値を渡すことで呼び出しが、より一般的にすることができます。

$.get('setsessionvalue.php?key=someKey&value=someValue', function(data) { 
    // do something on success? 
}); 

を次に、あなただけの他のページと同様に、サーバー上の$_GETコレクションからこれらのクエリ文字列値を引くと思います。

サーバー側コードの観点からは、他のページと同じではありません。 UIをレンダリングする必要はありません(必要に応じてデータをレンダリングできますが、おそらくJSON形式でもっとも簡単です)。 JavaScriptコードは他のページと同じようにそのページを呼び出しています。

もちろん、ユーザーが望む場合は、このページを手動で呼び出すことができます。したがって、これをセッション値の「セキュリティ」として使用しないでください。ユーザーがURLにアクセスした場合:

setsessionvalue.php?key=someKey&value=someValue 

ユーザーはセッション値を手動で設定できます。既に設定した値を上書きすることもできます(JavaScriptコードで確認できます)。セッション値の構造(特にそのキー)をそのようなクライアントサイドのコードに公開することは、私が特に心地よくはありません。あなたのサイトにいくつかのセキュリティホールを持っているのは、少し離れているようです。

+0

ああ、私の悪いです。ごめんなさい... – DaveRandom

関連する問題