のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,894人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレくだすれPHP(超初心者用)4

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : 547 - 2008/10/22(水) 14:27:34 ID:??? (+62,+29,-40)
    なるほど、WHEREで照合ですか・・・
    だいぶググってみましたが
    よくわからないです。
    入門サイト見ながらやってるんですが

    >>548,549
    のっけから間違っちゃってるってことでしょうか?
    552 : nobodyさん - 2008/10/22(水) 14:29:57 ID:??? (+133,+29,-4)
    DBとPHPの入門書を各々一冊ちゃんと読んでからのほうがいいと思うよ
    553 : 547 - 2008/10/22(水) 14:40:12 ID:??? (+139,+30,-59)
    先輩にも「そういう質問が来るとは思わなかった」と言われました。
    先輩2人は参考書も買わずに半日かからずに出来たそうです。
    僕は2日かかってます。
    自分でも何故こんなに理解力が無いのかと思うと嫌になります。
    今日は帰りに入門書を買って帰ります。
    ありがとうございました。
    554 : nobodyさん - 2008/10/22(水) 14:55:22 ID:??? (+76,+29,-37)
    >>553
    認証部分なんて30分もかからん、多分その先輩もそうだろう
    理解力ではなくて基礎が足りん
    PHPの文法やアルゴリズム、DBの基礎とSQL構文、知っておくべきことを知らないから時間がかかる
    知った後は早いもんだ
    555 : nobodyさん - 2008/10/22(水) 15:18:05 ID:??? (+7,+29,-51)
    DBに生パスワード置いとくなよ
    絶対やるなよ

    「パスワードをハッシュ化(暗号化)保存することを法律で義務化するくらいのことが必要だと思う」
    http://neta.ywcafe.net/000910.html
    556 : 553 - 2008/10/22(水) 15:44:06 ID:??? (+63,+30,-39)
    ログインが出来ればハッシュ化してやり直すつもりですが
    とりあえずログインをやろうと思って
    DBに追加したIDとPWをちゃんと読み込めるかどうか試そうと思って。
    それでずっとつまづいてます。
    自分でもすぐ出来ると思ったんですが・・・
    今日中に終わらせると言ったもんだから今日中に終わらせないと
    557 : nobodyさん - 2008/10/22(水) 15:57:40 ID:??? (+57,+29,-6)
    そしてSQLインジェクション可能なのをまた1つ生み出すと・・・

    559 : nobodyさん - 2008/10/22(水) 16:03:06 ID:??? (+3,-29,-71)
    というかDBの用意はできてるの?
    mysql_connect()とかで接続できてるの?
    SQLの構文は知ってるの?
    君がどこまで理解してるのかが全然わからないw

    AUTHとか使って簡単に済ませちゃえば?
    561 : nobodyさん - 2008/10/22(水) 16:56:11 ID:??? (+44,-30,-82)
    >>560
    >>558で$rowを事前に用意しようとするのが間違い

    postのuseridとpswdでDBに対してSQL発行(SELECT文)して存在するかチェック
    >>555の点を注意するならハッシュ化したpswdで比較)
    で、結果に応じて表示を行う

    な?単純なものならこれだけだ
    562 : 553 - 2008/10/22(水) 17:27:48 ID:??? (+104,+29,-7)
    >>561
    ありがとう、わかったようなわからないような
    でもなんとなく・・・いや、とりあえずもう少し頑張ってみる。
    またきます。
    563 : nobodyさん - 2008/10/22(水) 18:23:44 ID:??? (+68,+30,+0)
    564 : 562 - 2008/10/22(水) 19:58:59 ID:??? (+106,+29,-63)
    AmazonでMySQLとPHPの参考書
    人気高いやつを注文したっす
    金曜日には届きますけど、それまで教えて貰いたいです。
    あの・・・もしよければソースそのまま
    どこかのアップローダにアップするので
    訂正もしくは、ここは訂正すべき、という部分を指摘してもらえないでしょうか?
    565 : nobodyさん - 2008/10/22(水) 20:23:07 ID:??? (+72,+29,-4)
    >>511を見る限り、DBとの連携に手を出すにはまだ早い気がする。
    566 : nobodyさん - 2008/10/22(水) 20:27:00 ID:??? (+50,+27,-1)
    この程度でも手出せるのがPHP
    567 : nobodyさん - 2008/10/22(水) 21:01:02 ID:??? (+70,+29,-5)
    >>564
    表面だけ取り繕っても大抵上手くいかないからやめとけ
    569 : nobodyさん - 2008/10/22(水) 21:54:58 ID:??? (+16,-11,-27)
    elseに書くか変数に入れりゃよかろ
    570 : 564 - 2008/10/23(木) 04:51:02 ID:??? (+121,-29,-36)
    http://amezolog2.hp.infoseek.co.jp/source/up1633.zip
    一応これのlogin.phpなんですけど~~(;;;;;;
    8行目から23行目にかけてのとこなんすけどぉ~
    ここにDBから呼び出したIDとPWを書いて認証したいんですけど
    DBの書き方がわからへん・・・。
    571 : nobodyさん - 2008/10/23(木) 05:04:50 ID:??? (+65,+30,+0)
    572 : nobodyさん - 2008/10/23(木) 08:47:21 ID:??? (+57,+29,-21)
    そこ取り繕っても後が続かないんじゃないかな。
    その後、たぶんセッション引き回すんだろうし。
    573 : nobodyさん - 2008/10/23(木) 08:56:53 ID:??? (+45,-30,-144)
    >>570

    $sql = "SELECT * FROM user_pwd WHERE user ='$user'and pass = '$pswd'";
    $res = mysql_query($sql,$conn);

    $resになにが入ってるか理解できてないと思う
    $resにはDBのuser_pwdテーブルのuser列が$userで更にpass列が$pswdのオブジェクトが入ってる
    言い換えると
    $userと$pswdが一致してるレコードがあれば$resに格納
    つまり君の言う認証はSQL文を発行した時点で完了してる

    >>561さんが言ってるんだけどねw
    574 : nobodyさん - 2008/10/23(木) 09:05:17 ID:??? (+53,+25,+2)
    >>573
    とりあえず間違ってる
    575 : nobodyさん - 2008/10/23(木) 09:20:09 ID:??? (+9,-29,-103)
    >>573
    おまいも理解してねぇのか
    結果セットはレコードそのものじゃねぇ、発行結果のオブジェクトだ

    あとこの場合のSELECTはCOUNTで行数数えるだけでいい
    で、結果セットからnum_rowsして1か0かで判断
    576 : 570 - 2008/10/23(木) 09:37:43 ID:??? (+57,+29,-1)
    どうも。
    今からやります。
    できるかなあ。
    577 : 570 - 2008/10/23(木) 10:23:21 ID:??? (+19,-30,-110)
    ひとつずつ取得すればいいと言われたのですが
    $kekka="SELECT pass FROM user_pwd WHERE user=".$userid;

    if ($_SERVER["REQUEST_METHOD"]=="POST"){
    if($kekka=$pswd){
    echo "Okie.";
    }
    elseif($kekka!=$pswd){
    echo "bad.";
    }
    else{
    echo "noID.";
    }
    }
    こうですか・・??
    578 : nobodyさん - 2008/10/23(木) 10:37:20 ID:??? (+50,-30,-172)
    >>577
    ダァァーー理解してねぇ
    $kekkaにはSQL文が入るのに、なぜ$pswdと比較出来る!

    動作だけならこう

    $uid // POSTからとったユーザIDとする
    $passwd // POSTからとったパスワードとする

    $sql = "SELECT COUNT(*) FROM tablename WHERE userid='$uid' AND passwd='$passwd'"
    $res = mysql_query($sql);
    list($nums) = mysql_fetch_assoc($res);

    if ($nums == 0){
    //NG
    }else{
    //OK
    }
    579 : nobodyさん - 2008/10/23(木) 10:37:55 ID:??? (+88,+29,+0)
    データベースどこ行ったんだよ。
    580 : nobodyさん - 2008/10/23(木) 10:46:08 ID:??? (+100,+28,+0)
    >>578
    そんな危ないスクリプト教えんなよ
    581 : 577 - 2008/10/23(木) 10:49:49 ID:??? (+95,-30,-160)
    $userid = $_POST['userid'];
    $pswd = $_POST['pswd'];
    $sql = "SELECT COUNT(*) FROM user_pwd WHERE user='$user' AND pass='$pswd'";
    $res = mysql_query($sql);
    list($nums) = mysql_fetch_assoc($res);
    if ($_SERVER["REQUEST_METHOD"]=="POST"){
    if($nums==0){
    echo "bad";
    }else{
    echo "okie";
    }
    }
    こうですか?
    出来ないよーーーーーーーーーーーーーーーーーーーーわからない
    焦る 軽いノイローゼ状態だー
    582 : nobodyさん - 2008/10/23(木) 10:51:35 ID:??? (+17,-29,-121)
    >>570を見た.結論からいうと>>552
    何も分かってないのに偶然うまく動くとかえって自分の首を絞めるよ.

    >>570のコードも addtest.php って本人が書いたわけじゃなくて
    職場の既存コードのコピペじゃないの?
    SQLインジェクション脆弱性あるよ.

    >>578 $uid と $passwd をエスケープしないのは初心者にとって有害な例示だと思うよ.
    583 : nobodyさん - 2008/10/23(木) 10:52:51 ID:??? (+3,-29,-64)
    ①接続する。
    ②SQL文を作る。
    ユーザーリクエストを含めるときはインジェクション対策のために専用エスケープを忘れずに。
    ③発行する。
    ④結果セットを受けとる。
    ⑤ループさせるなり取り出すなりして表示。
    ⑥接続を切る。
    584 : 570 - 2008/10/23(木) 10:55:53 ID:??? (+62,+29,-84)
    職場のではないですが、解説サイトのを少し見よう見まねしてます。
    といってもSQL構文のところだけです。
    他はナントナクはわかって書いてます。

    「とりあえず動かしてミロ」とのことなので
    セキュリティの事は後に言われると思います。
    585 : nobodyさん - 2008/10/23(木) 10:56:30 ID:??? (+111,+29,-86)
    >>579
    そこからなのか・・・
    >>580
    そんなこと言ったら「担当替えろ」で終わりだ
    そもそもモデル化してないのにゴチャゴチャやったら>>581みたいなことになる
    まずは最低限の動作、そこから拡張しかないのだ、この場合

    >>581
    DBのオープンすらやってないってことでFA?
    そのスクリプトには事前処理とかないわけ?
    mysql_connectはどこかで使ってるか?(認証処理より前の段階で)

    586 : nobodyさん - 2008/10/23(木) 10:57:06 ID:??? (-2,-30,-24)
    それと認証して一致するユーザーは1人だろうから

    if($nums==1){
    //OK
    }else{
    //NG
    }

    のほうがいいような。
    587 : nobodyさん - 2008/10/23(木) 10:58:17 ID:??? (+67,+29,-30)
    先輩のチェックが入るんだから、
    まずは動くところまで持っていくしかないな
    そこから先輩もツッコミや指導を予定してるんだろうし
    588 : nobodyさん - 2008/10/23(木) 11:11:28 ID:??? (+106,+29,-16)
    >>585
    モデル化とか関係ないし
    とりあえずの動作も必要だが
    それ以上にSQLインジェクションの事を考えさせる事の方が重要
    589 : 581 - 2008/10/23(木) 11:13:20 ID:??? (+81,+29,-41)
    みなさんのレスをコメント化して見ながらやってるので
    ソースもだいぶごちゃごちゃしてました。まとめますと今こんな事書いてます。
    http://amezolog.hp.infoseek.co.jp/source/up8378.zip
    590 : nobodyさん - 2008/10/23(木) 11:15:11 ID:??? (+76,+29,-15)
    >>588
    考えさせる・対策させる大切さは重々わかっとるが、
    さすがに手順を踏まないと>>570がハゲないか?
    591 : nobodyさん - 2008/10/23(木) 11:20:45 ID:??? (+42,-29,-29)
    >>589
    見た

    WHEREのところで「user=」ってなってるけど、
    user_pwdテーブルはIDとpassフィールドなんだよな?
    じゃぁ「ID=」にしないと
    592 : nobodyさん - 2008/10/23(木) 11:28:25 ID:??? (+36,-29,-46)
    4行目から10行目までは認証処理だから、
    11行目のifの中に入れたほうがいい
    理由は、今のままじゃ毎回SQL発行しちゃうから
    593 : 589 - 2008/10/23(木) 11:52:15 ID:??? (+69,+30,-46)
    今先輩が来て「こうすんだよ」と言って
    ささっと解決しました。情けない。
    たぶん「あらら、出来てないのね」と思われたと思います。
    >>591
    そう訂正されました。はい。

    >>592
    その通りでした。
    そう訂正されました。

    みなさん、ありがとうございます。
    だけど、まだまだわかってないなぁ。
    次はMD5化して登録と、ログインです。
    これは出来そうな気がする・・・。
    594 : 589 - 2008/10/23(木) 13:06:38 ID:??? (+13,-30,-263)
    if ($_SERVER["REQUEST_METHOD"]=="POST"){
    $userid = $_POST['userid'];
    $pswd = $_POST['pswd'];
    $pswd2= md5($pswd);
    $host = "localhost";
    $conn = mysql_connect($host, "root", "");
    $db_selected = mysql_select_db('webauth', $conn);
    $sql = "SELECT * FROM user_pwd WHERE name='".$userid."' AND pass='".$pswd2."'";
    $res = mysql_query($sql);
    if(mysql_fetch_assoc($res)){
    $url = "index.php";
    header("Location:$url");
    }else{
    echo "エラー";
    }
    }
    一応のせときます。
    結局こうしました。
    595 : nobodyさん - 2008/10/23(木) 14:23:32 ID:??? (+57,+29,-14)
    お前な、まずココで聞く前に先輩に聞けよ。
    2chで聞いてるなんてバレたら首にされかねんぞ。
    596 : 594 - 2008/10/23(木) 15:03:26 ID:??? (+57,+29,-4)
    それもそうですね・・・確かに。
    家だけにしときます。
    忠告ありがとうございます。
    597 : nobodyさん - 2008/10/23(木) 15:56:27 ID:vhIkvqq/ (+28,+30,-20)
    でもさ。こんなのも教えられない先輩は間違いなく無能。
    ここで聞くのもわるくない。
    客先行く前にきちんと疑問点は解消しておけ。
    出て行って大変だよ。
    598 : nobodyさん - 2008/10/23(木) 16:18:43 ID:??? (+57,+29,-22)
    それは違くね。
    「とりあえず自力でやってみろ、教えるのはそれからだ」ってことじゃない?
    何でもほいほい教えちゃうのはよくない。
    599 : nobodyさん - 2008/10/23(木) 16:59:24 ID:??? (+57,+29,-65)
    俺が先輩でも多分最初は突き放すな。検索すりゃ少なくとも動くもの作れるし、
    作れないってことは検索力が欠けてるってことがわかるし。
    ま、2chとか掲示板で聞いてたらぶん殴るがw
    600 : nobodyさん - 2008/10/23(木) 17:05:54 ID:??? (+91,+29,-20)
    まったく基礎が無いように見えるが、
    どうしてそんな職に就いたかねぇ・・・
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について