トップページ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を表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
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で済むけど
0333nobodyさん2012/12/03(月) 22:21:50.88ID:???
PDOで済む・・・?
0334nobodyさん2012/12/03(月) 22:23:15.32ID:???
PDO使えばいいじゃん
0335nobodyさん2012/12/03(月) 22:31:30.27ID:???
>>333
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:???
preg_matchとかしたあと、PDO使うんじゃないの
0339nobodyさん2012/12/03(月) 23:06:59.94ID:???
>>338
エスケープに関して
値に関してじゃなく安全性について
0340nobodyさん2012/12/03(月) 23:08:26.90ID:???
>>338
例えばPDOが入っていない状況で、
mysqlのエスケープを使用せずpreg_matchを使用するのはどうでしょうか?
0341nobodyさん2012/12/03(月) 23:53:30.69ID:???
PDOわざわざ無効にしてんの?
漏れが出てくるから自前のエスケープはせずに、素直にPDO使ったがいいよ
0342nobodyさん2012/12/04(火) 12:58:48.72ID:???
バインド機構のことをPDOって呼んでるのかな?
0343nobodyさん2012/12/04(火) 17:32:36.64ID:???
プレースホルダって言うんですよ
0344nobodyさん2012/12/04(火) 17:40:32.87ID:2gy0/x6N
おまえら、もっと洗練されたphpの書き方教えろ。おら、もっと強くなりてえだ。
簡単に言うと、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:???
あ と で の二人のお陰であいでぃあが出てきたか
0349nobodyさん2012/12/04(火) 20:15:12.97ID:???
>>348
thx
0350nobodyさん2012/12/04(火) 20:15:43.59ID:4+ZLGXb5
>>344
ありがとうございました。
0351nobodyさん2012/12/04(火) 20:31:13.94ID:VY3MlHj0
【OS名】WINDOWS XP
【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で全部出力できるよね
0353nobodyさん2012/12/04(火) 20:49:37.62ID:???
>>351
無理
変数が展開できるだけで式が書けるわけではない
0354nobodyさん2012/12/04(火) 20:53:40.84ID:???
>>351
結論からいうと無理
文字列中の{}は演算子は使えないし単純な変数を入れることを想定してる

if (isset($_GET["year"])) {
$yo = $this_year - intval($_GET["year"]);
echo "今年{$yo}才です。";
}

例えばこんなふうにしないとだめ
0355nobodyさん2012/12/04(火) 20:58:53.81ID:VY3MlHj0
>>353
>>354
{}では演算子は使えないのですか。ありがとうございます。
0356nobodyさん2012/12/04(火) 21:50:04.05ID:jU+DWC4p
if(isset($ch2))と
if($ch2)はどう違うんですか?
0357nobodyさん2012/12/04(火) 21:51:06.01ID:???
>>356
マニュアルの型比較のとこ見れ
0358nobodyさん2012/12/04(火) 22:10:42.81ID:jU+DWC4p
ありがとうございます。
$ch2 = "";だと
前者はTRUEで、
後者はFALSEなんですね
0359nobodyさん2012/12/04(火) 22:13:21.71ID:???
"0"なら?
0360nobodyさん2012/12/04(火) 22:18:17.46ID:jU+DWC4p
前者が、TRUE
後者が、FALSEですよね
0361nobodyさん2012/12/04(火) 22:25:09.75ID:???
$ch2を$_POSTに変えた場合は?
0362nobodyさん2012/12/04(火) 22:49:33.39ID:???
質問したいならID出せ
0363nobodyさん2012/12/04(火) 22:54:27.79ID:???
$ch2を$_POSTに変えた場合は?
0364nobodyさん2012/12/04(火) 23:15:13.21ID:???
"1"なら?
0365nobodyさん2012/12/04(火) 23:48:43.70ID:???
getするたびにNotice: Undefined indexがでるんですけど
出す理由あるんですか・・・
0366nobodyさん2012/12/04(火) 23:51:36.22ID:???
>>362
03673112012/12/05(水) 10:17:40.54ID:njrAbACp
>>322
長らく使ってなかったXPのドス窓からtelnet...connect localhost 80
接続中...のまま。なんかカーソルの位置もおかしくなるし・・・。
いつかの課題にします。
とりあえずファイルを作って、そのリンクから「名前をつけて保存」にしました。
ありがとうございました。
0368nobodyさん2012/12/05(水) 11:40:30.35ID:???
Windowsのtelnetは癖がある
接続したらカーソルの位置とか画面表示とか気にせず

