下記の「check.php」において、データベースに接続しておりますが、エラーメッセージとして「SQLSTATE[HY000] [1045] Access denied for user 'tomoaki'@'localhost' (using password: YES)」という文が表示されてしまいます。
もちらん、データベース側での「特権をチェックする」からユーザーとパスワードは一致させているのですが・・・。
推測される原因と対策をご教示頂けますと幸いです。
chekc.php
<?php $user = "tomoaki"; $pass = "tf6287"; session_start(); $name = $_POST['name']; $mail = isset($_POST['mail']); $pass = isset($_POST['pass']); try{ //1. 接続します $dbh = new PDO('mysql:host=localhost;dbname=loginpage; charset=utf8', $user, $pass); //3.データ登録SQL作成 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO users (name, mail, pass) VALUES (?, ?, ?)"; $stmt = $dbh->prepare($sql); $stmt->bindValue(1, $name, PDO::PARAM_STR); $stmt->bindValue(2, $mail, PDO::PARAM_STR); $stmt->bindValue(3, $pass, PDO::PARAM_STR); $status = $stmt->execute(); $dbh = null; }catch( Exception $e ) { // PDOException でキャッチできなかった例外はこちらで処理。 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; die(); } if(!isset($_SESSION['ドットインストール'])){ header('Location: index.php'); exit(); } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>新規会員登録</title> </head> <body> <form action="thanks.php" method="post"> <dl> <dt>ユーザー名</dt> <dd> <?php echo htmlspecialchars($_SESSION['ドットインストール']['name'], ENT_QUOTES, 'UTF-8'); ?> </dd> <dt>メールアドレス</dt> <dd> <?php echo htmlspecialchars($_SESSION['ドットインストール']['mail'], ENT_QUOTES, 'UTF-8'); ?> </dd> <dt>パスワード</dt> <dd> 【表示されません】 </dd> </dl> <div><a href="index.php?action=rewrite">« 書き直す</a> <input type="submit" value="登録する"></div> </form> </body> </html>php
1コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/21 12:19
2015/10/21 12:44