1

私のサイトのログイン部分で、ユーザーが自分自身に関する情報を書き込めるようにしようとしています。機能しているが安全ではないログイン/登録ページがあり、単純な「Facebookでログイン」ボタンに置​​き換えようとしています。

問題は、ユーザーが facebook でログインすると、情報を更新できますが、アクセスできないことです。$uid 変数には一意の facebook ユーザー ID が含まれており、SQL 関数はそれを適切に読み取ってデータベースに挿入しますが、他のすべての PHP 関数はそれをまったく異なる番号として読み取ります。PHP が暗号化されたバージョンをエコーし​​ている間、SQL は $uid をデコードしていますか?

次の例では、新しい情報を正しい Facebook ID の下に配置し、正しくない Facebook ID をエコーし​​ます。

    $sql="INSERT INTO Users (ID, Date, Category, Info)
VALUES
($uid, '$myTime', '$category','$info')";

if (!mysql_query($sql, $con))
  {
  die('Error: ' . mysql_error());
  }
echo "Info Saved<br>";

echo " session: " . $_SESSION['uid'] . " PHP uid: " . $uid . " cookie: " . $_COOKIE['uid'];

真の ID はデータベース内の情報の横に保存され、ユーザーが非セキュア フォームでログインするとデータが表示されるため、SQL 関数が正しく機能していることがわかります。

出力:

 Info Saved
 session: 100005003165914 PHP uid: 100005003165914 cookie: 100005003165914

これは、安全でないフォームでログインすると発生します。

 Info Saved
 session: 2147483647 PHP uid: 2147483647 cookie: 2147483647
4

2 に答える 2

2

あなたのコードからは、セキュアなフォームと非セキュアなフォームの違いは明らかではありませんが、ある時点$_SESSION['uid']でデータベースから読み戻され、ID列は INT のみであり、100005003165914 を格納できませんが、最大値は 2147483647 であると思われます- これはまさにあなたが得る値です。

于 2013-01-04T02:27:04.690 に答える
0

非セキュア フォームと非セキュア フォームの違いは何ですか? どちらも私に似ています。この回答も試してください: Get User Id from Facebook in PHP

于 2013-01-04T02:23:41.103 に答える