PHP WeChat 公開開発ノート (3)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:49:58739ブラウズ

PHP WeChat 公開開発ノート シリーズ

日付: 2014.9.2


今日の主なタスクは、昨日述べたキャッシュ情報の処理の問題で、二次判定のためにいくつかのメッセージを保存する必要があります。


まず、PHP 構文の知識を記録します。

1. PHP の文字列接続構文:

Lua では、2 つの文字列 "aaa"; "bbb" を追加するだけで済みます。ピリオド... "aaa" .. "bbb"; ここで、文字列とピリオドには直接スペースが必要であることに注意してください。スペースがない場合、エラーが報告されます。ピリオドで十分です: "aaa"."bbb"; 文字列とピリオドの間にスペースを強制する必要はありません。


2. 時刻を取得して日付形式に変換します。 date 関数、形式: date('Y-m-d H:i:s', time()); パブリック プラットフォームの開発要件の完了の進行状況を記録するのは非常に簡単です。

さて、昨日残したタスクに戻りましょう: セッション キャッシュを使用して情報を記録し、思い描いたメニューを実現します:

PHP でのセッションの使用についてはあまり明確ではないので、いろいろいじっています。しばらくして、ようやく機能要件を達成できましたが、まだいくつかの欠点があると感じているため、将来的に修正します。

昨日、以前のメッセージを忘れないように、実装したいメニューについて言及しました。つまり、ユーザーが「クエリ」を送信した後、次の情報がクエリ メニューに転送されることを覚えておく必要があります。 「クエリ」情報。 Du Niang に長い時間を費やした後、PHP でデータベースを使用する方法がわかりませんでした。その後、単に情報を処理して記憶するだけであれば、データベースを使用する必要はないのではないかと感じました。データベースなので、Use session を使用しました。

ニーズを達成するために Session を使用します:

PHP での session の使用方法については、今後もさらに学習する必要があります。ここでは、単にそれを使用するだけです。

情報を確認する際、一部のネチズンは、ユーザーのユーザー名を一意のIDとして使用すると、各ユーザーに保存されている情報に一貫性がなくなると述べました(現在、サーバーからメッセージを送信しており、各ユーザーがメッセージを送信するため、影響を与えることはできません)他のユーザーの使用) のため、コードは次のように実装されます:

session_id($postObj->fromUsername) //これは WeChat サーバーによって投稿された XML データ パケット内のユーザー名であり、これを ID として使用します。

session_start() ; //これはセッションを開くことを意味しますよね?

そして、このコードをresponseMsg関数のどこに置くべきかはわかりません。後でテストが役に立ちます。

セッションを開いた後、情報が記録されます:

$_SESSION['menu_type'] = $this->getUserMenu($textWord); //getusermenu ユーザーに基づいてメニュー タイプを取得するために使用する関数です。 input ;変数 $_SESSION は情報を記録するために使用されますか? それは配列の形式で使用されますか? ?

情報を記録したら、情報を判断します。

isset($_SESSION['menu_type']) // isset を使用して、この値が設定されているかどうかを判断します。ユーザーがメニューを選択したかどうか

その後、それを使用する必要がない場合は、次の関数を使用してメニューを破棄します:

unset($_SESSION['menu_type'];

コード内で対応する調整を行うことで、ニーズを達成できます。しかし、今私が不十分だと感じているのは、保存されているユーザー選択のメニュー タイプをいつ破棄すべきかということです。ユーザーが「クエリ」メニューを選択した場合、少なくともユーザーのクエリ処理中は、保存されたメニュー タイプを破棄すべきではありません。適切な破棄の状況は 3 つあると思います。ユーザーがダイアログ ボックスを閉じる (つまり、ユーザーが公式アカウントとのチャット ボックスを終了しますが、ユーザーが終了したことを知る方法がインターネット上で見つかりません)。ユーザーが長期間クエリ操作を実行しなかった場合 (つまり、ユーザーが「クエリ」メニューを選択し、一定時間内に対応するクエリ操作を実行しなかった場合、この時点でクエリ操作は自動的に破棄されます)。を選択すると、ユーザーは自動的に終了を選択します。記録された情報が破壊されていない場合、ユーザーが「クエリ」メニューを選択し、公式アカウントとのチャットを終了した場合、ユーザーが選択した記録されたメニュー情報は、次回再び入力したときに保存されます。 . これは無理があるような気がします。


上記の問題はさておき、少なくともこのステップで必要な機能は実装されており、関連する問題は徐々に修正される予定です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。