• ベストアンサー

ログイン 作成

私はPHP初心者なのですが 現在PHP5+MySQLにて勉強をしています。 今回、ログインのページを作ろうと思ったのですが 私の買って来た本には、smartyを使ったログイン画面のサンプルしかなく ここで、検索し流用もしてみましたが うまく動作しませんでした・・・・ 誰か簡単なログイン認証のサンプルを作って 頂けないでしょうか セッション等は、後から勉強して付け加えていきたいと思ってますので どうか、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#24096
noname#24096
回答No.5

エラーの場合は、私に限らず、そのエラーメッセージを書いたほうが回答が得やすいと思います:) 恐らくですが >print("OK") の末尾に「;」がないからでは?

cimajr
質問者

お礼

あ・・・ ありがとうございます。 「;」と「}」が抜けてました・・・・orz やはりソースをちゃんと見直さないといけないですね・・・

その他の回答 (4)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

セッションを絡めたログインは必ずしも使い勝手 がよいとは思いません。 mod_auth_mysqlなどは興味ないでしょうか?

参考URL:
http://search.yahoo.co.jp/search?p=mod_auth_mysql+apache
cimajr
質問者

お礼

アドバイスありがとうございます。 参考URLを見させて頂きましたが 私には、まだまだ・・・(汗 お気に入りに追加させて頂き 今後の参考にさせていただきます ありがとうございました。

noname#24096
noname#24096
回答No.3

#1です。 すいません。ちょっと訂正します。 mysql_query()はクエリを実行するだけで、成功したらリソースが返るだけです。 IDの認証という意味では mysql_num_rows() でselectの件数を取得し、チェックしたほうがいいですね(汗

参考URL:
http://jp2.php.net/manual/ja/function.mysql-num-rows.php
cimajr
質問者

補足

回答ありがとうございます。 返信したはずが、返信出来ていないみたいですね・・・・(汗 現在、回答と参考URLを参考にさせて頂き $sql = "SELECT * FROM user_table WHERE user_id ='$user_id'and pass_word = '$passwd'"; $res = mysql_query($sql,$conn); $num_rows = mysql_num_rows($res); if($num_rows){ print("OK") に変えてみたのですが、エラー表示が出ます $sql = "SELECT * FROM user_table WHERE user_id ='$user_id'and pass_word = '$passwd'"; $res = mysql_query($sql,$conn); $num_rows = mysql_num_rows($res); echo "$num_rows Rows\n"; ですと 1rows と正常に返ってくるので 結果の表示のさせ方が問題なのでしょうか?

noname#24096
noname#24096
回答No.2

#1です。 提示していただいたソースを拝見しました。 セキュリティ的にはともかく、見る限り、動作は問題ないように思いますが動きませんか? まぁシステム的に言うと、他に気になるのは多重ログインをどうするかとか。。。 (すでにログインしているのに、同じIDでログインされたらエラーなのか/正常なのか。エラーの場合はセッション情報と絡めて…とか) PHPのセキュリティの問題に関してはこちらをどうぞ。 http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html

noname#24096
noname#24096
回答No.1

簡単なログインというなら、そんなに複雑に考えることはなくて  (1).idとpass入力画面(単なるHTML)  (2).(1)の内容を受け取ってDBなり、テキストファイルの内容とマッチング だけでいいんじゃないですか? ネットで検索すればいっぱいでてくると思いますが、まぁ一応さんぷるらしきものを。。。 動くかどうかは検証してませんのであしからず:) http://ns1.php.gr.jp/pipermail/php-users/2004-July/023371.html

cimajr
質問者

補足

早速の回答ありがとうございます。 私は、後々にやりたい事から考え 一応DBとの連動で考えています。 なんせ、まだまだ解らない事が多く 現在↓まで書いてみたのですが、「・・・で?・・・あれ?」 パニクってしまってます。 とりあえずは、こんな感じで詰めていけばいいのでしょうか? 見当違いの事をしてたら すいません。 <?php $user_id=$_POST['user_id']; $passwd=$_POST['passwd']; $host = "localhost"; if (!$conn = mysql_connect($host, "ユーザ名", "パスワード")){ die("MySQL接続エラー.<br />"); } mysql_select_db("データベース名", $conn); $sql = "SELECT * FROM user_table WHERE user_id ='$user_id'and pass_word = '$passwd'"; $res = mysql_query($sql,$conn); if($res){ print("OK") ?>

関連するQ&A