【PHP】下らねぇ質問はID出して書き込みやがれ 98
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2010/09/18(土) 19:20:37ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://hibari.2ch.net/test/read.cgi/php/1279833891/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0812810
2010/10/07(木) 14:47:07ID:bfwxS3EJ返信ありがとうございます、解決できました。
Apacheの設定ファイルがある場所の指定が間違っていたようです
簡単なミスでした、お手数おかけしました。
0813nobodyさん
2010/10/07(木) 19:58:56ID:???専門C++です^^
っていうの?
0814nobodyさん
2010/10/07(木) 20:02:35ID:???0815nobodyさん
2010/10/07(木) 21:48:04ID:???道具は要所で使うことに意味がある
0816nobodyさん
2010/10/07(木) 22:41:42ID:???お蔭様でもうほぼ完成したんですが、どうしても解決しない所がありまして質問させてください。
$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);
のように受け取っています。
何が駄目でエラーになってしまうのでしょうか?
0817nobodyさん
2010/10/07(木) 22:42:28ID:cS3lZo050818nobodyさん
2010/10/07(木) 22:47:20ID:???何を見て作ったのか知らないがhtmlspecialcharsをエスケープ替わりにするな
htmlspecialcharsで解説しているもので勉強したならそいつを今すぐ捨てろ
0819nobodyさん
2010/10/07(木) 23:00:16ID:???htmlspecialcharsはその名のとおりHTML出力用ね。
SQL用のエスケープはMySQLならmysql_real_escape_string
`id` = ? AND `pass` = ?
だと引用された$id,$passがクオートされていないのでSQLエラーになってるんじゃないかな。
`id` = \"{$id}\" AND `pass` = \"{$pass}\"
で問題ないんじゃね?
0820nobodyさん
2010/10/07(木) 23:06:40ID:???$id='"'.mysql_real_escape_string ($_POST[id],).'"'
とかか。
0821nobodyさん
2010/10/07(木) 23:13:46ID:54RcKHkSAND `pass`=". mysql_real_escape_string( $pass ) ."
0822nobodyさん
2010/10/07(木) 23:21:25ID:cS3lZo05ありがとうございます。
0824nobodyさん
2010/10/08(金) 05:47:41ID:???もっとマニュアルちゃんと読めば正しいエスケープ方法も書いてるでしょうに
ましてやプリペアードステートメントまで使ってるのに
0825nobodyさん
2010/10/08(金) 10:56:38ID:???0826nobodyさん
2010/10/08(金) 11:31:27ID:gdsV0D6r0827nobodyさん
2010/10/08(金) 11:36:50ID:???0828nobodyさん
2010/10/08(金) 11:49:17ID:???その教え方だと危険。プレースホルダ使えというべき。
プレースホルダ使わないでデータ埋め込みでSQL文作って
prepareする奴いるから!!(笑)
0829nobodyさん
2010/10/08(金) 12:27:15ID:???さすがにプレースホルダ使わずprepare使うアホがいるとは想像してなかったんだろう
0831nobodyさん
2010/10/08(金) 12:40:32ID:???0832nobodyさん
2010/10/08(金) 13:01:04ID:gdsV0D6r0833nobodyさん
2010/10/08(金) 13:44:14ID:???>$query = $dbh->prepare($sql);
>$result = $query->execute(array($id,$pass));
>$res = $result->fetchAll(PDO::FETCH_ASSOC);
ここおかしくね?
$resultにfetchAllなんてあるわけない
$query->fetchAllだろ
>>832
816に書いてあるようなやり方
0834nobodyさん
2010/10/08(金) 15:00:00ID:puBZJtRMブログ名を取得する方法教えてください
タイトルとかurlとか時間は取得できるみたいなんだけどブログ名は無理なのかな?
↓ソースの一部
foreach ($rss->item as $item) {
$dc = $item->children('http://purl.org/dc/elements/1.1/');
$link = $item->link;
$title = $item->title;
$date = $dc->date;
$desc =$item->description;
0835nobodyさん
2010/10/08(金) 15:34:59ID:???0837nobodyさん
2010/10/08(金) 15:54:18ID:puBZJtRM宣伝じゃないです
0838nobodyさん
2010/10/08(金) 16:00:48ID:rSpcfsYfバナナケーキは出来ないですかね。
↓イチゴケーキのおいしさ
ほのかに香るいちごのあまずっぱさ
プチプチとイチゴの小さな種の食感も最高
-------------------------------------------------
何いってるかわかんねwww
0839nobodyさん
2010/10/08(金) 16:05:04ID:puBZJtRMphpでrssからブログタイトルを取得する方法を教えてください
0840nobodyさん
2010/10/08(金) 17:01:55ID:rSpcfsYf0841nobodyさん
2010/10/08(金) 17:11:43ID:???その形だと$rss->channel->titleとかでしょ。
XMLの構造見てお目当てのを探せばいいだけ。
RSSのバージョンによって構造が違うので幸運を。
0842nobodyさん
2010/10/08(金) 17:26:49ID:puBZJtRMちょっと試してみるですありがと
0843nobodyさん
2010/10/09(土) 01:37:40ID:???0844nobodyさん
2010/10/09(土) 01:55:06ID:???使う必要性もないしむしろ使ったらPDO使ってる意味がない
特定のドライバにこだわらずどのRDBでも使えることを想定してるのに
わざわざドライバ固有の関数使うってどうなのよって話
0845nobodyさん
2010/10/09(土) 01:59:56ID:???0847nobodyさん
2010/10/09(土) 02:11:36ID:???ttp://www.php.net/manual/ja/pdo.quote.php
ここの説明を読みなさいよ
0848nobodyさん
2010/10/09(土) 02:14:03ID:???0849nobodyさん
2010/10/09(土) 02:24:26ID:???$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']);
0850nobodyさん
2010/10/09(土) 02:29:53ID:???0851nobodyさん
2010/10/09(土) 02:34:57ID:???0852nobodyさん
2010/10/09(土) 09:53:36ID:???以下の例で、「[num] => 3」 が3つあり、それを逆順にソートしたいです。
ソート関数の使い方はわかります。多次元配列の扱い方がわかりません。
Array
(
[0] => Array
(
[num] => 1
[body] => aaa
)
[1] => Array
(
[num] => 2
[body] => bbb
)
[2] => Array
(
[num] => 3
[body] => eee
)
[3] => Array
(
[num] => 3
[body] => ddd
)
[4] => Array
(
[num] => 3
[body] => ccc
)
)
0853nobodyさん
2010/10/09(土) 10:18:33ID:???array[0][num]=1
array[1][num]=2
array[2][num]=3
0854nobodyさん
2010/10/09(土) 10:29:04ID:Cr7uTEHePHP5.3.3使ってます
MysqldeでPDOを使いたいんですけど
php_pdo.dllが入ってないんですけど
どこでphp_pdl.dllをダウンロードするのですか?
0855nobodyさん
2010/10/09(土) 10:40:55ID:???ていうかマニュアルみなさいってばぁ
http://www.php.net/manual/ja/pdo.installation.php
0856nobodyさん
2010/10/09(土) 11:22:45ID:Cr7uTEHephp.iniでextension=php_pdo.dllは書いたほうがいいですか?
0857nobodyさん
2010/10/09(土) 11:33:52ID:???いちいち聞かんとわからんのか?
0858nobodyさん
2010/10/09(土) 12:12:44ID:Cr7uTEHe0859nobodyさん
2010/10/09(土) 16:40:12ID:???0860nobodyさん
2010/10/09(土) 22:43:54ID:???0861nobodyさん
2010/10/10(日) 00:05:53ID:ouOWFWUJ調べるにはどうすれば良いでしょうか?
0862nobodyさん
2010/10/10(日) 00:29:20ID:???0863nobodyさん
2010/10/10(日) 00:33:16ID:???0864nobodyさん
2010/10/10(日) 00:37:49ID:???0865nobodyさん
2010/10/10(日) 00:48:04ID:???0867nobodyさん
2010/10/10(日) 12:52:11ID:3r76ILk10868nobodyさん
2010/10/10(日) 13:02:31ID:???0869nobodyさん
2010/10/10(日) 13:13:30ID:???0870nobodyさん
2010/10/10(日) 13:14:31ID:???0871nobodyさん
2010/10/10(日) 13:14:38ID:sl1VHVin0872nobodyさん
2010/10/10(日) 13:30:43ID:???0875nobodyさん
2010/10/10(日) 17:06:50ID:vFML8UIU↓
そのページの特定の文字列を正規表現で取得(+できれば画像も)
↓
取得したデータを整形して表示
こんか感じの動作をPHPで実現できませんか?
イメージとしてはにこサウンド(http://nicosound.anyap.info/)
のように、フォームからアドレスだけ入力→整形データ表示
とできるようにしたいのです。
ですが他のページからデータを抽出する方法が
(あるのかどうかすら)わかりません。
もし似たようなシステムを組んだことがある方、
どうかご教授をお願いします。
0877nobodyさん
2010/10/10(日) 19:44:33ID:R6wxDE8S0879nobodyさん
2010/10/10(日) 20:10:08ID:???0880nobodyさん
2010/10/10(日) 20:45:02ID:???0881nobodyさん
2010/10/10(日) 20:54:27ID:lA2cYk+uSearchAPIでURL検索するとき、短縮URLの書き込みも展開後のものを対象に検索してくれるんでしょうか?
ググったらbacktweet?backtype?そういうの使うって記事がいっぱいあるけど、
でもSearchAPIでurl検索かけるとbit.lyとかow.lyとか展開後のURLが検索対象になってる気がする
この辺詳しく書いてあるところないですか?
TwitterAPIの仕様書にも目を通してるんですが短縮URLに関する言及が一切なくて困ってます。
わかる方助けてください。
最適なスレがあれば誘導してもらえると嬉しかったりします。
0883nobodyさん
2010/10/10(日) 21:09:06ID:lA2cYk+u全URLを一旦チェックし、リダイレクトされるものはリダイレクト後のURLを保存してある
という仕様が考えられますが、それだとUAによって違ったURLに飛ばされるようなURLだった時に厄介な気がします
従いまして、短縮URLサービスのリストを持っていて、該当するURLの場合は展開しているのではないかと思うのですが、
だとしたら仕様に乗らないのはおかしいなと思っておりました。
なにはともあれ私以外の方から、明確に「圧縮されたURLもヒットする」というお言葉をいただけたので
backtypeといった外部サービスを利用せず、公式検索APIを使って開発したいと思います。
どうもありがとうございました。
0884nobodyさん
2010/10/10(日) 21:33:56ID:???bit.lyとかAmazonのamzn.toとか、Pixivのp.tlとかはtwitterで展開されるのを確認してるけど
個人で作ったものまではやってみたことが無いので気を付けて
それでもほとんどの短縮URLは検索できるから問題ないが
0885nobodyさん
2010/10/11(月) 00:58:16ID:BmMGNfccそこでデフォルト引数の機能を使って擬似的に関数の多重定義を実現してみました
↓
function hoge ($a, $b = 0) {
if ($b === 0) {
// hoge($a) が指定されたことにする
}
・・・
}
このような実装にすれば
hoge("ahya");
hoge("ahya", "hoge");
のように擬似的に関数の多重定義を実現できると思うのですがこのやり方はありでしょうか?
もっとスマートな方法があるようでしたら教えてください。
0886nobodyさん
2010/10/11(月) 01:08:48ID:???0888nobodyさん
2010/10/11(月) 01:37:15ID:???0889nobodyさん
2010/10/11(月) 05:52:26ID:???引数によって処理を変えてるだけだから多重定義と呼べるかどうか。
目的によってはオーバーライドのほうがスマートかも知れん。
0890nobodyさん
2010/10/11(月) 07:24:03ID:C9wk+ULb1文でできる関数ないでしょうか
例
$list1 = array('aaa', 'bbb', 'ccc');
$list2 = some_func('bbb', $list1);
結果 list1 = ('aaa','ccc') list2 = ('bbb')
0891nobodyさん
2010/10/11(月) 07:44:21ID:???0892nobodyさん
2010/10/11(月) 08:00:33ID:VsEhTdxopixivチャット(http://chat.pixiv.net/)と言うphpで構成されたサイトがあるのですが、
そこでamfファイルというものが扱われています
このamfファイルというものがよくわかりません
phpとamfファイルはどのような関係なのでしょうか?
また、質問に対して他に適切なスレをご存知でしたら
誘導していただければとても助かります
よろしくお願いします
0893nobodyさん
2010/10/11(月) 08:24:27ID:???ttp://blog.asial.co.jp/323
これ?よくわかんないけどXML-RPCとかJSONの仲間なのかな
もしこれならこのスレで待ってれば分かる人が答えてくれるかもね
AniMationFileの略とかいうオチではないよね
0894623
2010/10/11(月) 10:10:47ID:???ttp://www.smarty.net/forums/viewtopic.php?p=67137&sid=7c16c90aaa2aacb822de0aef8b4d3853
0895nobodyさん
2010/10/11(月) 11:20:30ID:???if (true) {
echo $a;
} else {
echo $b;
}
オープンソースなどのコードを読んでると、
同じ動作をこんなふうに書いていることがあります
if (true) {
echo $a;
break;
}
echo $b;
この書き方をすると、どんないいことがあるのでしょうか。
前者と後者でどう使い分ければいいのか、教えてください。
0896nobodyさん
2010/10/11(月) 11:31:00ID:???自分のコーディングスタイルでやればいい
0897nobodyさん
2010/10/11(月) 11:37:07ID:???構文からしておかしいじゃん
if-else文にbreakなんて使えない
0898nobodyさん
2010/10/11(月) 11:40:22ID:???0900nobodyさん
2010/10/11(月) 11:44:40ID:???だって上の場合ループ毎に必ず$aか$bのどちらかが出力されて
下は一致して$aが出力されたあとに$bが出力されじゃん
だいたいcontinueならともかくbreak使ってたら上と違って全て回りきらないよ
ようするに>>895の2通りの書き方はどうみても違う結果が出る
0901900
2010/10/11(月) 11:46:33ID:???>下は一致して$aが出力されたあとに$bが出力されじゃん
これ嘘 $bは出力されないね
0902nobodyさん
2010/10/11(月) 11:49:48ID:???0903nobodyさん
2010/10/11(月) 11:51:42ID:???ループ中で
if (true) {
echo $a;
} else {
echo $b;
}
if (true) {
echo $a;
continue;
}
echo $b;
じゃないと同じ動作にならない
0904nobodyさん
2010/10/11(月) 12:05:03ID:???上と下が同じ動作とか誰も書いてないわけだし
>>895さんは、単にこういう書き方どうなのって聞きたいだけでしょ
0905nobodyさん
2010/10/11(月) 12:07:54ID:???$j = 1;
while (1 == $i){
if (1 == $j) {
echo $a;
break;
}
echo $b;
$i++;
}
0906nobodyさん
2010/10/11(月) 12:08:24ID:???>同じ動作をこんなふうに書いていることがあります
0909nobodyさん
2010/10/11(月) 13:08:47ID:STo2MEV20910nobodyさん
2010/10/11(月) 13:20:06ID:???0911nobodyさん
2010/10/11(月) 13:37:54ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。