【PHP】下らねぇ質問はID出して書き込みやがれ 112
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/10/31(月) 05:11:09.81ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0797nobodyさん
2011/11/23(水) 14:56:29.71ID:???手軽なのはやっぱり拡張子でわける方法だよね。
試したこと無いけど,htaccessでAddTypeで切り替える?
>>786
>初心者向けとしてNGなら納得はできるな
でもそれ上級者とかプロ向けとかも書かれている。
そのプロ向けのZendStudioなんてプロ向けと言うよりキワモノ向けの気がする。
0798nobodyさん
2011/11/23(水) 14:59:02.30ID:???Zend Debbuger?xdebug?
自分は現在はxdebugを利用している。
0799nobodyさん
2011/11/23(水) 15:17:05.82ID:???$data = file("対象ファイル");
foreach ($data as $line) {
echo rtrim($line) . "\n";
}
いまさらだけどね。
最速かどうかはわからん。
0800nobodyさん
2011/11/23(水) 15:25:54.18ID:???$a="〜";
$b=file($a,FILE_IGNORE_NEW_LINES);
$c=implode("\n", $b);
0801nobodyさん
2011/11/23(水) 15:32:10.45ID:???var_dump();
echo 'passed check point ?'; // ? は適当な数字
だけですましてる。
0802nobodyさん
2011/11/23(水) 15:39:10.42ID:???0804nobodyさん
2011/11/23(水) 19:33:34.32ID:???【PHPのバージョン】5.3.8 (XAMPP 1.7.7)
【連携ソフトウェア】MySQL
【質問内容】
基本的なことですが、
PHPで生成されるウェブサイトを表示したユーザーには
PHPのソースが見えることはありませんか?
障害発生時でも見えませんか?
言うまでもありませんが、変数名やデータベース名などが見えると
セキュリティ上まずいので。
0805804
2011/11/23(水) 19:34:03.70ID:9QlOj3Cf0806nobodyさん
2011/11/23(水) 20:18:11.71ID:???人為的ミス、サーバーのアップデート時とかCGIだとパーミッション設定ミスなどで
ソースが見れたケースは過去に何度か経験あるので絶対に見れないとは言わない。
それよりもエラー表示を隠し忘れていて情報晒しているサイトならよくみかけるw
0807804
2011/11/23(水) 20:53:18.61ID:9QlOj3Cfミスやセキュリティホールは仕方ないですね。
仕様では「見えない」と承知しました。
ありがとうございます。
0808nobodyさん
2011/11/23(水) 21:21:22.49ID:???そんな仕様ない
「見えない」ように鯖で設定しないとダメ
0810804
2011/11/23(水) 21:34:21.21ID:9QlOj3Cfhoge.php
で生成されたページを表示したいが、ソースは見せたくないときは
hoge.phpを見えない場所に置いてページを表示させるには
どのようにするのが適切でしょうか。
0812nobodyさん
2011/11/23(水) 21:43:23.90ID:???公開ディレクトリにあるスクリプトは非公開ディレクトリのスクリプトを読み込むことができるので。
0813nobodyさん
2011/11/23(水) 21:45:24.00ID:???問題は人為的なミスなどって考えないのかな?
それと
>見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
レンタルサーバによってはそのFTPで接続できるのがそのドキュメントルート以下って事もあることを理解できないのかな?
0814804
2011/11/23(水) 21:50:51.45ID:9QlOj3Cfhoge.phpから../mienai/mienai.phpを実行すればいいわけですね。
>>811
すみません。ピンとこないので精進します。
>>813
そういう仕様のサーバもありそうですね。
0815nobodyさん
2011/11/23(水) 21:51:41.50ID:???管理できる人間はアクセスして盗み見ることができるからソースコードを暗号化しないといけないな
キリがない事は言わないように
0816nobodyさん
2011/11/23(水) 21:55:17.36ID:???kwsk
0817nobodyさん
2011/11/23(水) 21:55:32.44ID:???そのレンタルサーバを使うのがよくない。
>>815
ヒューマンエラーによる問題発生時にいかに被害を抑えられるかという話だろ
0818804
2011/11/23(水) 21:56:50.89ID:9QlOj3Cfサーバで「見えない」設定をすれば見えない仕様ということですね。
Apacheのhttpd.confに
AddType application/x-httpd-php .php
と書いておけば「ソースは見えない」という意味ですよね?
0820nobodyさん
2011/11/23(水) 22:00:03.45ID:???レンタルサーバでpublic_html外に置けないなんて無料サーバぐらいじゃね
あなたは無料サーバしか使ったことないような人?
0823nobodyさん
2011/11/23(水) 22:11:13.17ID:???アンカー一つまともにつけれない君の書き込みの何処を信用しろと?
この状態を勝手に推測すると
>>819=>>820?
で、819って名前の所に書いてあるのは実は820って書くつもりだった?
どっちにしてもおまえは馬鹿だと言うことは理解できた。
0824nobodyさん
2011/11/23(水) 22:12:12.44ID:???0825nobodyさん
2011/11/23(水) 22:15:05.66ID:???・ドキュメントルートに置くのは無駄派と有効派の戦い
続き再開
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
0826nobodyさん
2011/11/23(水) 22:18:58.55ID:???直接ファイルを覗いてほしくない場合は.htaccessでdeny from allを使っておけ。
でも.htaccessが使えるサーバかどうかもサーバのようによって違うから注意。
エラーは非表示にしておけ。
0827nobodyさん
2011/11/23(水) 22:19:42.24ID:???はい、ではドキュメントルートの上に置かない方法を書いてください
もちろん書けますよね
よろしくお願いしますね^^
0828nobodyさん
2011/11/23(水) 22:21:41.21ID:???へぇ〜ドキュメントルートの上に置くのはダメでhtaccessだとOKなんですね
後、やたら認定してるのは自分に味方を付けないと心細い証拠かね?
0829804
2011/11/23(水) 22:22:31.10ID:9QlOj3Cfやはりエラーが非表示は基本ですか。
Notice: Undefined index: number in C:\xampp\htdocs\hoge.php on line 2
Notice: Undefined index: name in C:\xampp\htdocs\hoge.php on line 3
Notice: Undefined index: nyukin in C:\xampp\htdocs\hoge.php on line 4
Notice: Undefined index: zandaka in C:\xampp\htdocs\hoge.php on line 6
などと表示されると別のところからPOSTされて残高を勝手に増やされそうな
気がしたので。
0830nobodyさん
2011/11/23(水) 22:24:48.66ID:???それはアンカーすらまともにつけれないアホ。
>後、やたら認定してるのは自分に味方を付けないと心細い証拠かね?
もうばれて必死www
>へぇ〜ドキュメントルートの上に置くのはダメで
駄目とは一言も書かれてない気がする。
妄想癖がつよい人みたい。
0831nobodyさん
2011/11/23(水) 22:27:14.27ID:???テスト環境は表示で良いんだよ。
ただ本番サーバは非表示にしてエラーはファイルとしてログ出力するようにしておく。
>Notice: Undefined index
>などと表示されると別のところからPOSTされて残高を勝手に増やされそうな
wwwww
もう駄目としか・・・・
0832nobodyさん
2011/11/23(水) 22:28:26.78ID:???Notice: Undefined indexがでるソースを書いている時点でもう馬鹿としか言いようがない。
しっかりチェック処理しろよww
0833804
2011/11/23(水) 22:32:44.93ID:9QlOj3Cfありがとうございます。
その前のページ(html)からpostされたデータを処理するphpですが、
PHPだけで実行するとそうなりました。
0834nobodyさん
2011/11/23(水) 22:35:55.24ID:???>その前のページ(html)からpostされたデータを処理するphpですが、
>PHPだけで実行するとそうなりました。
ならねーーーーよ。
しっかりとチェック処理してない証拠。
最低限isset()は使ってチェックしろよ。
0835804
2011/11/23(水) 22:41:32.24ID:9QlOj3Cf入力値のチェックですね。
まずは動くかどうかというレベルなので…
これから入れます。
0836804
2011/11/23(水) 22:42:00.79ID:9QlOj3Cf入力値のチェックですね。
まずは動くかどうかというレベルなので…
これから入れます。
0837nobodyさん
2011/11/23(水) 22:42:15.72ID:???自分がphpで作成したwebページで、parse_ini_fileを使って、
hoge.iniというファイルから設定データを読みこんでいます。
hoge.iniを変更しても、時々parse_ini_fileで変更前のデータが読まれることがあります。
どのような原因が考えられるでしょうか?また対処方法はありますか?
よろしくご教示お願いいたします。
0838837
2011/11/23(水) 22:48:06.53ID:x/DZrHIk0840nobodyさん
2011/11/23(水) 23:51:05.42ID:???0841nobodyさん
2011/11/24(木) 00:26:28.39ID:???デフォルト値が決まっている引数が沢山ある関数、例えばmktimeの様な関数は
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
後の方にある引数を指定だけ指定したくてもそれが出来ずに、引数を全部指定する必要がありますよね。
この場合は$is_dstだけ指定したい時があっても、第一引数から順番に指定しなければいけません。
この場合は、引数を配列にして
mktime(array("is_dst"=>1));と指定出来たら順番を気にする事無く便利だと思い、
自作関数の引数はこの配列のタイプで書こうかな。と思っているのですが、この方式の欠点というのがあれば教えて欲しいです。
組み込み関数でmktime(array("is_dst"=>1));の様な指定が出来る関数は(ほぼ?)無いと思うのですが
この方式には何か欠点があるのでしょうか。
0842841
2011/11/24(木) 00:28:10.08ID:FvXT6b8c0843nobodyさん
2011/11/24(木) 00:37:52.27ID:???http://jp2.php.net/manual/ja/ref.funchand.php
可変長引数でうまくやってる感じはする
0844nobodyさん
2011/11/24(木) 00:40:12.02ID:???0846nobodyさん
2011/11/24(木) 00:45:02.73ID:???たいして指定も気にならない
mktimeのis_dstに限っちゃ5.1から廃止されてるしな
0847nobodyさん
2011/11/24(木) 00:47:35.39ID:???0849nobodyさん
2011/11/24(木) 05:38:33.55ID:???$msg .= " File Size: " . @filesize($upload_name);
という記述があったのですが、filesizeは@なんて付けると
phpマニュアルには載ってません。
$msg .= " File Size: " . filesize($upload_name);でも
問題なく動いてます。
@は何のためについているのですか?
0851nobodyさん
2011/11/24(木) 11:24:33.95ID:???0852nobodyさん
2011/11/24(木) 11:36:07.10ID:???0853nobodyさん
2011/11/24(木) 11:38:09.28ID:???これ付けても構文エラーの時は表示されるんだな
0854nobodyさん
2011/11/24(木) 11:41:28.10ID:dbWHUVya実際さ、@ってどれくらいの頻度でつかってる?orどーゆーときに使ってる?
自分はもうクセで、基本的にissetとかでUndefinedの判断とも入れてるから、ほとんど使わないんだけど
使うタイミングとか教えてくれたらウレシス
0855nobodyさん
2011/11/24(木) 12:01:37.50ID:???あと気が向いたら0で割るなぼけ!といわれる場面の一時しのぎにw
0856nobodyさん
2011/11/24(木) 12:07:59.73ID:???ローカルのファイルでファイルがない場合は新規作成するモードならいらないすか
0857nobodyさん
2011/11/24(木) 12:15:23.16ID:???0858nobodyさん
2011/11/24(木) 12:33:45.25ID:???0859nobodyさん
2011/11/24(木) 13:31:39.15ID:???不思議な日本語を読むときに @ を入れてるかな…
0860nobodyさん
2011/11/24(木) 14:57:50.20ID:oV1VI/p5final int yOffset = -1942;
final int mOffset = 65;
Date date = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH);
char yc = (char)(y + yOffset);
char mc = (char)(m + mOffset);
以上JAVAのソースです。
これをPHPで同じことをしたいのですが最後の二行のキャストでの
数字→アルファベットへの文字変換をどうしたらよいのかわかりません。
よろしくお答え願います(T_T)
0861nobodyさん
2011/11/24(木) 15:07:43.50ID:???0862nobodyさん
2011/11/24(木) 15:46:54.67ID:???アルファベットじゃねーけど。
0863860
2011/11/24(木) 16:00:19.02ID:oV1VI/p5すみません初心者なもので何ができないかの判断もつけがたいです
0864860
2011/11/24(木) 16:11:49.75ID:oV1VI/p5ありがとうございます。試してみます
0865nobodyさん
2011/11/24(木) 16:14:27.92ID:???Calendar.MONTHは 0-11だから65足した文字コードなんで
AからL
0866860
2011/11/24(木) 16:41:25.32ID:oV1VI/p50867860
2011/11/24(木) 16:57:51.46ID:oV1VI/p5またJAVA→PHPの変換作業なんですが、
getBytes("Shift-jis")というのをPHPでどうやったら表せますか?
0868nobodyさん
2011/11/24(木) 16:59:32.38ID:???0869nobodyさん
2011/11/24(木) 17:01:48.81ID:???わからないんだったらちゃんとわかりませんって額に地面こすりつけて謝れ
0870nobodyさん
2011/11/24(木) 17:13:33.03ID:???0871nobodyさん
2011/11/24(木) 17:27:29.89ID:???一部で有名な最近暴れているPHP教えて君&お礼や返信なしで質問連続立て&逆ギレ。
確認できているだけでもPHPPro,OKWave,Yahoo知恵袋の大手で暴れている。
0872nobodyさん
2011/11/24(木) 17:34:25.15ID:???文字コードは必要ならshift-jisに変換後な
0873860
2011/11/24(木) 17:56:52.94ID:oV1VI/p5mb_convert_encodingでエンコードしてから
unpack("C*",$str);でいけました!
助かりました(^o^)
0874nobodyさん
2011/11/24(木) 22:00:13.17ID:SvbOG3Rxsort()関数だけでは、あいうえお順になるだけで、その他の関数で上記のようなものを見つけられませんでした
0875nobodyさん
2011/11/24(木) 22:13:38.12ID:???0876nobodyさん
2011/11/24(木) 22:14:35.70ID:???計算量はかなり膨れると思う
0877nobodyさん
2011/11/24(木) 22:49:20.59ID:SvbOG3Rx>>875さんの教えてくれた関数も駆使して自分で作らないといけないようですね
以前JavaScriptでにたようなのがあったような気がするのですが・・・
作り方をど忘れしてしまいました
今ざっと考えてみたのですが難しいですね
ちっとも作り方のアイデアが浮かんで来ません
array_count_values()を使うと出現回数は求められるようですが、
それを単純にsort()すると数字だけのソートになりますし
0878nobodyさん
2011/11/24(木) 22:57:50.34ID:???その為の関数が array_multisort()
http://php.net/manual/ja/function.array-multisort.php#example-4383
<?php
$list = array('1unko', '2chinko', '3manko', '2chinko', '3manko', '2chinko');
$weights = array_count_values($list);
$sort_keys = array_map(function ($v) use ($weights) { return $weights[$v]; }, $list);
array_multisort($sort_keys, SORT_DESC, SORT_NUMERIC, $list);
var_dump($list);
0879nobodyさん
2011/11/24(木) 23:04:35.59ID:Ed0cMJSk「お」と「か」の間に'<br>'を挿入したいのですがどうしたらいいですか?
0880nobodyさん
2011/11/24(木) 23:06:00.39ID:SvbOG3Rxおぉぉぉ!
ありがとうございます
今、array_count_values() -> arsort() のような事を試していました
listの値はともかくとして(笑)、教えていただき本当にありがとうございました
0882880
2011/11/24(木) 23:21:57.84ID:SvbOG3Rx日本語のようなマルチバイトでは上手くいきませんでした
振り出しに戻った感じがします(苦笑)
マルチバイト、難しい・・・
0883nobodyさん
2011/11/25(金) 00:17:52.06ID:???0884nobodyさん
2011/11/25(金) 11:07:07.03ID:Vtscy08p$www .="";
$www .=12;
などのように.を付ける代入は何を表してるのですか?
0885nobodyさん
2011/11/25(金) 11:10:58.30ID:???0886nobodyさん
2011/11/25(金) 12:22:00.00ID:Vtscy08pありがとうございます。
www=www+1;というC言語等でよくある意味なんですね。
0887882
2011/11/25(金) 14:03:13.02ID:???うまくいきます?
自分の配列は全部日本語が格納されておりまして、それをarray_multisort() やarray_count_values()のようなものを使ってみたのですが、上手くいきませんでした
確か日本語をどんどんarray_push()で格納していった配列だった気がするのですが
自分、PHP5.3.8です
0888nobodyさん
2011/11/25(金) 14:38:35.77ID:???すくなくとも上の例でウチでは動く
0889nobodyさん
2011/11/25(金) 14:54:15.77ID:WdRVkcPU【PHPのバージョン】5.1.6
【連携ソフトウェア】特になし
【質問内容】
functionについて質問です。
function sample($post, $get)
としたときに$testや$getが空だと当たり前ですがエラーが出ます。
$postや$getは既存のシステムのもので、空の場合や値が入っている場合があり一定していません。
function の引数定義時にissetでも使えればいいんですが、そういったことは出来ませんでした。
この時に$postや$getが空の場合でもエラーにしない方法はありますか?
0890nobodyさん
2011/11/25(金) 14:58:07.25ID:???>空だと当たり前ですがエラーが出ます
そんなことはありません。
0891nobodyさん
2011/11/25(金) 15:01:11.28ID:???なんか勘違いしていると思うわ
function sample($post = null, $get = null)
こんな感じの事がやりたいのかな?
0892889
2011/11/25(金) 15:08:41.55ID:WdRVkcPU回答ありがとうございます。
ちょっと原理はまだ理解できておりませんが、やりたかったことが>>891で出来ました。
$postにnullが入るので中身が無くなる?ようにも見えるのですが、nullの場合は扱いが異なるのでしょうか。
とは言えこれで目的の事ができました。
ありがとうございます。
0893nobodyさん
2011/11/25(金) 15:11:44.87ID:???> 確か日本語をどんどんarray_push()で格納していった配列だった気がする
そこ調べてみたらどうかな(苦笑)
もしくは同じ環境でちゃんとテストしてみたら
0894nobodyさん
2011/11/25(金) 15:24:08.85ID:???そんな発言をしているようだと求めている結果にはならないはず。
ソースを開示するかマニュアルを一通り読んだ方がいいぞ。
0895nobodyさん
2011/11/25(金) 15:26:22.75ID:???function chinko ($manko = null ){
return $manko;
}
//kapikapiが返る
$status = chinko('kapikapi')
// nullが返る
$status = chinko()
要するにデフォルト値ってイメージでいいと思うよ。
0896nobodyさん
2011/11/25(金) 15:32:51.64ID:???俺にはさっぱりわかんねーや。
■ このスレッドは過去ログ倉庫に格納されています