php QQ ログインセッション ['state'] は解決策を見つけることができませんでした
Yilian ホストの仮想空間 (これと関係があるかどうかはわかりません)
QQsdk php を使用して、 QQ ログインを実行します
セットアップ手順に従います 設定ファイルとセッション ファイル
は 1 つの
//session.php コード
だけで終わります>
/**
* QQ登录 OpenAPI 用 PHP SDK
*
* @version 1.2
* @author connect@qq.com
* @copyright © 2011, Tencent Corporation.無断転載を禁じます。
*/
/**
* @brief セッション構成を設定します
*/
/**
* CREATE TABLE `tbl_session` (
* `session_id` varchar(255) binary NOT NULL デフォルト '',
* `session_expires` int(10) unsigned NOT NULL デフォルト '0',
* `session_data` テキスト,
* 主キー (`session_id`)
* ) ENGINE=MyISAM;
*/
class Session
{
//mysql のホストアドレス
const db_host = "localhost" //サードパーティに IP アドレスの指定が必要
//データベースユーザーname
const db_user = "ibrat"; //サードパーティが必要です サードパーティは独自のユーザー名を指定します
// データベースパスワード
const db_pwd = "ibrat"; // サードパーティが必要です独自のデータベース パスワードを指定するには
// データベース
const db_name = "ibrat"; // データベースを指定するにはサードパーティが必要です
// データベース テーブル
const db_table = "ghb_session"; // データテーブルを指定するにはサードパーティが必要です
// mysql-handle
private $db_handle;
//session-lifetime
private $lifeTime;
function open($savePath, $sessName)
{
// セッションライフタイムを取得
$this->lifeTime = get_cfg_var("session.gc_maxlifetime") ;
// データベース接続を開きます
$db_handle = @mysql_connect(self::db_host , self::db_user, self::db_pwd);
$dbSel = @mysql_select_db( self::db_name, $db_handle);
// return success
if(!$ db_handle || !$dbSel)
return false;
$this-> db_handle = $db_handle;
return true;
}
function close()
{
$this->gc(ini_get('session.gc_maxlifetime'));
// データベース接続を閉じます
return @mysql_close($this->db_handle);
}
function read($sessID)
{
// セッションを取得します-data
$res = @mysql_query("SELECT session_data AS d FROM ".self::db_table."
WHERE session_id = '$sessID'
AND session_expires > ".time(), $this ->db_handle);
// 失敗時にデータまたは空の文字列を返します
if ($row = @mysql_fetch_assoc($res))
return $row['d'];
return "";
}
function write($sessID, $ sessData)
{
// 新しいセッションの有効期限
$newExp = 時間() + $this->lifeTime;
// データベース内にこの ID を持つセッションはありますか?
$res = @mysql_query("SELECT * FROM ".self::db_table."
WHERE session_id = '$sessID'", $this->db_handle);
/ / はいの場合、
if(@mysql_num_rows($res))
{
/ / ...セッションデータを更新します
@mysql_query("UPDATE ".self::db_table."
SET session_expires = '$newExp',
session_data = '$sessData'
WHERE session_id = '$sessID'", $this->db_handle);
// 何かが起こった場合、true を返します
if(@mysql_affected_rows($this->db_handle))
return true;
}
else // セッションデータが見つからなかった場合は、