【PHP】下らねぇ質問はID出して書き込みやがれ 96
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/05/28(金) 16:33:44ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
004644
2010/05/31(月) 16:15:07ID:???テンプレートみたいな使い方をしたいんです
設定部分やデザインなんかの記述をしてます
$a="<css--・・・・
$b="ようこそ";
みたいな感じですね。
アクセス数はかなり多いのでどんなものかと思いまして
0047nobodyさん
2010/05/31(月) 16:22:33ID:???オープンソースのCMS見りゃ分かるが個別に分けてるものなんてないよね
0048nobodyさん
2010/05/31(月) 16:25:07ID:???0050nobodyさん
2010/05/31(月) 17:12:47ID:GblyjBgz民主党の小沢一郎幹事長は12日、ソウルの国民大学で講演後、約250人の学生と
日本人について語り合った。学生から、多くの日本人が学校にも通わず、仕事にも
就かないニートについて聞かれ、小沢氏は「日本のニートの現状はみんな親が悪い。
日本人の親は学校にも行かないで、仕事もしないぶらぶら遊んでいる子供を食べさせ
ている」と持論を披露した。
小沢氏は「学校にも行かない無職の子どもを責める前に、日本人の親達は子供を
甘やかしている。親に民族教育をしっかりしないといけない」と主張した。「日本人の
若者は漠然と他人に寄生し寄生虫として生きているとんでもない害虫だ」とした。
「もともと日本人の親達もどうかしている。日本人は動物にも劣る民族といっても
過言ではない」とした。「日本人はもともと民度が劣るから、君達韓国人のような
優秀な民族の血を日本人に入れない限り、他人やアジアに寄生して生きる害虫日本人
が増えるだけだ」とした。日本の古代歴史についても「韓半島南部の権力者が日本の
国家を樹立したもの」と述べた。・・・・( ソウル発外電 2009/12/13)
【トンデモ史観】小沢一郎・韓国講演
ttp://www.youtube.com/watch?v=uX7xFMvCly8&feature=youtube_gdata
【売国】小沢一郎幹事長言行録
ttp://www.youtube.com/watch?v=NXjgD4jb_Jg&feature=channel
0051EM114-48-95-102.pool.e-mobile.ne.jp
2010/05/31(月) 23:42:10ID:dCMCj0N4質問あげ
0052nobodyさん
2010/06/01(火) 07:26:04ID:qOSq8mL1"src" => ここ,
"folder" => "folder/",
"size" => 120
);
そこに配列の格納された変数を指定したいんですが、
どうすればいいのでしょうか
0053nobodyさん
2010/06/01(火) 08:11:26ID:???そこってどこだ?こういうこと?
<?php
$option = array (
"src" => 'ここ',
"folder" => "folder/",
"size" => 120
);
var_dump($option['src']);
string(6) "ここ"
0054nobodyさん
2010/06/01(火) 08:29:02ID:qOSq8mL1わかりにくい書き方してすいません。
こういうことがしたいんです。
$hairetu = array ('aaa', 'bbb', 'ccc');
$option = array (
"src" => $hairetu,
"folder" => "folder/",
"size" => 120
);
配列のうちの一つを指定するなら、$hairetu[0]などで可能なんですが
配列に含まれるすべての値を指定したいんです。foreachでループさせるときのように。
0055nobodyさん
2010/06/01(火) 09:34:11ID:???foreach( $option["src"] as $var ) {
print $var;
}
0056nobodyさん
2010/06/01(火) 09:41:23ID:???0057nobodyさん
2010/06/01(火) 11:11:13ID:qOSq8mL1すいません、自己解決しました。
foreachループの中に入れたらうまくいきました。
どうもお騒がせしました。
0058nobodyさん
2010/06/01(火) 17:52:51ID:k/zNPSvjdisplay_errors Offのまま、
特定のディレクトリのスクリプトだけ表示させるという方法はないでしょうか?
0059nobodyさん
2010/06/01(火) 18:01:26ID:???0060nobodyさん
2010/06/01(火) 18:07:39ID:???文字列の".01"が帰ってきます。
"0.01"を取得するにはどうすればよいですか?
0061nobodyさん
2010/06/01(火) 18:26:56ID:???$comにhogeが入ってる場合NGワードが入ってますというエラー文を出すにはどうすればいいのでしょうか
0062nobodyさん
2010/06/01(火) 18:29:03ID:???0063nobodyさん
2010/06/01(火) 18:30:18ID:???0065nobodyさん
2010/06/01(火) 19:50:51ID:6jzz/jSkよく分かりませんでした。
$rcd = ereg_replace("\./", "", $filename22);
$dr6 = ereg_replace("\./", "", $thum);
↓
$rcd = preg_match("(\./)", "", $filename22);
$dr6 = preg_match("(\./)", "", $thum);
これでは機能しません。どう記述したらいいでしょうか?
0067nobodyさん
2010/06/01(火) 19:55:46ID:???$dr6 = preg_match("/(¥.¥/)/", "", $thum);
左右を/で囲わないとだめ、もしくは以下のような感じ
$dr6 = preg_match("|(¥./)|", "", $thum);
0068nobodyさん
2010/06/01(火) 19:56:54ID:???0069nobodyさん
2010/06/01(火) 20:31:05ID:6jzz/jSk$dr6 = preg_match("/(\.\/)/", "", $thum);
$rcd = preg_match("|(\./)|", "", $filename22);
$dr6 = preg_match("|(\./)|", "", $thum);
$rcd = preg_match("|\./|", "", $filename22);
$dr6 = preg_match("|\./|", "", $thum);
試しましたが値は0しか帰ってきません・・・・
0071nobodyさん
2010/06/01(火) 20:45:49ID:???マニュアルみたらすぐ解決するのになぜ見ないかね
./を消すだけならstr_replaceでやればいいじゃん
0072nobodyさん
2010/06/01(火) 21:44:02ID:6jzz/jSkありがとうございました
0073nobodyさん
2010/06/01(火) 22:04:52ID:???echoの際、シングルクオテーションで囲まれた$変数はそのまま$つきで
表示されるはずなんですが、以下はなんでちゃんと、
$変数の中身が表示されるんでしょう?
echo '<a href="check.php?id='.$row['id'].'">チェック</a>'
0074nobodyさん
2010/06/01(火) 22:16:37ID:???0075nobodyさん
2010/06/01(火) 22:17:59ID:???'<a href="check.php?id=' . $row['id'] . '">チェック</a>'
なのだよ
0076nobodyさん
2010/06/01(火) 23:55:39ID:???0077nobodyさん
2010/06/02(水) 08:29:32ID:???0078nobodyさん
2010/06/02(水) 10:25:39ID:???0079EM114-48-32-41.pool.e-mobile.ne.jp
2010/06/02(水) 11:06:30ID:mhIc5LxU0080nobodyさん
2010/06/02(水) 15:28:49ID:1PsJc2A4VBで作ったものをPHP上で動作させることはできますか?
それはどのようにして実現できますか?
宜しくお願い致します
0081nobodyさん
2010/06/02(水) 15:32:01ID:???0082nobodyさん
2010/06/02(水) 15:32:50ID:1PsJc2A4値の受け渡しとかではなく、VBの画面をそのままWebアプリとして使いたいのです
フレームか何かでその部分だけはVBの部分と独立させてやれると尚いいのですが
0083nobodyさん
2010/06/02(水) 16:07:21ID:???config.inc.phpというファイルを編集すれば良いことがわかりましたが、
同名のファイルが4つあって、どれをいじればいいのかわかりません。
OSはUbuntuです。
1) /etc/phpmyadmin/config.inc.php
2) /usr/share/phpmyadmin/config.inc.php
3) /usr/share/phpmyadmin/setup/frames/config.inc.php
4) /var/lib/phpmyadmin/config.inc.php
1を編集しても効果ありませんでした。
2を編集したら時間は延びたようでしたが、元に戻ってしまったようです
(ファイルの中身はちゃんと追記されたままになってるのに)。
結局どれが正しいファイルでしょうか?
008483
2010/06/02(水) 16:09:20ID:1gJ1/kVu0085nobodyさん
2010/06/02(水) 16:29:50ID:???となってるわけでconfig.inc.phpとやら以外に原因がある可能性は?
0086nobodyさん
2010/06/02(水) 16:38:16ID:???無理、といいたいところだけど、そういうActiveX作って、PHPでそれを使うフレームを出力すればいけるのかも
0087nobodyさん
2010/06/02(水) 16:44:12ID:1gJ1/kVuそういう優先順位になってるんですね。
http://ameblo.jp/hyperdev/entry-10345093485.html
上のページを見てやってみたんですが、
「php.iniに設定した、ガベージコレクタの時間より大きくなる場合が多い」というのを防ぐために
ini_set("session.gc_maxlifetime", 18000);
っていう一行を入れてるみたいなので、問題はApacheとOSの設定ってことですかねぇ。
でも、昨日2のファイルに設定した直後はちゃんと有効だったのは何だったんだろう…。
0088nobodyさん
2010/06/02(水) 17:41:42ID:???>>75
ありがとうございます。
おっしゃられてる方法でわかったつもりで、
以下を書くとエラーで怒られてしまいました・・・。
print '<a href='."$_SERVER['PHP_SELF']".'> 削除 </a>';
ほんとは上の文章が動作していたら、
?をつけてGetで変数を送りたいのですが、
?をつける以前につまづいてしまいました・・・
お助けください。
0089nobodyさん
2010/06/02(水) 17:55:17ID:???print '<a href=' . $_SERVER['PHP_SELF'] . '> 削除 </a>';
あと$_SERVER['PHP_SELF']の部分がソース名(php名)をひっぱってきたいだけなら
$_SERVER['SCRIPT_NAME']を使った方が良い
0090nobodyさん
2010/06/02(水) 18:29:44ID:???$_SERVER['PHP_SELF'] ←これもの中身も文字列
文字列同士を結合するために . (ドット)を使われるんだよ。
正しく書くと、
print '<a href=" . $_SERVER['PHP_SELF']. "> 削除 </a>';
となる。
hrefのクォートはシングルじゃなくてダブルね。
というか、リンク先を自分と同じスクリプトにするなら $_SERVER['PHP_SELF'] すら要らんよね。
クエリ文字を付けたリンクにしたいなら↓こんな感じ。
print '<a href="?del=1"> 削除 </a>';
あと余談だけど、ダブルクォーテーションの中に変数を入れる場合は
変数を { } で囲む癖をつけておいたほうがいいよ。
009190訂正
2010/06/02(水) 18:56:09ID:???これもの中身も文字列
↓
これの中身も文字列
文字列同士を結合するために . (ドット)を使われるんだよ。
↓
文字列同士を結合するために . (ドット)が使われるんだよ。
print '<a href=" . $_SERVER['PHP_SELF']. "> 削除 </a>';
↓
print '<a href="' . $_SERVER['PHP_SELF']. '"> 削除 </a>';
hrefのクォートはシングルじゃなくてダブルね。
↓
href=の後のクォートはシングルじゃなくてダブルね。
0093nobodyさん
2010/06/02(水) 22:14:08ID:D8F23o+y何で変数を{}で囲まないといけないんですか?
0094nobodyさん
2010/06/02(水) 22:39:11ID:???0098nobodyさん
2010/06/02(水) 23:02:05ID:???>>94の言うとおり、わかりやすいっていうのが理由の一つ。
あと、{ } を付ければ前後にスペースがいらない。
例えば、次の3つを比較するとわかる。
(1) echo "ab $text cde";
(2) echo "ab$textcde";
(3) echo "ab{$text}cde";
1はOKだけど、出力結果にもスペースが入ってしまう。
2は不可。
3はOKで、スペースも入らない。
あと、速度も違うんだけど、このことはあまり知られてないのかなぁ。
ちなみに、配列でキー名に ' ' を付けるのと付けないのも速度に差が出る。
009998
2010/06/02(水) 23:03:54ID:???2は不可っていうか、エラーにはならないけど期待する表示にならないってことね。
0100nobodyさん
2010/06/02(水) 23:27:40ID:???ダブルクォートとシングルクォートを使うとでも速度は違うね。
0103nobodyさん
2010/06/02(水) 23:57:58ID:yUWMqjwoTRUE判定させるにはどうしたらいいですか?
while($num=strpos(゙あかあおしろ゙,゙あが,0))
)
で一番最初の文字列にヒットした場合弾かれてしまいます。
何かいい解決法があれば、どうかご教示をお願いします。
0104nobodyさん
2010/06/03(木) 00:03:18ID:???while (($num = strpos('あかあおしろ', 'あか', 0)) !== false) {}
0106nobodyさん
2010/06/03(木) 01:25:57ID:???>>91
ありがとうございます。
print '<a href="'.$_SERVER['PHP_SELF'].'"> 削除 </a>';
は無事動きました。
href="
の部分のダブルクオテーションは文字という考え方ということですよね?
なので、
'<a href="'
という、シングルクオテーションで囲まれている
<a href="
が文字と言う考え方であってますでしょうか?
次に、変数を""というダブルクオテーションで囲むと、
その囲まれてる変数は展開されるという認識の下、以下にしてみるとダメでした。
print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
今回、a href=の後のクオートがもともとのHTMLの仕様では、
ダブルクオテーションであり、そのあとに、変数を囲むダブルクオテーションが続くと
何か問題が出てしまうのでしょうか?
さらに、{}で変数を囲めるということでためしてみました。
print '<a href="'{$_SERVER['PHP_SELF']}'"> 削除 </a>';
も、
print '<a href="'.{$_SERVER['PHP_SELF']}.'"> 削除 </a>';
も動きませんでした。
書き方がまちがっていますでしょうか?
0107nobodyさん
2010/06/03(木) 01:26:34ID:???HTMLの中に書くって事でスタートしてるからこうなってるんだと思うよ
つまりビュー層のハナシ
zend のコーディング規約でもシングルクオートで変数は連結しろとかなかったっけ?
他言語の使い手にも読みやすいって事まで考えてそうなってると思うんだけどな
0108nobodyさん
2010/06/03(木) 01:35:04ID:???<a href="
が文字と言う考え方であってますでしょうか?
あってる
print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
では,"$_SERVER['PHP_SELF']" のパースができない(だったような
print '<a href="' . "{$_SERVER['PHP_SELF']}" . '"> 削除 </a>';
なら動くと思う。
素直に
print '<a href="' . $_SERVER['PHP_SELF'] . '"> 削除 </a>';
でいいじゃんかよ
ちゃんとエスケープもしろよ?歯も磨けよ?
0109nobodyさん
2010/06/03(木) 01:35:14ID:???> '<a href="'
> という、シングルクオテーションで囲まれている
> <a href="
> が文字と言う考え方であってますでしょうか?
あってる。
> 次に、変数を""というダブルクオテーションで囲むと、
> その囲まれてる変数は展開されるという認識の下、以下にしてみるとダメでした。
> print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
print '<a href="'."{$_SERVER['PHP_SELF']}".'"> 削除 </a>';
にしてみて。
> print '<a href="'{$_SERVER['PHP_SELF']}'"> 削除 </a>';
.が無いし、{}が不要。
> print '<a href="'.{$_SERVER['PHP_SELF']}.'"> 削除 </a>';
{}が不要。
0110nobodyさん
2010/06/03(木) 01:36:35ID:???$_SERVER['PHP_SELF']はセキュリティ上の問題があるのでHTMLとして出力する物には使わない
$_SERVER['SCRIPT_NAME']またはbasename(__FILE__)で代用
0111nobodyさん
2010/06/03(木) 01:40:41ID:???<a href=""> 削除 </a>
でいけるやん
0112nobodyさん
2010/06/03(木) 03:47:38ID:???0113nobodyさん
2010/06/03(木) 05:12:55ID:???//ダブルの場合
echo "こんにちわ、{$name}さん。";
//シングルの場合
echo 'こんにちわ、' . $name . 'さん。';
0114nobodyさん
2010/06/03(木) 05:28:29ID:XbPCpr1kありがとうございます。
もうひとつお伺いしたいのですが、文字列の指定位置に文字列を挿入する場合の関数はありますか?
substr_replaceの使用を考えたのですが、置き換え文字数を0に指定するとうまくいきません。
1以上にして置き換え後の文字列に消した文字を含ませるのもスマートではない気がします。
どうかよろしくお願いします。
0116nobodyさん
2010/06/03(木) 07:28:03ID:???0117nobodyさん
2010/06/03(木) 07:36:18ID:LdZGbuVn文字化けせずに表示できているのはどういった仕組みなのでしょうか。
よろしくお願いいたします。
0119nobodyさん
2010/06/03(木) 08:12:37ID:LdZGbuVnmb_convert_encoding autoとかででしょうか?
0120nobodyさん
2010/06/03(木) 08:26:57ID:???0122nobodyさん
2010/06/03(木) 12:10:17ID:???おめ。
どうやって勉強してるかわからないけど、
今の知識だとセキュリティ対策が十分にできないと思うから
本とか読んで学んだほうがいいよ。
0123nobodyさん
2010/06/03(木) 15:18:39ID:???元の質問者とは別人ですが、便乗して質問させてください
$_SERVER['PHP_SELF']より$_SERVER['SCRIPT_NAME']のほうが安全ということですが、
$_SERVER['SCRIPT_NAME']を使ってもエスケープは必要なんでしょうか?
0125nobodyさん
2010/06/03(木) 16:51:43ID:???なぜ危険/安全なのか理解してる?
「php_self script_name」で検索すれば比較してるサイトがいっぱいでてくるよ
0126nobodyさん
2010/06/03(木) 16:55:55ID:???>第1章 総論
>より良いWebアプリケーション設計のヒント
>(1) プログラミング言語の選択
>1) 例えば、PHPを避ける
0127nobodyさん
2010/06/03(木) 17:15:09ID:???> 誰にレスをしたんだ?
主に>>108の「ちゃんとエスケープもしろよ」へのレスです。
>>125
はい、$_SERVER['PHP_SELF']のほうをそのまま出力すると
JavaScriptを仕込まれてしまう可能性があるということですよね?
なので、エスケープする理由はわかります。
お尋ねしたいのは、_SERVER['SCRIPT_NAME']でもエスケープする必要があるのかということです。
SCRIPT_NAMEにはPHP_SELFのようなXSSの脆弱性はないと思ってたんですが、
何か特殊な方法による攻撃の対象になることがあるんでしょうか?
0128nobodyさん
2010/06/03(木) 17:55:31ID:???http://www.php.net/manual/ja/reserved.variables.server.php
'PHP_SELF'
現在実行しているスクリプトのファイル名です。
ドキュメントルートから取得されます。
例えば、http://example.com/test.php/foo.bar というアドレス上にあるスクリプトでは
$_SERVER['PHP_SELF'] は /test.php/foo.bar となります。
'SCRIPT_FILENAME'
現在実行されているスクリプトの絶対パス
0129nobodyさん
2010/06/03(木) 17:57:58ID:OUHRb8myクライアントにバイナリデータを送るときに
fopenとfreadをとechoを使ってるんですが、
クライアント側からはバイナリデータが壊れていると
言われたりしています。
freadってバイナリセーフな関数なんですよね?
何か他に注意すべきところがありますか?
0131nobodyさん
2010/06/03(木) 18:13:58ID:iSHgRF9v.soをextension_dirで登録する動的?タイプのモジュール。
後者はコンパイルなんかのコスト分遅いっていう認識はあってますか?
0132nobodyさん
2010/06/03(木) 18:15:38ID:iSHgRF9v○前者はコンパイルなんかのコスト分遅いっていう認識はあってますか?
×後者はコンパイルなんかのコスト分遅いっていう認識はあってますか?
0135nobodyさん
2010/06/03(木) 20:02:16ID:???requireやincludeは外部ファイルのスクリプトを読み込むもの。
extension_dirなどの拡張モジュールは、
Cなどの低級言語で書かれているのでPHPより高速で、当然にコンパイルされているので速い。
0136nobodyさん
2010/06/03(木) 20:22:42ID:???PHPスクリプトにBOMが付いてないかい
こういう問題はHTTPをモニタリングするツールを入れて
実際に送られたヘッダとデータを確認するのがいいんだが
0137nobodyさん
2010/06/03(木) 21:00:55ID:???先ほど自己解決しました。
おそらく・・なんですが。
サーバ側のファイルとクライアントでダウンロードしたファイルを
比較したところ、クライアント側には行頭に改行コードが入ってました。
そのせいでファイルサイズも1バイト分差異がありました。
対策としてサーバ側のスクリプトファイルの
不要な改行コードを削除しました。
<?
--色々なロジック--
?>
←この辺りの不要な改行コードを削除。
そうしたところ、こちらが意図するとおりにファイルを
送ることが出来ました。
どうもありがとうございました。
0139nobodyさん
2010/06/03(木) 21:30:19ID:???ttp://jp2.php.net/manual/ja/function.php-sapi-name.php
0140nobodyさん
2010/06/03(木) 21:56:52ID:???XML吐く時に同じ事食らったよ
以来終了タグ ?> は書かなくなった
zend framework のコーディング規約でも書くなってなってる
0142nobodyさん
2010/06/04(金) 02:08:52ID:???コード補完してくれて,定義済みのうユーザー定義関数もアシストしてくれるような定番があれば是非知りたいです
MySQLのクエリも同時に書くのでそれも補完アシストしてくれたりしたら最高ですがそんなのってあるんでしょうか?
開発効率が格段にあがるのでしたら有料でも全然かまいませんので お願いします
ちなみに今は秀丸で書いてます
0143nobodyさん
2010/06/04(金) 02:19:59ID:???0144nobodyさん
2010/06/04(金) 02:26:29ID:???0145nobodyさん
2010/06/04(金) 02:36:38ID:???早いうちから使っといた方がいいよ
秀丸でもマクロで多少のカスタムはできるんじゃなかったっけ
使ったことないから知らないけど
■ このスレッドは過去ログ倉庫に格納されています