XPressME Integration Kit

フォーラム

Re: single.phpにいいねモジュールを組み込む

#3267
toemon
キーマスター

ただ、ゲストで投票していないにもかかわらず、

「いいね!取消」ボタンが表示されてしまいました。

押しても何も起こりません。

他のモジュールの場合、ゲストでアクセスすると、

「いいね!」ボタンが表示され、押すと、

「登録ユーザからの投票はまだありません。 」(←無い場合)

「*他、1名のゲストユーザより投票されています。 」

となり、「いいね!取消」ボタンが表示されます。

iineモジュールの仕様はよくわかりませんが、当方の環境で

picoのテンプレート(**_viewcontent.html)に

<code><{iine_button dirname=$mydirname id=$smarty.get.content_id}><br />
<{iine_users dirname=$mydirname id=$smarty.get.content_id}></code>

を追記してテストした限り、同様の問題が発生します。

再現方法

ユーザーログインした状態で「いいね!」投票が行われていないコンテンツ上で「いいね!」ボタンをクリックする。

次にログアウトし、同様のコンテンツを開く

この状態だと、指摘されている状態になります。

逆に、先にゲストで「いいね!」投票して、後でログインユーザでの「いいね!」投票を行った場合、一見正常に動作しているように見えます。

推測ですが、iineモジュールは、データベース上にアクセスIPとユーザIDを記録しており、

投票有無の判断を行う部分でゲストでのアクセスの場合、アクセスIPだけをみているようです。

同じマシンでテストを行った場合、ゲストもログインユーザもIPアドレスは同じになってしまうため、先にログインユーザで投稿したデータをIPだけで投票ありと判断し、「取り消し」ボタンの表示が行われてしまうのではないでしょうか?