【PHP】下らねぇ質問はID出して書き込みやがれ 124
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/11/20(火) 18:02:45.99ID:???過去スレ、関連スレ、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:???合計100kb単位のコードは厳しいんじゃないかな
>>232みたいなメジャーなアプリケーションは避けて
そこらへんにある50kb以下のコードをたくさん読んでみたほうがいいかもね
PHP アプリケーション名(掲示板とかアクセス解析とか)
で検索して読みやすそうなの探せばいいと思う
自分に言えるのはレッツPHPはやめたほうがいいってことぐらいだな
0234nobodyさん
2012/12/01(土) 22:28:07.68ID:???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:???0243nobodyさん
2012/12/02(日) 00:24:21.15ID:???0244nobodyさん
2012/12/02(日) 00:40:06.94ID:???0245nobodyさん
2012/12/02(日) 00:50:02.44ID:???ありがとうございます!
具体的に挙げていただけるととても助かります。
>>239
短いサンプルではなく、なんと言ったらいいのか…
どんな風にクラスを作るのか、使うのかを学びたいです
設計というんでしょうか? MVCフレームワークを使っていても
めんどくさい処理はモデルとは別にクラスを書きますけど
書きながら、もっとスマートに書けるんだろうなぁといつも思います
自分の書き方に自信を持てません
そういうところを学ぶには
人の書いたコードを読むのがいいのかなと思い質問した次第です
なにか勉強によさげなものがあれば是非教えて頂きたいです
具体的なものでなくても構いません
githubでこう検索すればいいとかでも助かります
よろしくお願いします
0246nobodyさん
2012/12/02(日) 00:51:05.19ID:???0247nobodyさん
2012/12/02(日) 00:55:16.18ID:MSbR24kc汚いコードを量産したくないんですよね
趣味でやってるので最終的には動けばいいんですけど
やっぱり気になってしまって…
0248nobodyさん
2012/12/02(日) 01:18:36.66ID:???気の長げェ話だな」
0249nobodyさん
2012/12/02(日) 01:41:43.87ID:???0250nobodyさん
2012/12/02(日) 03:20:44.26ID:???コメントは?っていったからそんなものその辺のプログラムには入ってないって言っただけ。
つうか煽り方が子供かよw
0252nobodyさん
2012/12/02(日) 07:44:28.30ID:???0253nobodyさん
2012/12/02(日) 07:50:21.14ID:???0255nobodyさん
2012/12/02(日) 07:54:56.39ID:???だったらどのへんなんですか?
0256nobodyさん
2012/12/02(日) 07:57:22.15ID:???文盲か?
その辺のプログラムで教えてほしいとは言ってないけど教えてほしくないとも言ってない
単に人の書いたコードを読みたいと言ってる
0257nobodyさん
2012/12/02(日) 07:58:41.61ID:???0259nobodyさん
2012/12/02(日) 07:59:14.48ID:???0260nobodyさん
2012/12/02(日) 08:00:59.21ID:???だから流れ嫁よ
なにかおすすめはない?
↓
ZendFW phpmyadmin phpbb
↓
経験少ないなら↑のようなメジャーなものは避けてその辺のバイト数少ないのがいい
↓
バイトで判断?コメントは?
↓
その辺のはそもそもコメントないだろ
0261nobodyさん
2012/12/02(日) 08:23:12.18ID:???すり替えるなハゲ
0262nobodyさん
2012/12/02(日) 08:32:33.71ID:???なるほど、君は「その辺にある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:???その一番の理由は規約がしっかりしてる。
コメントをきっちり書くっていうことは規約に含まれてるからもちろんコメントも十分。
英語の言い回しの勉強にもなる。
PSR-3に完全準拠してたんじゃないかな?
0267nobodyさん
2012/12/02(日) 13:48:56.05ID:???0268nobodyさん
2012/12/02(日) 14:04:17.81ID:???大量に見てきたせいかあまり好きじゃないw
0269nobodyさん
2012/12/02(日) 14:16:53.92ID:???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$string = "";
みたいに宣言してる人いるけどあれなんなの
0275nobodyさん
2012/12/02(日) 16:58:50.68ID:???0276nobodyさん
2012/12/02(日) 17:10:10.98ID:???・条件の中やループの中を通るとは限らないから
・スコープの問題にあたったことある人が癖で{}使うところでそうする
・わかりやすいから
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:???例えるなら標準SQLかMySQL専用の違い程度
0279nobodyさん
2012/12/02(日) 17:38:11.59ID:9ocxfrdLありがとうございました。
ソースの可視性を上げるためにも自分も最初に変数を初期化することにします。
0280nobodyさん
2012/12/02(日) 18:05:22.82ID:???下手糞な翻訳だなあw
0281nobodyさん
2012/12/02(日) 18:06:21.61ID:???0282nobodyさん
2012/12/02(日) 18:09:50.63ID:???0283nobodyさん
2012/12/02(日) 18:35:23.93ID:???0284nobodyさん
2012/12/02(日) 18:42:23.47ID:???0285nobodyさん
2012/12/02(日) 18:46:52.87ID:???0287nobodyさん
2012/12/02(日) 19:11:01.01ID:???0289nobodyさん
2012/12/02(日) 19:38:20.13ID:???0290nobodyさん
2012/12/02(日) 19:40:52.01ID:???0292nobodyさん
2012/12/02(日) 20:33:55.50ID:???0293nobodyさん
2012/12/02(日) 21:33:08.66ID:2RwVg9eGHIPHOP
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:???Facebookの!あーそういえばあったの忘れてた…ありがとう〜
どれどれ。CentOSかFedoraでのみ動きます…んー何その微妙なセレクション
0297nobodyさん
2012/12/02(日) 22:00:01.62ID:???0298nobodyさん
2012/12/02(日) 22:00:20.38ID:FlGCwzUtBMI測定ツールを作っています。
購入した本の通りに、コードを入力したのですが、どうにも上手くいきません。
コード自体にエラーはないのですが、体重・身長を入力して実行しても、入力フォームが出るばかりです。
どなたか、原因がわかる方いませんか?
<?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:???0300nobodyさん
2012/12/02(日) 22:47:15.06ID:FlGCwzUtご指摘の通り、直そうと思うのですが、こんな感じにすればよいでしょうか?
[修正前]
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:???0302nobodyさん
2012/12/02(日) 23:03:23.61ID:FlGCwzUtすいません、そこを直しても動かないです…。
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:???値は$_GETじゃなくて$_POSTで取得しなきゃ
0306nobodyさん
2012/12/03(月) 00:59:42.81ID:???まずは、if文とか分岐のところでechoとか使って
「狙った通りの所に来てるか」を確認すると良いよ。
んで、思った通りの流れになかったら、
変数をvar_dumpでダンプするとかして、
「どうしてここに来てないのか」を原始的に見てみればいい。
スペルミスみたいな凡ミスは変にハマったりしやすいから
逆にベーシックな手段で確認すると意外と早い。
0307nobodyさん
2012/12/03(月) 08:21:31.21ID:???0308nobodyさん
2012/12/03(月) 11:36:32.18ID:???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:???0313nobodyさん
2012/12/03(月) 15:27:46.92ID:???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:ZlLn0Tb00318nobodyさん
2012/12/03(月) 17:09:41.07ID:???0319nobodyさん
2012/12/03(月) 17:21:26.82ID:???SQLiteから始めてみればいいじゃん
わからないから避けてるようにしか見えん。
0320nobodyさん
2012/12/03(月) 17:30:08.36ID:???データベース使えばいいのに
0321311
2012/12/03(月) 17:58:23.95ID:q8toeDglDBからデータを取得して
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:???コンソールからtelnet で直接通信するか、FirefoxのアドオンのLiveHttpheaderみたいなツール使うとか
0323nobodyさん
2012/12/03(月) 18:35:47.38ID:???0325nobodyさん
2012/12/03(月) 20:21:28.97ID:???0327nobodyさん
2012/12/03(月) 20:47:17.05ID:???0328nobodyさん
2012/12/03(月) 20:48:13.20ID:???0329nobodyさん
2012/12/03(月) 20:49:36.23ID:???mysqlとSQLiteは別物だよ
0330nobodyさん
2012/12/03(月) 22:04:47.98ID:???0331nobodyさん
2012/12/03(月) 22:15:08.11ID:???0332nobodyさん
2012/12/03(月) 22:16:52.49ID:???まあ前者はPDOで済むけど
■ このスレッドは過去ログ倉庫に格納されています