- ベストアンサー
会員専用ログインページの作成方法について
- フォームにIDとPASSWORDを入力してログインボタンを押すと、ログインできる会員専用ページに移動します。
- フォームのデータはlogin.phpで受け取り、会員データベースと照合します。
- 照合が成功した場合はセッションを開始し、会員専用ページにリダイレクトします。照合に失敗した場合はエラーメッセージを表示します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 <form action=""> action先が空だからってことは無いでしょうか? login.phpで処理するのであれば<form action="login.php">です。 また、login.phpでの処理ですがSQLを発行するときにユーザIDとパスワードを条件にして取得できた件数が1件の場合に認証OKとしたほうがスマートです。 select usrid from meibo where usrid='$usrid' and usrpw='$usrpw' ユーザIDとパスワードが入力された値と同じレコードがあった場合にカウントが1件になります。 ただ、SQLインジェクションには気をつけて下さい。 今のままやるとしたらとってきた結果をすべてループでまわし、ユーザIDとパスワードが同じレコードが存在するかチェックする必要があります。
その他の回答 (1)
- hige_mario
- ベストアンサー率51% (18/35)
テキストファイルで管理していてできていたなら、リクエストしているsql.phpの中身が解らないと判断のつけようが無いかもですね。 そもそも正しいSQLになっているか、SELECTした結果が正しく拾えているのかなど、sql.phpの内部でダンプしてみて、希望通りSQLが反応しているのか確認してみてはどうでしょう。
お礼
hige_marioさん 返信の方、誠にありがとうございました。 私の $mysql->query("SELECT usrid,usrpw FROM meibo"); が思い切り間違っておりました。 LancerVIIさんの指摘をヒントに書きなおしてみたところ無事機能するようになりました。 LancerVIIさんへも質問していますが、meiboのアドレスにメールの一斉配信をする際にメール文書が改行されずに送られてしまうのですが良い解決方法がありましたらお教えくださいませんでしょうか? 自分でも解決方法を探しているのですが中々見つからない状況です。 (教科書には載っておりませんでした。) ずうずうしいとは思いますが、宜しくお願いいたします。
お礼
返信遅くなりました。 LancerVIIさん、 私のSQLが間違っていたのですね。 ※select name from meibo where usrid='$usrid' and usrpw='$usrpw'にしましたら成功しました。 nameは名前も表示したかったので、 (SQLの下の部分もかなり書き変えました、) ありがとうございます、助かりました。 ■<form action=""> こちらはlogin.phpにしております。 最初の質問のところで正確に書いておくべきでした。 申し訳ありませんでした。 後、もう一つ教えていただきたいのですが、 meiboのアドレスにメールの一斉配信を行う際にメールの文書が改行されずに送られてしまいます。 $honbun = nl2br($honbun); $honbun = str_replace("\r", "", $honbun); $honbun = str_replace("\n", "", $honbun); などのものを付け加えてみても解決出来ないのですがこちはどの様な対応が有りますでしょうか? よろしければお教えくださいませ。