そのままHTTPリクエスト打ち込むだけ


まあMacかLinuxからやる方がやりやすいけど
0369nobodyさん2012/12/05(水) 11:48:34.79ID:???
>>367
ちょっとしたリクエストプログラムくらいPHPで書けよ
そんな処理さえ書けないのかよ糞言語PHPは
0370nobodyさん2012/12/05(水) 13:22:06.67ID:???
ドス窓wwwwコマンドプロンプトだろ、昭和かw
0371nobodyさん2012/12/05(水) 13:28:54.84ID:???
コマンドプロンプトをDOS窓と呼べたのは9xまでな
2k以降はDOSとは全く無縁
0372nobodyさん2012/12/05(水) 13:35:04.86ID:???
WindowsもそろそろLinuxとかBSDをベースに開発した方がいいんじゃないだろうか
PHPerはWindows使いが多いのかもしれないが他の言語だとマカーが多いよね
0373nobodyさん2012/12/05(水) 13:36:16.15ID:???
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇

PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
0374nobodyさん2012/12/05(水) 14:30:56.04ID:???
いい加減その糞ブログの宣伝やめろカス
0375nobodyさん2012/12/05(水) 14:40:37.07ID:???
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇
PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
0376nobodyさん2012/12/05(水) 14:54:21.10ID:???
どうせならurl貼るべき
0377nobodyさん2012/12/05(水) 15:00:13.25ID:???
>>376
ここのヤツらが荒らしてるんだよ
【PHP】気軽にPHP質問スレ
http://kohada.2ch.net/test/read.cgi/php/1343015189/

837 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 12:37:35.10 ID:???
「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い
ttp://blog.livedoor.jp/dankogai/archives/50993137.html

838 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 12:56:34.85 ID:???
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇

PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。

839 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 13:31:29.07 ID:???
相変わらずPHP叩くやつは粘着だな。

840 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 13:35:03.79 ID:???
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇
PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
0378nobodyさん2012/12/05(水) 22:34:49.86ID:uNgx55hD
【質問内容】
ページを開いたときに表示する内容がランダムに決まるプログラムを作りたいです。
<div style="font-size:32px;">
<?php
$no = rand(1, 5);
switch ( $no ){
case 1:
$msg = "まいどおおきに";
break;
default:
$msg = "どうも、どうもです。";
}
echo $msg;
?>
</div>

このコードを以下のように修正しましたところ、"echo $msg"と表示されました。

<?php
$no = rand(1, 5);
switch ( $no ){
case 1:
$msg = "まいどおおきに";
break;
default:
$msg = "どうも、どうもです。";
}
?>
<div style="font-size:32px;">
echo $msg;
</div>
スタイルを設定するのは分を表示する所だけで良いじゃないかと思い、このような事をしています。なぜ、"echo $msg"とそのまま表記されるのですか?
0379nobodyさん2012/12/05(水) 22:43:45.58ID:???
echoはphpの言語構造だから
<?php echo $msg; ?>
0380nobodyさん2012/12/05(水) 23:07:41.07ID:uNgx55hD
>>379

説明ありがとうございます
0381nobodyさん2012/12/06(木) 02:39:51.57ID:???
>>380
可愛くていい
0382nobodyさん2012/12/06(木) 04:33:36.92ID:???
かわい子ちゃんを、PHP地獄から救い出して他の素晴らしい言語の世界を勧めるのが、僕らの使命
0383nobodyさん2012/12/06(木) 12:09:40.45ID:???
こういう謎の使命感に溢れてるヤツの方がキモいわ
0384nobodyさん2012/12/07(金) 00:50:12.75ID:klW3K1/S
phpでfaviconを生成し
HTML側で
<link rel="shortcut icon" href="?content=value" />
といったタグで読み込んでますが、ChromeやFirefoxでは表示されるものの
Internet Explorerでだけ表示されません。
拡張子が.icoでないと読み込まないのかと思いきや、
試しにfavicon.icoファイルをtest.png等にファイル名変更し、
PHPを使わず直接
<link rel="shortcut icon" href="test.png" />
としたらInternet Explorerでも読み込めました。
なので、ファイル名が原因ではなさそうなのですが、
何が原因かどなたかご教示下さい。
なお、phpでは念のため、以下のようなヘッダも出力してます。
Content-Disposition: attachment; filename="favicon.ico"
Content-Type: image/x-icon; name="favicon.ico"

