在我网站的登录部分,我试图让用户写一些关于他们自己的信息。我有一个功能性但不安全的登录/注册页面,我试图用一个简单的“使用 facebook 登录”按钮替换它。
问题是,一旦用户使用 facebook 登录,他们可以更新信息,但他们无法访问它。$uid 变量包含他们唯一的 facebook 用户 ID,SQL 函数正确读取它并将其插入数据库,但所有其他 PHP 函数将其读取为完全不同的数字。SQL 是否在解码 $uid 而 PHP 回显加密版本?
以下将一条新信息放入正确的 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'];
我可以告诉 SQL 函数工作正常,因为真实 ID 存储在数据库中的信息旁边,并且当用户使用非安全表单登录时显示数据。
输出:
Info Saved
session: 100005003165914 PHP uid: 100005003165914 cookie: 100005003165914
当我使用不安全的表单登录时会发生这种情况:
Info Saved
session: 2147483647 PHP uid: 2147483647 cookie: 2147483647