トップページphp
1001コメント281KB

【PHP】下らねぇ質問はID出して書き込みやがれ 124

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/11/20(火) 18:02:45.99ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 123
http://kohada.2ch.net/test/read.cgi/php/1348583995/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0233nobodyさん2012/12/01(土) 22:26:16.20ID:???
半年でPHPしかやったことないなら
合計100kb単位のコードは厳しいんじゃないかな

>>232みたいなメジャーなアプリケーションは避けて
そこらへんにある50kb以下のコードをたくさん読んでみたほうがいいかもね
PHP アプリケーション名(掲示板とかアクセス解析とか)
で検索して読みやすそうなの探せばいいと思う

自分に言えるのはレッツPHPはやめたほうがいいってことぐらいだな
0234nobodyさん2012/12/01(土) 22:28:07.68ID:???
バイトで判断w
0235nobodyさん2012/12/01(土) 22:31:19.96ID:???
バイトで判断はあながち間違ってない。
コード量が多いと頭の整理が追いつかなくなるからな。
0236nobodyさん2012/12/01(土) 22:35:29.79ID:???
コメントは?
外部ライブラリは?
べた書き、モジュール化、MVCモデルの有無は?
0237nobodyさん2012/12/01(土) 22:39:39.10ID:???
そんなの実際にコード見て確かめればいいでしょう・・・
0238nobodyさん2012/12/01(土) 22:41:48.28ID:???
読むより作ったがいいよ
0239nobodyさん2012/12/01(土) 22:45:51.19ID:???
このスレ的には
使いたい関数や興味ある機能をPHPマニュアルで調べて
そこに書かれてるサンプルコードやユーザノートを参考にする

じゃないのかw

プログラムはそんなしょぼいサンプルの集まりで出来るものだし
0240nobodyさん2012/12/02(日) 00:08:42.66ID:???
質問まだぁ
0241nobodyさん2012/12/02(日) 00:20:16.82ID:???
バイトで判断w
0242nobodyさん2012/12/02(日) 00:20:52.39ID:???
>>237
それじゃバイトで判断じゃなくねw
0243nobodyさん2012/12/02(日) 00:24:21.15ID:???
共同開発してるようなもんでもない限りオナニーコメントなんて入ってないでしょう。
0244nobodyさん2012/12/02(日) 00:40:06.94ID:???
へー、コメント入ってないコードのほうが良いコードなんだw
0245nobodyさん2012/12/02(日) 00:50:02.44ID:???
>>232
ありがとうございます!
具体的に挙げていただけるととても助かります。

>>239
短いサンプルではなく、なんと言ったらいいのか…
どんな風にクラスを作るのか、使うのかを学びたいです
設計というんでしょうか? MVCフレームワークを使っていても
めんどくさい処理はモデルとは別にクラスを書きますけど
書きながら、もっとスマートに書けるんだろうなぁといつも思います
自分の書き方に自信を持てません
そういうところを学ぶには
人の書いたコードを読むのがいいのかなと思い質問した次第です

