【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を表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
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で済むけど
0333nobodyさん
2012/12/03(月) 22:21:50.88ID:???0334nobodyさん
2012/12/03(月) 22:23:15.32ID:???0335nobodyさん
2012/12/03(月) 22:31:30.27ID:???PDOで済まない・・・?
要するにエスケープ関数使うよりpreg_matchで条件分岐の方が楽で正確って言いたかった
0336nobodyさん
2012/12/03(月) 22:41:48.86ID:???0337nobodyさん
2012/12/03(月) 22:43:54.52ID:???0338nobodyさん
2012/12/03(月) 23:03:06.25ID:???0340nobodyさん
2012/12/03(月) 23:08:26.90ID:???例えばPDOが入っていない状況で、
mysqlのエスケープを使用せずpreg_matchを使用するのはどうでしょうか?
0341nobodyさん
2012/12/03(月) 23:53:30.69ID:???漏れが出てくるから自前のエスケープはせずに、素直にPDO使ったがいいよ
0342nobodyさん
2012/12/04(火) 12:58:48.72ID:???0343nobodyさん
2012/12/04(火) 17:32:36.64ID:???0344nobodyさん
2012/12/04(火) 17:40:32.87ID:2gy0/x6N簡単に言うと、wordpressのテンプレをhtmlからスラスラ、カポッと作れる様なアレだ。
もう、シンプルで合理的すぎてすみませんと謝罪される程のスキルが欲しい。
※すみません、こういった煽りタイプの書き込みの方がレス多く貰えると思ったので。
0345nobodyさん
2012/12/04(火) 18:07:34.15ID:???0346nobodyさん
2012/12/04(火) 18:08:43.11ID:???0347nobodyさん
2012/12/04(火) 18:28:46.04ID:2gy0/x6Nモレスキンにメモったから、あとは数週間寝かせてじっくり熟成してみる。
0348nobodyさん
2012/12/04(火) 20:08:50.12ID:???0350nobodyさん
2012/12/04(火) 20:15:43.59ID:4+ZLGXb5ありがとうございました。
0351nobodyさん
2012/12/04(火) 20:31:13.94ID:VY3MlHj0【PHPのバージョン】5.3.5
【連携ソフトウェア】XAMPP 1.7.4
【質問内容】
echoで文字連結した言葉を出したいです。
以下はコードを抜き出してきたのですが、"."ではなく"{}"で区切りたいです。
しかし、うまくいきません。原因分かる方、教えてください。
【正常動作】
<?php
if (isset($_GET["year"])) {
echo "今年".($this_year - intval($_GET["year"]))."才です。";
}
?>
【異常動作】
<?php
if (isset($_GET["year"])) {
echo "今年{($this_year - intval($_GET["year"]))}才です。";
}
?>
0352nobodyさん
2012/12/04(火) 20:40:00.12ID:???配列って
$test[] = 900;
$test[] = 920;
って感じでキー指定なしで格納して
foreachで全部出力できるよね
0354nobodyさん
2012/12/04(火) 20:53:40.84ID:???結論からいうと無理
文字列中の{}は演算子は使えないし単純な変数を入れることを想定してる
if (isset($_GET["year"])) {
$yo = $this_year - intval($_GET["year"]);
echo "今年{$yo}才です。";
}
例えばこんなふうにしないとだめ
0356nobodyさん
2012/12/04(火) 21:50:04.05ID:jU+DWC4pif($ch2)はどう違うんですか?
0358nobodyさん
2012/12/04(火) 22:10:42.81ID:jU+DWC4p$ch2 = "";だと
前者はTRUEで、
後者はFALSEなんですね
0359nobodyさん
2012/12/04(火) 22:13:21.71ID:???0360nobodyさん
2012/12/04(火) 22:18:17.46ID:jU+DWC4p後者が、FALSEですよね
0361nobodyさん
2012/12/04(火) 22:25:09.75ID:???0362nobodyさん
2012/12/04(火) 22:49:33.39ID:???■ このスレッドは過去ログ倉庫に格納されています