会員登録用のページにて、[login.php]のページにアクセスすると必ず現れるエラーがあります。
Notice: Undefined variable: error in /Applications/MAMP/htdocs/myportfolio2/login.php on line 32
動作はうまくいくのですが、上記のようなエラー文が出るのが気になります。
どのように対処すればよろしいでしょうか?よろしくお願いします。
login.php
1<?php 2require("dbconnect.php"); 3require("function.php"); 4session_start(); 5 6if (!empty($_POST)) { 7 $stmt = $dbh->prepare("SELECT * FROM members WHERE email=:email"); 8 $stmt->bindValue(':email', $_POST['email']); 9 $stmt->execute(); 10 $member = $stmt->fetch(); 11 12 if (password_verify($_POST['password'], $member['password'])) { 13 $_SESSION['id'] = $member['id']; 14 $_SESSION['name'] = $member['name']; 15 header ("Location:index.php"); exit(); 16 } else { 17 $msg = "メールアドレスもしくはパスワードが間違っています。"; 18} 19} 20?> 21 22<!DOCTYPE html> 23<html lang="ja"> 24 <head> 25 <meta charset="UTF-8"> 26 <title>ログイン</title> 27 </head> 28 <body> 29 <h1>ログイン</h1> 30 <a href="signup.php"><p>会員登録がお済みでない方はコチラ</p></a> 31 <form action="" method="post"> 32 <p><?php echo $msg; ?></p> 33 <dl> 34 <dt>メールアドレス</dt> 35 <dd> 36 <input type="text" name="email" size="35" maxlength="255"> 37 </dd> 38 39 <dt>パスワード</dt> 40 <dd> 41 <input type="password" name="password" size="35" maxlength="255"> 42 </dd> 43 44 <dt>ログイン情報の記録</dt> 45 <dd> 46 <input id="save" type="checkbox" name="save" value="on"><label for="save">次回からは自動的にログインする</label> 47 </dd> 48 </dl> 49 <div> 50 <input type="submit" value="ログインする"> 51 </div> 52 </form> 53 </body> 54</html>
$msgに対するエラーとのことですが、それは文章で何と書いてありますか? また、その意味を翻訳してみたり、ネットで調べたりしたでしょうか? たぶん、それをすればエラーの原因はすぐに分かるはずです。何も考えず、調べずだとエラーは解決できません。意味を翻訳しても分からない、ネットで調べても分からないのであれば、その内容を質問文に追加してください。
エラーレベルは正確に認識できるようになった方が良いです。
「プログラム実行にどれだけの影響があるか」というものなので、全部「エラー」としてしまうとプログラミングの理解進みません。
https://www.php.net/manual/ja/errorfunc.constants.php
Abe Takashiさん
ありがとうございます。一応、翻訳して色々試したのですが答えに辿り着くことができませんでした。
ちなみに、[Notice: Undefined variable: msg in /Applications/MAMP/htdocs/myportfolio2/login.php on line 32]と書かれておりました。
m.ts10806さん
いつもお教えありがとうございます。参照の記事を読ませてもらいもう一度解決できるように試してみます。
「Undefined variable」ですよ? 翻訳したらそのまま悩まれていることの答えが書いてあるんです。「$msgがUndefined variableということはどういうことか?」ってちゃんと考えましたか? これとif文の仕組みが分かれば答えにたどり着けるはずです。もう少し頑張って考えてみてください。ちゃんと考えれば必ず答えにたどり着けます。
質問は編集できます。
編集させてもらいました。
そのものの解決策を提示したわけではないので、どう解決したのか、フィードバックください。
https://teratail.com/help/question-tips#questionTips4-2
「今後に向けた」ことも書いてるので、その部分を理解できてるかどうかで全然違ってきます。
むしろ質問しなくても解決できるようになるくらいのことが書いてあります。
了解しました。今、自己解決方法についてフィードバック書きました。おっしゃる通りで、難しく考えすぎたためにこのようになってしまいました。質問をする前にもっと考えます。
回答2件
あなたの回答
tips
プレビュー