Wordpressを使用してサイトを立ち上げ、そのセッションに便乗したいのですが、プラグインもドキュメントも見つかりません。ハッキングを開始する前の提案や参照はありませんそれ?
注:私はWPが標準PHPセッション自体を使用し、PHPセッションを追加する方法ではなくたとえば、session_start()を使用します。どうやら、どの状態もWP維持するのは、他の方法で実現されます。そのため、PHPセッションを使用したい場合、追加して維持する必要があります私自身、スレッドのようなテクニックを使用しています。
皆さんありがとう!
WordPressはsession_start()
を呼び出していないようです。ステートレスでありたい場合、register_globals
が定義されていると、自動的に$_SESSION
セッションを使用するためにWP Coreファイルを変更することは非常に悪い考えです。私が見つけた最良の方法は、init
アクションフックからsession_start()
を呼び出すことです。
function kana_init_session() {
session_start();
}
add_action('init', 'kana_init_session', 1);
テーマのfunctions.php
ファイルに配置できます。
詳細な記事はここにあります: http://www.kanasolution.com/2011/01/session-variable-in-wordpress/
私がする必要があることについて、最良の答えは次のとおりです。
私のCookieは次のとおりです。
[wordpress_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|d0249fced9c323835c5bf7e84ad3ffea
[wordpress_logged_in_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|56e9c19541ecb596a1fa0995da935700
PHPを使用して、Cookieをループし、key=>value
ペアを解析できます。これらのCookieは、[mshaffer]
にワードプレスに保存されたCookieがあり、logged_in
として認証されていることを知らせます。 Cookieの有効期限は1255298821
です。
sub2では、wordpressのデータベースをクエリして、ユーザー情報を取得できます。
SELECT * FROM `wp_users` WHERE user_login = 'mshaffer' ...
このクエリからuser_id、user_emailを取得
SELECT * FROM `wp_usermeta` WHERE user_id = '$user_id' ...
wpから他の大量のデータを取得
この情報を使用して、sub2セッション変数/ cookieに追加し、データを使用して必要な処理を実行できます。ログインしているかどうか、およびユーザー名を特定できます。これにより、さまざまなデータを取得できます。 WordPress authentication in mysub2.domain.com)を使用し、それに応じてリダイレクトできるようになりました。
モンテ
{バツ:
WordPress Transient API の使用を検討してください
Transient APIを使用して保存された値は、現在のユーザーだけでなく、すべてのユーザーに表示されます。一時的なデータの取得に使用される一意の識別子に応じて、各ユーザーに一意な識別子を割り当てて、本質的に一時的なセッションをセッションのように動作させることができます。
その他の考慮事項:
オブジェクトキャッシュなどを使用して設定したユーザーによっては、トランジェントが常にDBに保存されるとは限りません(例:memcached)。セッションにトランジェントを使用すると、データが大きくなり、メモリがすぐにいっぱいになる可能性があります(memcachedの使用中)。
また、WPはトランジェントの自動ガベージコレクションを行わないようです: https://wordpress.stackexchange.com/questions/6602/are-transients-garbage-collected
Wordpressはセッションを使用していないようです。
それを行う最善の方法は、それが提供するアクションフックを使用することです。
_wp_loaded
_でsession_start()
を使用して関数をフックすると、この場合は機能するようです。
ここで解決策を確認しましたか?これはここでうまくいくかもしれません
http://thedigilife.com/wordpress-how-to-set-session-custom-variable-while-login/
このコードを最初の行のwp-config.phpに入れます:
if (!session_id()) {
session_start();
}
このコードをテーマのheader.phpの最初の行に配置します。
session_start();
次に、すべてのセッション変数を維持します。
独自のセッション値を使用する場合は、Wordpressはサポートしていますです。wp-config.php
の上部に次の行を追加する必要があります
if (!session_id()) {
session_start();
}
次に、header.php
の上部に次の行を追加します
session_start();