なにか勉強によさげなものがあれば是非教えて頂きたいです
具体的なものでなくても構いません
githubでこう検索すればいいとかでも助かります
よろしくお願いします
0246nobodyさん2012/12/02(日) 00:51:05.19ID:???
悩んでる暇があったら手を動かしたほうがいいと思うよ
0247nobodyさん2012/12/02(日) 00:55:16.18ID:MSbR24kc
>>246
汚いコードを量産したくないんですよね
趣味でやってるので最終的には動けばいいんですけど
やっぱり気になってしまって…
0248nobodyさん2012/12/02(日) 01:18:36.66ID:???
「何十年も修行して達人にでもなるのを待ってから戦場に出るつもりか?
気の長げェ話だな」
0249nobodyさん2012/12/02(日) 01:41:43.87ID:???
汚いコード書きたくないだけなら、フレームワーク使ってコーディング規約に従って書けばいいんじゃね
0250nobodyさん2012/12/02(日) 03:20:44.26ID:???
>>244
コメントは?っていったからそんなものその辺のプログラムには入ってないって言っただけ。
つうか煽り方が子供かよw
0251nobodyさん2012/12/02(日) 07:23:18.39ID:???
>>250
なんでその辺のプログラム限定なの?
0252nobodyさん2012/12/02(日) 07:44:28.30ID:???
流れ嫁
0253nobodyさん2012/12/02(日) 07:50:21.14ID:???
なんで嫁が出てくるの?
0254nobodyさん2012/12/02(日) 07:52:30.29ID:???
>>252
流れから判断したら>>229はその辺のプログラムで教えてほしいなんて言ってないけど
0255nobodyさん2012/12/02(日) 07:54:56.39ID:???
WordPressはそのへんのプログラムではないんですか?
だったらどのへんなんですか?
0256nobodyさん2012/12/02(日) 07:57:22.15ID:???
>>254
文盲か?
その辺のプログラムで教えてほしいとは言ってないけど教えてほしくないとも言ってない
単に人の書いたコードを読みたいと言ってる
0257nobodyさん2012/12/02(日) 07:58:41.61ID:???
どのへんなんですか?
0258nobodyさん2012/12/02(日) 07:58:45.58ID:???
>>256
うん、だから>>251で「なんでその辺のプログラム限定なの?」と聞いてるんだが
0259nobodyさん2012/12/02(日) 07:59:14.48ID:???
wordpressを出したのは有名だからであって、主眼を置くべきは他人が書いたものってとこだな。
0260nobodyさん2012/12/02(日) 08:00:59.21ID:???
>>258
だから流れ嫁よ

なにかおすすめはない?

ZendFW phpmyadmin phpbb

経験少ないなら↑のようなメジャーなものは避けてその辺のバイト数少ないのがいい

バイトで判断?コメントは?

その辺のはそもそもコメントないだろ
0261nobodyさん2012/12/02(日) 08:23:12.18ID:???
そのへんに転がってるコードの話だろ
すり替えるなハゲ
0262nobodyさん2012/12/02(日) 08:32:33.71ID:???
>>260
なるほど、君は「その辺にある50KB以下のコードが良い」という前提で「それらにはコメントがないから気にしなくて良い」と言っているけど、
俺は「その辺にある50KB以下のコードはコーディングの勉強には適さない、コメントが適当であることがその理由の一つ」という考え
0263nobodyさん2012/12/02(日) 08:45:11.04ID:???
斜め上のレスありがとう
0264nobodyさん2012/12/02(日) 08:51:17.02ID:???
斜め上から目線
0265nobodyさん2012/12/02(日) 10:55:24.45ID:???
なんでその辺のプログラム限定なの?の理由を流れから説明したら、
訳の分からない自己主張されたでござるの巻。

