-2
こんにちは、これらのエラーで私を助けることができますか?私はちょうど私がサイトに入ったばかりで、このエラーが発生しました。Error booleanのメンバー関数fetchAll()を呼び出す
Fatal error: Call to a member function rowCount() on boolean in C:\xampp\htdocs\settings.php on line 6
if (isset($_COOKIE['hash'])) {
$sql = $db->query("SELECT * FROM `users` WHERE `hash` = " . $db->quote(filter_var($_COOKIE['hash'], FILTER_SANITIZE_STRING)));
if ($sql->rowCount() != 0) { //line 6
$row = $sql->fetch();
$user = $row;
}
}
Fatal error: Call to a member function fetchAll() on boolean in C:\xampp\htdocs\login.php on line 42
$hash = md5($steamid . time() . rand(1, 50));
$sql = $db->query("SELECT * FROM `users` WHERE `steamid` = '" . $steamid . "'");
$row = $sql->fetchAll(PDO::FETCH_ASSOC); //line 42
if (count($row) == 0) {
$name = str_replace("script", "*", $name);
$name = str_replace("/", "*", $name);
$name = str_replace("<", "*", $name);
$name = str_replace(">", "*", $name);
$name = str_replace("body", "*", $name);
$name = str_replace("onload", "*", $name);
$name = str_replace("alert", "*", $name);
$name = str_replace(")", "*", $name);
$name = str_replace("(", "*", $name);
$name = str_replace("'", "*", $name);
md5ハッシュは役に立たず、長年にわたってクラック可能です。より新しいSHAアルゴリズムのような強力なものを使用してください。また、あなたのコードは潜在的にSQLインジェクション攻撃に対して脆弱です。 PDOを使用しているので、パラメータ化機能を利用しています。 – ADyson
とにかく、これらの関数を呼び出すことができない理由は、おそらくクエリが何とか失敗したためです。 http://php.net/manual/en/pdo.query.phpは、PDOStatementオブジェクトを返す代わりに、メソッドが失敗したときに 'false'を返すことを示しています。エラー報告をオンにし、何がうまくいかないかを確認します。 – ADyson