PHP上級者が集まるスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/01/14(日) 16:53:46ID:???我こそはPHPプロフェッショナルだという方の書き込みをお待ちしております。
0153nobodyさん
2010/07/09(金) 06:56:15ID:???0156nobodyさん
2010/07/10(土) 02:37:53ID:???TemplateMethodを適用する時か、
Decoratorを適用した基底クラスを作る際の移譲先を保持する時ぐらいだな。
>>155
ライブラリの外に公開するValue Objectの場合、getter/setter型にしておいた方が仕様変更に追随しやすくできるよ。
0157名無しさん@そうだ選挙に行こう
2010/07/10(土) 10:15:04ID:???ってBASICerが言ってました
0158名無しさん@そうだ選挙に行こう
2010/07/10(土) 11:40:57ID:???global変数はクラス内に定義する事は出来ないのがphpの仕様なのでしょうか?
//文法エラーが発生
class TestClass
{
global $test1;
static public function TestFunction( )
{
echo "test";
}
}
//OK
class TestClass
{
static public function TestFunction( )
{
global $test1;
echo "test";
}
}
0159名無しさん@そうだ選挙に行こう
2010/07/10(土) 11:59:11ID:???クラスの定義にglobalを記述したい理由が分からん。
staticじゃだめなの?
0160名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:03:10ID:???<?php
<html>
<head></head>
<body>
<!-- -->
</body>
</html>
0161名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:10:34ID:???途中で誤爆してしまいました。すみません。
用は以下の用な事をしたいのです。
<< やりたいコード �@ >>
<?php
//POSTデータを取得しグローバル変数へ格納
$test1 = $_POST["name_mei"];
?>
<html><head></head><body>
<?php
TestClass::TestFunctionA();
TestClass::TestFunctionB();
?>
</body></html>
<!--
以下にPHPのコードが続きます。
※改行が多過ぎますエラー回避の為
-->
0162名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:27:26ID:???※>>161の続きです。
<?php
class TestClass
{
global $test1;
static public function TestFunctionA( )
{
$w = $test1;
$w .= "さん";
echo $w;
}
static public function TestFunctionB( )
{
$w = $test1;
$w .= "ちゃん";
echo $w;
}
}
?>
0163名無しさん@そうだ選挙に行こう
2010/07/10(土) 13:45:50ID:???0164名無しさん@そうだ選挙に行こう
2010/07/10(土) 21:45:48ID:???0165nobodyさん
2010/07/12(月) 04:23:32ID:???TestClass::$test1 = $_POST["name_mei"];
staticでなく、globalを使う理由は?
どちらにせよ上級者はやらん設計だと思うがw
0166nobodyさん
2010/07/13(火) 21:18:11ID:gdo55WeBこの関数に文字列を2回通した場合、アンパサンドが二重に変換されてしまいます。
<→&lt;→&amp;lt; のようにです。
Ver5.2.3からは、第四引数「double_encode」が追加されたので、
これを防止する事ができると思いますが、
それ以前のバージョンの場合に回避方法はありませんでしょうか?
0167nobodyさん
2010/07/13(火) 22:10:27ID:???0168nobodyさん
2010/07/14(水) 00:13:58ID:???一度デコードするか、自作関数作ればいいんじゃない?
上級者を自負するなら、そもそも2回通すロジックを見直すべきだとは思うが・・・・・・
0169nobodyさん
2010/07/14(水) 05:54:21ID:???はげどう
0170166
2010/07/14(水) 07:24:12ID:???レスありがとうございます。
上級の方がいそうなスレなのでお尋ねしました。
仰るとおり、2回通すロジックが問題ですが、
誤って2回通してしまうような場合も想定して、他にも方法がないか模索していました。
また、WAFのようなものでサニタイズされた場合、
ソースを修正しなければ、やはり二重に処理されてしまいますので、やはり何か手が打ちたかったのです。
ちなみに、1度デコード(あるいは&だけデコード)する方法も考えましたが、
ttp://www.asp-edita.jp/doda/one/doda5728_17.html
辺りや、リンクされている記事を読んで結局はコチラで質問した次第です。
0171nobodyさん
2010/07/14(水) 13:23:56ID:???「HTML内に出力するときはエスケープしなきゃダメでしょ><!」
って関数なので、htmlとして出力する時にしか使わない。
てことはまったく使わないか、使うとしても1回。
(他作WAFだろうが自作PHPだろうが)「誤って」2回通すとすれば、
それは局所的なバグとかじゃなくて、思想・理解的な間違いだと思われる。
今後の似たようなバグの根絶のためにも、思想の見直しを。
そうは言っても…って話も、まあ、あるんだろうけど(笑)
0172nobodyさん
2010/07/14(水) 15:34:35ID:uN19CneF0173166
2010/07/14(水) 20:41:25ID:???皆さん、レスありがとうございました。
自動的にhtmlspecialcharsと同様にサニタイズするWAFが有る・無しにかかわらず、
同じソースコードを使いたかったのです(--;
「関数を2回通す」というのは悪い例えでした、すみません。
0174nobodyさん
2010/07/15(木) 00:12:50ID:???どうすれば良いですか?
<U>文字の下線</U>
こんな感じのタグをhtmlに入れても
docomoからは下線が表示されません。
0177nobodyさん
2010/07/15(木) 01:14:17ID:???http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1213056147
ちったー調べたら?
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<u>アンダーライン引かれる?</u>
hrは?<br />
<hr />
</body>
</html>
ちなみに i モードHTMLシミュレータII で見た引かれてたよ
ktaystyleとか使ってるなら出力みよーよ
0178nobodyさん
2010/07/15(木) 05:22:22ID:???0179nobodyさん
2010/07/20(火) 18:13:27ID:???として通常は動作させるのを
http://test/test1/
として同じ挙動をさせるにはどうすれば良いでしょうか?
0180nobodyさん
2010/07/20(火) 21:09:14ID:???0183nobodyさん
2010/07/23(金) 11:36:54ID:AgQn7g4l上級者なら出来るって聞いたものでここで質問させていただいてます。
0184nobodyさん
2010/07/23(金) 15:31:24ID:???0185nobodyさん
2010/07/24(土) 13:56:23ID:C0x7DFuy0186nobodyさん
2010/07/24(土) 19:46:46ID:???0187nobodyさん
2010/07/24(土) 20:14:35ID:???0189PHP@最強戦士
2010/07/26(月) 16:55:45ID:x+pw7EjcPHPつかっててきずいたんですが PHPのコミュって
珍言ばっかりほざいてる人たちがいてとても素晴らしいと思いますよ
年齢層が低くて 頭の低レベルな人たちと交流できるので素晴らしいです
ustreamでPHPユーザのクソ発言をみると喜んじゃいます!!おお
それとPHPが無いと死にそうです PHPはド素人でもできるので
html=PHPですよね
PHPの良さはPHPがわかればhtmlとCSSがわかるってところですよね
脆弱性が多いところもいいんですよ
ワタシはPHP 20年つかってるんですが 最高なのでやめれませーーーーーーーーーーーん!!!!!!!!!!
趣味はPHPユーザーの珍言、クソブログを見る事です^^
Perlやってる人ってバカですよね
この前Perlやってる人に話かけられました
Perlユーザー「君、Unixとかしってるかい?PHPみたいなくそ言語やってておもしろい?」
ワタシ「unixとか時代遅れですね そんなの知りません! いまどきPHPですよ! perlとか本当時代遅れですね!! 何年前の人ですか?」
Perlユーザー「あんたなめてんの?」
ワタシ「キャーこわい! PHPをばかにしないでください! PHPがあればwebアプリつくれるんですよ?」
Perlユーザー「ねえ ターミナルひらいて sudo rm -rf / ってうって」
ワタシ「怖いわ!ははい! やめてください 開きました うちました」
Perlユーザー「そのまま放置しといて」
ワタシ「なんかパソコン起動しなくなっちゃいました〜泣」
0190nobodyさん
2010/07/26(月) 17:11:53ID:???まで読んだ。
0191nobodyさん
2010/07/26(月) 17:22:08ID:x+pw7EjcてめえはPHPユーザーだろ?
はやく氏ねよwwwwwwてめえみたいなPHPユーザーが消えれば平和になる
0192nobodyさん
2010/07/26(月) 17:25:32ID:???まで読んだ。
0193nobodyさん
2010/07/26(月) 17:45:49ID:???まで読んだ
0194PHP=クソ(笑)
2010/07/26(月) 23:34:55ID:z/NbSmjH0195nobodyさん
2010/07/27(火) 00:42:12ID:???「ウンコ!このウンコ!・・・おまえはウンコ(笑)・・・ウンコ(笑笑笑)」
と一人叫んでいる >>194 さんを想像したら心がほっこりした
その余裕が顔に出たのか、モテキ到来で彼女が出来ました。
本当にありがとうございました。
0196名無しさん@お腹いっぱい。
2010/07/27(火) 07:38:03ID:Q+p+NFYSバカじゃん?それがどうかしたの?いちいち報告しなくていいよなあ?
御前等みたいなゴミは仲良しグループで仕事してんだろこら?
なあ?てめえみたいなゴミは死ねよ今すぐ死ねよ
まじしねよ!!!!!!コネコネしてんじゃねえよ死んでほしい
てめえブログとかに沢山言語自慢してそうなやつだな かっこつけてhaskellとか
沢山言語やってそうな御前は八方美人なんだろうな うぜえんだごみ まじきえろ
0197nobodyさん
2010/07/27(火) 09:46:44ID:???0198nobodyさん
2010/07/27(火) 11:11:26ID:???0200nobodyさん
2010/07/29(木) 10:30:15ID:???0201nobodyさん
2010/07/29(木) 22:02:33ID:???A.html内の実行ボタンがクリックされたら、
GETパラメータに入力値(文字列)をエンコーディングした上で
連結しA.html内に定義した<iframe>のsrcにurlを
JavaScriptで動的に作成(指定)する事により、
B.php画面の処理結果をA.html内に定義した<iframe>内に描画
したいと思っています。
しかし、srcにはURLエンコードを正常に行い指定しているにも関わらず、
入力値に「#」が入っていると「#」以降の文字列が失われてしまいます。
一体なぜでしょうか?
■A.html
[名前] あいうえお#かきくけこ
[実行(ボタン)]
※JavaScriptにより内部的に生成されるURL
http://test_site/B.php&name=あいうお#かきくけこ
■B.php
//名前
$name = $_GET["name"];
→ここで $name には、 あいうえお しか入らないです。
本当は、 あいうえお#かきくけこ まで取得したいのですが。
宜しくお願い致します。
0204nobodyさん
2010/07/30(金) 01:56:11ID:???0207nobodyさん
2010/08/31(火) 00:19:19ID:???大きいサイズだとけっこう時間がかかります。
アップロード状況をプログレスバー等でリアルタイムに視覚化するには
どのような処理をすればよいのでしょうか?
0208nobodyさん
2010/08/31(火) 01:55:16ID:???0209nobodyさん
2010/08/31(火) 15:41:41ID:???0210nobodyさん
2010/08/31(火) 15:45:18ID:???0211nobodyさん
2010/09/09(木) 19:31:47ID:???JavaScriptやIframeなどのタグがあったらNGにするには
どのように処理されてますか?
単純な文字列検索だけだと、逃げ道がいろいろありますよね。。。
0212nobodyさん
2010/09/09(木) 22:07:14ID:???抜けられて困る事もあまり無いし
スパムだったら都度フィルタ調整するしか無いだろうし
許可タグはホワイトリストだべ。
0213nobodyさん
2010/09/10(金) 20:05:06ID:???こんなんでいいの?
if (preg_match("/<script/i", $body)) {
return false;
}
0214nobodyさん
2010/09/13(月) 01:34:52ID:???投稿本文にタグの閉じ忘れがあったらレイアウト崩れますよね。
プロのみなさんは、どうやって対応されていますか?
0215nobodyさん
2010/09/13(月) 01:47:00ID:???2. やむなく作るなら、閉じ忘れを警告し、閉じないと投稿できないようにする。
0216nobodyさん
2010/09/13(月) 20:08:57ID:???閉じ忘れの検出はどのように実装しますか?
0218nobodyさん
2010/09/14(火) 02:39:32ID:???送信ボタンを押したときか、テキストエリアからフォーカスが外れるタイミングで。
正規表現で<tagと</tagをペアで数えていけばいいんじゃね?
自分なら厳密にやるよりはソースがシンプルなほうを選んで実装するな。
「親切で指摘してあげるんですよ^^^」的な上から目線を根拠に。
0219nobodyさん
2010/09/14(火) 13:43:42ID:LyPWJsrC0220nobodyさん
2010/09/14(火) 14:00:50ID:???それとも<br>が100個書かれたときのレイアウト崩れまで考慮すんの?
それやるとキリがないからやりたくないな…。
0222nobodyさん
2010/09/15(水) 12:55:31ID:???0224nobodyさん
2010/09/16(木) 10:29:22ID:???0225nobodyさん
2010/09/17(金) 13:09:32ID:???0226nobodyさん
2010/09/17(金) 13:41:52ID:???0227nobodyさん
2010/09/17(金) 13:45:23ID:???http://hibari.2ch.net/test/read.cgi/php/1279833891/
0228nobodyさん
2010/09/22(水) 17:57:31ID:???0229nobodyさん
2010/09/22(水) 19:00:53ID:???当然携帯電話の場合には、JavaScriptが使えないので Location等を使う事になると思うのですが、
携帯キャリアを問わず正常にページ遷移させる事が出切るのか不安です。
0230nobodyさん
2010/09/22(水) 19:07:17ID:???0231nobodyさん
2010/09/22(水) 19:08:05ID:???header("Location: うんたら")
0232nobodyさん
2010/09/22(水) 21:00:14ID:???0233nobodyさん
2010/09/27(月) 00:08:18ID:???protectedを一切使わない奴はすべからく雑魚PGである。
0234nobodyさん
2010/09/27(月) 00:52:33ID:???0235nobodyさん
2010/09/27(月) 17:58:35ID:???使うヤツが雑魚
0236nobodyさん
2010/09/30(木) 19:41:34ID:???0237nobodyさん
2010/09/30(木) 20:34:11ID:???組み込み系では使うがPHPで使う機会ってほとんどないけどな
0239nobodyさん
2010/10/01(金) 01:02:57ID:???・成功した場合は配列を返す
・エラーの場合は1〜nのエラーコード返す
・第1引数&$errを渡した場合はエラーが代入される。
・第2引数&$msgを渡した場合はメッセージが代入される。
●まともな関数/メソッド
・戻り値は配列
・エラー時は XxxException が throw される
0240nobodyさん
2010/10/02(土) 19:57:41ID:???try(func())catch(XxxException $e){die();}より
if(func()===false){die();}のがてっとりばやいし
特に複数種類Exception出すと面倒だし
参照渡しは絶対に使わないけどな
0241nobodyさん
2010/10/02(土) 20:45:24ID:???9割はカッスカス
0242nobodyさん
2010/10/02(土) 23:39:41ID:???0243nobodyさん
2010/10/02(土) 23:53:20ID:???俺は少なくとも上級者に入ってるので一人は先ずありえない。
0244nobodyさん
2010/10/03(日) 00:06:59ID:???0245nobodyさん
2010/10/06(水) 07:23:47ID:???どんなコード書いてるんだろ
0246nobodyさん
2010/10/09(土) 04:01:25ID:???0247nobodyさん
2010/10/09(土) 18:35:21ID:???という疑問。
0248nobodyさん
2010/10/10(日) 00:59:01ID:???Googleで特定サイトの(画面上から入力されたURL)ページランクを
調べるにはどうすれば良いでしょうか?
GoogleのAPIをコールするのかな?
0249nobodyさん
2010/10/10(日) 01:25:50ID:???ttp://hm2k.googlecode.com/svn/trunk/code/php/scripts/pagerank.php
ttp://www.hm2k.com/projects/pagerank
GoogleにGETでアクセスしてるっぽい。
ソース直張。
0252nobodyさん
2010/10/11(月) 15:44:05ID:???Googleで特定のキーワードが何回検索されたかを調べる方法ってありますか?
出来れば、特定の日に何回検索されたかです。
例) 赤い一輪車 というキーワードが 10月10日(日) に15回 といった具合です。
■ このスレッドは過去ログ倉庫に格納されています