さすがPHPユーザーだぜwwwww
0266nobodyさん2012/12/02(日) 13:44:43.79ID:???
空気読まないで発言すると、普段Cakeしか使ってないけどソース読むならZendFWが一番。
その一番の理由は規約がしっかりしてる。
コメントをきっちり書くっていうことは規約に含まれてるからもちろんコメントも十分。
英語の言い回しの勉強にもなる。
PSR-3に完全準拠してたんじゃないかな?
0267nobodyさん2012/12/02(日) 13:48:56.05ID:???
PSR-2までだった。orz...
0268nobodyさん2012/12/02(日) 14:04:17.81ID:???
PHPの英語ってphp.iniのコメント部分のスペルミスなどのみの変更を
大量に見てきたせいかあまり好きじゃないw
0269nobodyさん2012/12/02(日) 14:16:53.92ID:???
wrapper を wraper とか、お前わざとかとw
0270nobodyさん2012/12/02(日) 14:56:15.97ID:???
リファラーの綴り知ってる?
0271nobodyさん2012/12/02(日) 15:01:01.03ID:???
ネットスケープの開発に物申したいのか
0272nobodyさん2012/12/02(日) 15:11:56.06ID:???
あぁ、物申したいな
0273nobodyさん2012/12/02(日) 15:30:35.33ID:???
巻舌ができなかったんだよ。
0274nobodyさん2012/12/02(日) 16:57:02.34ID:9ocxfrdL
ソース見てると毎回ifとかforの前に
$string = "";
みたいに宣言してる人いるけどあれなんなの
0275nobodyさん2012/12/02(日) 16:58:50.68ID:???
知らんけどループの中で追記してるんじゃ?
0276nobodyさん2012/12/02(日) 17:10:10.98ID:???
>>274
・条件の中やループの中を通るとは限らないから
・スコープの問題にあたったことある人が癖で{}使うところでそうする
・わかりやすいから
0277nobodyさん2012/12/02(日) 17:20:00.36ID:???
ほんとだ。ありがとう
追記の時は宣言しておかないとエラーになる?
PHPのマニュアルだとこんな感じだけど
$unset_str .= 'abc';
var_dump($unset_str);
PHP では変数を初期化する必要はありませんが、そのようにするのはとてもよいことです。
って書いてあるから宣言したほうがいいのかな
0278nobodyさん2012/12/02(日) 17:33:17.04ID:???
PHPだけやってるつもりなら好きにすればいいんじゃね
例えるなら標準SQLかMySQL専用の違い程度
0279nobodyさん2012/12/02(日) 17:38:11.59ID:9ocxfrdL
>>275,276,278
ありがとうございました。
ソースの可視性を上げるためにも自分も最初に変数を初期化することにします。
0280nobodyさん2012/12/02(日) 18:05:22.82ID:???
そのようにすることはとてもよいことですw

下手糞な翻訳だなあw
0281nobodyさん2012/12/02(日) 18:06:21.61ID:???
PHPの公式マニュアルって直訳みたいだよな
0282nobodyさん2012/12/02(日) 18:09:50.63ID:???
原文もそのようにかかれてるわけだが
0283nobodyさん2012/12/02(日) 18:35:23.93ID:???
原文を見て、外国語を英語に訳したような下手糞な文だよな、と思っているとでも?
0284nobodyさん2012/12/02(日) 18:42:23.47ID:???
notice出るだろ
0285nobodyさん2012/12/02(日) 18:46:52.87ID:???
出ないよ
0286nobodyさん2012/12/02(日) 18:49:30.30ID:???
>>285
もういいよそれ
0287nobodyさん2012/12/02(日) 19:11:01.01ID:???
phpのメタ言語ってどこかでやってないですかね。phpソース書き出しの為の記述言語…bakeとかoilとかの自動生成の意味合いではなくて、本番用に最適化されたグッチャグチャだけど高速に動くソース吐く、みたいな
0288nobodyさん2012/12/02(日) 19:24:19.07ID:???
>>286
いやマジで出ないからね
0289nobodyさん2012/12/02(日) 19:38:20.13ID:???
白いのがいっぱい出た
0290nobodyさん2012/12/02(日) 19:40:52.01ID:???
=だけなら出ないよ
0291nobodyさん2012/12/02(日) 19:50:55.69ID:???
>>265
その辺のプログラムで勉強ってのがそもそもだめだろ
0292nobodyさん2012/12/02(日) 20:33:55.50ID:???
拾い食いプログラマ
0293nobodyさん2012/12/02(日) 21:33:08.66ID:2RwVg9eG
>>284
HIPHOP
0294nobodyさん2012/12/02(日) 21:34:57.41ID:2RwVg9eG
安価間違えた
>>287
HIPHOP
0295nobodyさん2012/12/02(日) 21:44:01.76ID:???
すげーそんなのあるんだ
0296nobodyさん2012/12/02(日) 21:47:56.48ID:???
>>294
Facebookの!あーそういえばあったの忘れてた…ありがとう〜
どれどれ。CentOSかFedoraでのみ動きます…んー何その微妙なセレクション
0297nobodyさん2012/12/02(日) 22:00:01.62ID:???
微妙っていうより単にRHEL系だろ
0298nobodyさん2012/12/02(日) 22:00:20.38ID:FlGCwzUt
質問させてください。
BMI測定ツールを作っています。
購入した本の通りに、コードを入力したのですが、どうにも上手くいきません。
コード自体にエラーはないのですが、体重・身長を入力して実行しても、入力フォームが出るばかりです。
どなたか、原因がわかる方いませんか?

