重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

A 回答 (5件)

エラーの場合は、私に限らず、そのエラーメッセージを書いたほうが回答が得やすいと思います:)



恐らくですが
>print("OK")
の末尾に「;」がないからでは?
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/04 18:53

セッションを絡めたログインは必ずしも使い勝手


がよいとは思いません。
mod_auth_mysqlなどは興味ないでしょうか?

参考URL:http://search.yahoo.co.jp/search?p=mod_auth_mysq …
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/04 18:51

#1です。


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

参考URL:http://jp2.php.net/manual/ja/function.mysql-num- …

この回答への補足

回答ありがとうございます。
返信したはずが、返信出来ていないみたいですね・・・・(汗
現在、回答と参考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 と正常に返ってくるので
結果の表示のさせ方が問題なのでしょうか?

補足日時:2006/05/03 16:36
    • good
    • 0

#1です。


提示していただいたソースを拝見しました。
セキュリティ的にはともかく、見る限り、動作は問題ないように思いますが動きませんか?

まぁシステム的に言うと、他に気になるのは多重ログインをどうするかとか。。。
(すでにログインしているのに、同じIDでログインされたらエラーなのか/正常なのか。エラーの場合はセッション情報と絡めて…とか)

PHPのセキュリティの問題に関してはこちらをどうぞ。
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_se …
    • good
    • 0

簡単なログインというなら、そんなに複雑に考えることはなくて


 (1).idとpass入力画面(単なるHTML)
 (2).(1)の内容を受け取ってDBなり、テキストファイルの内容とマッチング
だけでいいんじゃないですか?

ネットで検索すればいっぱいでてくると思いますが、まぁ一応さんぷるらしきものを。。。
動くかどうかは検証してませんのであしからず:)
http://ns1.php.gr.jp/pipermail/php-users/2004-Ju …

この回答への補足

早速の回答ありがとうございます。
私は、後々にやりたい事から考え
一応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")
?>

補足日時:2006/05/03 10:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!