元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 98
php覧 / PC版 /みんなの評価 :
801 = 796 :
ひどいいわれよう
802 = :
IPアドレス制限+端末IDで穴を全部塞いだ気になってる携帯web屋がほとんど・・・
正直このスレより質が低いと思うw
803 = :
ぶちゃっけどうでもいい感じ。
どのサイトも穴だらけでその携帯の部分だけ躍起になってるのが
滑稽に見えて仕方が無い。
804 = :
ぶちゃっけ
805 = :
ぶちゅぅ
806 = :
ぶちゅっけ
807 = :
このスレキチガイ覆いね
808 = :
今頃気づいたのかね
809 = :
覆いね
814 = :
スルーする
815 = :
webサイト作るのにC++が必要なのかと
道具は要所で使うことに意味がある
816 = :
すみません。
お蔭様でもうほぼ完成したんですが、どうしても解決しない所がありまして質問させてください。
$dbh = new PDO($dsn, $user, $password);
$dbh->query('SET NAMES utf8');
$sql = "select * from `user` where `id` = ? AND `pass` = ?";
$query = $dbh->prepare($sql);
$result = $query->execute(array($id,$pass));
$res = $result->fetchAll(PDO::FETCH_ASSOC);
ログインの部分で上のように記述すると
Fatal error: Call to a member function fetchAll() on a non-object in C:\xampp\htdocs\osusume\login_2.php on line 50
と出てしまいます。
$sqlを "select * from `user` where `id` = \"{$id}\" AND `pass` = \"{$pass}\"";
のように書くとログイン可能なんですが、これだと脆弱性が残る気がして不安です。
ちなみに$idと$passの箇所は
$id = htmlspecialchars($_POST[id],ENT_QUOTES);
$pass = htmlspecialchars($_POST[pass],ENT_QUOTES);
のように受け取っています。
何が駄目でエラーになってしまうのでしょうか?
817 :
IDを出し忘れていました。
819 = :
>>816
htmlspecialcharsはその名のとおりHTML出力用ね。
SQL用のエスケープはMySQLならmysql_real_escape_string
`id` = ? AND `pass` = ?
だと引用された$id,$passがクオートされていないのでSQLエラーになってるんじゃないかな。
`id` = \"{$id}\" AND `pass` = \"{$pass}\"
で問題ないんじゃね?
820 = :
間違った。
$id='"'.mysql_real_escape_string ($_POST[id],).'"'
とかか。
822 = 817 :
できました…全くお恥ずかしい限り。
ありがとうございます。
823 = :
>>820
乞食と物乞いの区別が付かないのが、チョウセンヒトモドキ
824 = :
なんのためにPDO使ってるんだろうな
もっとマニュアルちゃんと読めば正しいエスケープ方法も書いてるでしょうに
ましてやプリペアードステートメントまで使ってるのに
827 = :
prepare使えば勝手にエスケープされるだろ
828 = :
>>827
その教え方だと危険。プレースホルダ使えというべき。
プレースホルダ使わないでデータ埋め込みでSQL文作って
prepareする奴いるから!!(笑)
829 = :
考え方というか、単に言い方だな
さすがにプレースホルダ使わずprepare使うアホがいるとは想像してなかったんだろう
830 = :
まぁ問題は>>819-821だわな
835 = :
サイトの宣伝ご苦労様です
836 = :
>>829
考え方っていってないのになんで考え方というかっていったの???
844 = :
使っていけないということはないが普通使わない
使う必要性もないしむしろ使ったらPDO使ってる意味がない
特定のドライバにこだわらずどのRDBでも使えることを想定してるのに
わざわざドライバ固有の関数使うってどうなのよって話
845 = :
ではどうすればいいのですか。
846 = :
>>845
>>1
ていうか前の方にさんざん書いてるだろ・・・
プリペアードステートメント使えって
847 = :
>>845
http://www.php.net/manual/ja/pdo.quote.php
ここの説明を読みなさいよ
848 = :
せっかく本家でマニュアルが整備されているのにそれを読まない人が居るんだね
849 = :
$pdo = new PDO(略);
$res = $pdo->prepare("INSERT INTO hoge(foo, bar) VALUES (:foo, :bar)");
$res->bindValue(":foo", $_POST['foo']);
$res->bindValue(":bar", $_POST['bar']);
$res->execute();
↓のようなことはする必要がないの
$res->bindValue(":foo", mysql_real_escape_string($_POST['foo']);
850 = :
ふーん。ところでPDOって日本語を正しく扱えないってホント?
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】下らねぇ質問はID出して書き込みやがれ 97 (1001) - [98%] - 2010/9/18 2:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 88 (1001) - [98%] - 2009/10/12 1:52
- 【PHP】下らねぇ質問はID出して書き込みやがれ 99 (1001) - [98%] - 2010/10/27 4:51
- 【PHP】下らねぇ質問はID出して書き込みやがれ 96 (1001) - [98%] - 2010/7/22 7:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 78 (1001) - [98%] - 2009/1/13 21:32 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 95 (1001) - [98%] - 2010/5/28 10:44
- 【PHP】下らねぇ質問はID出して書き込みやがれ 94 (1001) - [98%] - 2010/4/20 19:31
- 【PHP】下らねぇ質問はID出して書き込みやがれ 93 (1001) - [98%] - 2010/3/16 4:25
- 【PHP】下らねぇ質問はID出して書き込みやがれ 92 (1001) - [98%] - 2010/2/15 17:01 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 91 (1001) - [98%] - 2010/1/9 4:06 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 90 (1001) - [98%] - 2009/12/7 18:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 128 (1001) - [96%] - 2013/8/4 14:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 138 (991) - [96%] - 2015/1/6 8:00
- 【PHP】下らねぇ質問はID出して書き込みやがれ 118 (1001) - [96%] - 2012/5/18 6:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 108 (1001) - [96%] - 2011/7/27 14:48
- 【PHP】下らねぇ質問はID出して書き込みやがれ 89 (1001) - [96%] - 2009/11/13 23:03
- 【PHP】下らねぇ質問はID出して書き込みやがれ 86 (579) - [96%] - 2009/8/19 4:44
トップメニューへ / →のくす牧場書庫について