<?php
//フォームからデータが送信されたか確認
if (isset($_GET["w"]) && isset($_GET["h"])){
//データが送信されていればBMIを計算
$w = floatval($_GET["w"]);
$h = floatval($_GET["h"]);
$bmi = $w / pow($h / 100, 2);
$per = floor(($bmi / 22) * 100);
//結果を表示
echo "体重{$w}kg,身長{$h}cm<br/>";
echo "BMIは{$bmi}<br/>";
echo "肥満度は{$per}%です。";
}else {
//データが送信されていなければフォームを表示
echo "<form>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";
}
?>
0299nobodyさん2012/12/02(日) 22:03:56.75ID:???
formのアクションとメソッドが抜けてる
0300nobodyさん2012/12/02(日) 22:47:15.06ID:FlGCwzUt
>>299

ご指摘の通り、直そうと思うのですが、こんな感じにすればよいでしょうか?

[修正前]
echo "<form>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";

[修正後]

$self = $_SERVER["SCRIPT_NAME"];
echo "<form='$self' method='POST'>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";
0301nobodyさん2012/12/02(日) 22:54:17.34ID:???
http://www.tagindex.com/html_tag/form/form_action.html
0302nobodyさん2012/12/02(日) 23:03:23.61ID:FlGCwzUt
>>301

すいません、そこを直しても動かないです…。
0303nobodyさん2012/12/02(日) 23:18:05.73ID:FlGCwzUt
ちなみに、こっちのコードなら動きます。

<?php
// フォームからデータが送信されているか?
if (isset($_GET["w"]) && isset($_GET["h"])) {
// データが送信されていればBMIを計算
$w = floatval($_GET["w"]); // 体重(kg)
$h = floatval($_GET["h"]); // 身長(cm)
$bmi = $w / pow($h / 100, 2); // BMI値を計算
$per = floor(($bmi / 22) * 100); // 肥満率を計算
// 結果を表示
echo "体重{$w}kg,身長{$h}cm<br/>";
echo "BMIは{$bmi}<br/>";
echo "肥満度は{$per}%です。";
} else {
// データが送信されてないので、フォームを表示
echo "<form>";
echo "身長:<input type='text' name='h'> cm <br/>";
echo "体重:<input type='text' name='w'> kg <br/>";
echo "<input type='submit' value='BMI判定'>";
echo "</form>";
}

>>298とどう違うのかさっぱり分からないです。
0304nobodyさん2012/12/02(日) 23:33:51.35ID:FlGCwzUt
すいません、単純なスペルミスでした。
>>298は<name>を<neme>にしているところがありました。
0305nobodyさん2012/12/03(月) 00:02:11.20ID:???
methodをpostにするなら
値は$_GETじゃなくて$_POSTで取得しなきゃ
0306nobodyさん2012/12/03(月) 00:59:42.81ID:???
>>304
まずは、if文とか分岐のところでechoとか使って
「狙った通りの所に来てるか」を確認すると良いよ。
んで、思った通りの流れになかったら、
変数をvar_dumpでダンプするとかして、
「どうしてここに来てないのか」を原始的に見てみればいい。
スペルミスみたいな凡ミスは変にハマったりしやすいから
逆にベーシックな手段で確認すると意外と早い。
0307nobodyさん2012/12/03(月) 08:21:31.21ID:???
IDE使うと自動で指摘してくれるかもよ
0308nobodyさん2012/12/03(月) 11:36:32.18ID:???
var_dump作戦意外と強力

cakephpで詰んだときコントローラ内だろうと容赦なくバーダンしてる
0309nobodyさん2012/12/03(月) 14:10:52.02ID:???
バーダン
0310nobodyさん2012/12/03(月) 14:14:50.25ID:???
テスト書けよ
0311nobodyさん2012/12/03(月) 14:22:44.53ID:q8toeDgl
■ローカル環境
【OS名】WindowsXP
【PHPのバージョン】5.3.8
【連携ソフトウェア】apache 2.2.21
■サーバ環境
【OS名】linux
【PHPのバージョン】5.2.17
【連携ソフトウェア】apache 2.0.64
■質問内容
header()を使ってprint文でファイルをダウンロードさせようとしています。
ローカル環境では、動作しましたが、サーバ環境では、ダウンロードしたい
データ(CSV形式です)が画面表示されてしまいます。

