ログイン機能を作成しましたが、内部サーバー エラーが発生しました。機能を確認しましたが、問題はありません。
私がこれを使用する場合:
function login($username, $password) {
if (!isset($username) || !isset($password)) {
return false;
}
if ($this->db->selectOne('r_users', array('username' => trim($username), 'password' => md5(trim($password))))) {
$_SESSION['username'] = $_POST['username'];
$_SESSION["ipaddr"] = $_SERVER["REMOTE_ADDR"];
return true;
} else {
return false;
}
}
サイトにログインできる
しかし、セッションを作成するためにデータベースからより多くの情報を取得するためにこれを拡張したいので、これを作成しました:
function login($username, $password) {
if (!isset($username) || !isset($password)) {
return false;
}
if ($this->db->selectOne('r_users', array('username' => trim($username), 'password' => md5(trim($password))))) {
$data = array();
$ps = $this->db->prepare('SELECT * FROM `r_users` WHERE `username` = :username');
$ps->bindParam(':username', $_POST['username'], PDO::PARAM_STR);
$ps->execute();
$result = $ps->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row) {
$data[] = $row;
}
$_SESSION['username'] = $data['username'];
$_SESSION["ipaddr"] = $_SERVER["REMOTE_ADDR"];
return true;
} else {
return false;
}
}
しかし、これにより内部サーバーエラー( 500 )が発生しますが、問題がどこにあるのかわかりません。誰かアイデアはありますか?
このサイトは smarty/slim フレームワーク ベースで構築されており、jquery/php フォームでこの関数を呼び出します
*更新: FROM をクエリに追加しました。解決策 1 を参照してください。