try {
$dbh = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
// For brevity, code to establish a database connection has been left out
$sth = $dbh->prepare('
SELECT
Password
FROM Customer_login
WHERE
Email = :username
LIMIT 1
');
$sth->bindParam(':username', $username);
$sth->execute();
$user = $sth->fetch(PDO::FETCH_OBJ);
printf($user);
// Hashing the password with its hash as the salt returns the same hash
if ( hash_equals($user->Password, crypt($password, $user->Password)) ) {
// Ok!
printf("login success for customer");
echo 'Login Accepted';
}
else
{
printf("customer login fail");
}
?>
当我运行此代码时,错误说明了 类stdClass的对象无法转换为字符串
我实际上是尝试使用电子邮件ID从表中获取哈希密码,然后尝试比较肯定的凭据。
当我们将数据存储在外部服务器中时,也可以解释实现IOS应用程序的最佳方法。
答案 0 :(得分:1)
删除printf
行。 $user
的值是一个对象,printf
的第一个参数除了一个字符串。
printf:int printf(string $ format [,mixed $ args [,mixed $ ...]]) Read more here
关于你的第二个问题,这是一个相当广泛的问题,你可能想要研究更多,看看你的选择是什么,并评估什么将最适合你。您可能喜欢Parse.com,但您可能还想设置自己的服务器,选择太多。