同じPHPファイルを使っているので、PHPの設定なのかなと思いますが
どこが影響しているのでしょうか。
0312nobodyさん2012/12/03(月) 14:51:27.12ID:???
headerに何書いたんだよ?
0313nobodyさん2012/12/03(月) 15:27:46.92ID:???
ダウンロードしてHTTPヘッダーを覗け
0314nobodyさん2012/12/03(月) 16:34:36.23ID:bEYYQFwC
データ保存の方法で悩んでます。
データベースを準備する程でもないけど
かと言って何も考えずにファイルにガリガリ書いたら複数人が同時にアクセスしてあっという間にデータが抜けてしまいます
ユーザー数は千人、一人あたりのデータは1MBくらいで、いいライブラリありましたら教えて下さい
0315nobodyさん2012/12/03(月) 16:38:51.91ID:???
データベースを準備中するまでもない理由は?
0316nobodyさん2012/12/03(月) 16:39:35.42ID:???
準備
0317nobodyさん2012/12/03(月) 16:59:46.58ID:ZlLn0Tb0
ロックかけろよ
0318nobodyさん2012/12/03(月) 17:09:41.07ID:???
最近の若いのはロック処理もしないのか
0319nobodyさん2012/12/03(月) 17:21:26.82ID:???
データベースに最適な内容
SQLiteから始めてみればいいじゃん
わからないから避けてるようにしか見えん。
0320nobodyさん2012/12/03(月) 17:30:08.36ID:???
なんでファイルベース?
データベース使えばいいのに
03213112012/12/03(月) 17:58:23.95ID:q8toeDgl
>>312
DBからデータを取得して
header("Content-Type: application/octet-stream name=hoge.csv");
header("Content-Disposition: attachment; filename=hoge.csv");
print $data;
です。
>>313
HTTPヘッダの覗き方がわかりません。教えてください。
header()より先に何かが出ていると思うのですが、
同じPHPファイルなのに動作の違いがでるのがよくわかりません。
0322nobodyさん2012/12/03(月) 18:10:25.81ID:???
>>321
コンソールからtelnet で直接通信するか、FirefoxのアドオンのLiveHttpheaderみたいなツール使うとか
0323nobodyさん2012/12/03(月) 18:35:47.38ID:???
覗くプログラムをPHPで書けばいい
0324nobodyさん2012/12/03(月) 20:05:17.72ID:???
>>314
>ユーザー数は千人

思いっきりDB用意するほどのものじゃねえかw
0325nobodyさん2012/12/03(月) 20:21:28.97ID:???
サーバー側のapacheの設定は疑った?
0326nobodyさん2012/12/03(月) 20:35:38.00ID:???
>>314
この程度のスキルの奴が1人あたり1MBものデータ所持してんのかよ・・・
0327nobodyさん2012/12/03(月) 20:47:17.05ID:???
mysqliだっけ?ファイルベースのmysqlは?
0328nobodyさん2012/12/03(月) 20:48:13.20ID:???
SQliteか。ごめん間違えた上に外出だった
0329nobodyさん2012/12/03(月) 20:49:36.23ID:???
なんだよファイルベースのmysqlって
mysqlとSQLiteは別物だよ
0330nobodyさん2012/12/03(月) 22:04:47.98ID:???
エスケープするより英文字だったらis_alnumとかpreg_matchでいいよな?
0331nobodyさん2012/12/03(月) 22:15:08.11ID:???
どういう意味でエスケープって言ってるんだ
0332nobodyさん2012/12/03(月) 22:16:52.49ID:???
DBへのクエリとか後に表示するユーザー固有識別名とか
まあ前者はPDOで済むけど
■ このスレッドは過去ログ倉庫に格納されています