IEのバージョンは9.0です。
0385nobodyさん2012/12/07(金) 00:55:19.34ID:???
俺わかるけど答えてやんねー
0386nobodyさん2012/12/07(金) 01:32:39.13ID:???
>>385
分かるんでしたらよろしくお願いします。
0387nobodyさん2012/12/07(金) 04:28:51.92ID:RkD6YFRt
PHP関係ない

IE ファビコン 表示されない

で検索
0388nobodyさん2012/12/07(金) 07:16:26.27ID:???
>>387
Windows形式のiconにもなっているようです。
デスクトップで表示できました。
他にも原因があるのでしょうか?
0389nobodyさん2012/12/07(金) 08:45:54.92ID:???
混んてんと体ぷ
0390nobodyさん2012/12/07(金) 08:59:16.65ID:???
>>388
検索結果の上から5個ぐらいは全部読め
0391nobodyさん2012/12/07(金) 18:31:11.59ID:ziDoG41n
GETで取得する際、値が整数かどうか調べたいです。
is_intだとフォームからの入力を受け付けず、
is_numericだと小数点が含まれている場合もTRUEを返してしまいます。
どのように行えばよいでしょう?
0392nobodyさん2012/12/07(金) 18:41:22.52ID:???
正規表現
0393nobodyさん2012/12/07(金) 20:20:01.12ID:???
ctype_digit
0394nobodyさん2012/12/07(金) 20:43:10.73ID:???
ctype_digitって数字以外は弾くんですね
幸い自然数なのでこれを使用しようかと思います。
>>392,393さん
ありがとうございました。
0395nobodyさん2012/12/07(金) 20:54:52.33ID:???
頭0で通してよければな
0396nobodyさん2012/12/07(金) 21:35:27.74ID:???
>>394
伍萬弐千参百壱
とかの漢数字は弾かれちゃうけどそんなんでいいの?
0397nobodyさん2012/12/07(金) 21:44:28.04ID:ziDoG41n
>>396
じゃあお前
漢数字を含む場合もTRUE返す手段書いてくれよ
0398nobodyさん2012/12/07(金) 21:46:31.90ID:???
http://www.akatsukinishisu.net/kanji/kansuji.html
文字コードに含まれてない漢字とかもあるから現実的じゃないな
0399nobodyさん2012/12/07(金) 22:07:35.95ID:???
>>397
荒しに乗るのも荒し行為です。考えてスルーしてください。
0400nobodyさん2012/12/07(金) 22:10:03.15ID:???
>>397
$num = get_number_from_kanji($_GET['num']);









そんな関数ねーけどw
0401nobodyさん2012/12/07(金) 22:21:51.36ID:???
get_number_from_kanji (PHP5 >= 5.3)
0402nobodyさん2012/12/07(金) 23:10:54.76ID:pCtXAQSD
配列は["name"=>"yamada","sex"=>"m"]の用に一度に定義出来ますが
stdClassで同じような書き方をするにはどうしたらよいのでしょうか
0403nobodyさん2012/12/08(土) 00:00:59.43ID:YANMBvR5
すいません、教えてください
こんなコードを書いてます。
switch ($param) {
case "big-qrcode": show_qrcode(300);break;
case "small-qrcode": show_qrcode(150); break;
default : show_form();break;

}

default :の後に全角の空白を入れるとFatal ERROR というものが出ました。
半角の空白にするとエラーは無くなります。
どうして、全角の空白を入れるとエラーになるのでしょう?
0404nobodyさん2012/12/08(土) 00:45:40.49ID:???
>>402
配列を渡せるようにしろ

>>403
PHPが欠陥だらけのゴミ言語だから
■ このスレッドは過去ログ倉庫に格納されています