【PHP】質問スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/02 15:32ID:f3afNVBG<<参考>>
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレは>>2を見よう。
0433nobodyさん
02/07/19 12:23ID:???レスありがとございます。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html
を読んでみましたが大変参考になりました。
場合にもよりますが、htmlspecialcharsでこと足りそうですね。
0434nobodyさん
02/07/19 12:53ID:miP7fSIKHTMLのイメージタグ<img*>を全てhogeに置き換えたいのですが
うまくいきません。
正規表現がまちがっているとおもうのですが
教えてもらえませんか?。
厨房ですみません。
0435nobodyさん
02/07/19 13:01ID:???0436nobodyさん
02/07/19 13:18ID:miP7fSIKそれもしましたが、うまくいかないのですよ。
どうすればいいのやら。
0438420
02/07/19 15:56ID:fBLe97tyうぐ、すまなかった
勘違い
でもどっちにしろ$HTTP_*_VARSは旧式で将来のバージョンでは廃止の方向にあるってアナウンスされてるから
これから覚える人もそうでない人もスーパーグローバルの$_*で覚えた方が吉。
まだ古い形式をサポートしてあげてますよってスタンスだね。
0440j
02/07/19 16:01ID:YbGh4YAD0441nobodyさん
02/07/19 23:49ID:miP7fSIK$lipton = eregi_replace("<img.*>", "hoge", $lipton);
でしてみたら イメージタグの後ろすべてがなくなってりまいました。
どうすればイメージタグだけとりだせるのでしょうか?。
厨房のすみませぬ。
0442nobodyさん
02/07/20 00:04ID:???0443420
02/07/20 00:05ID:fSI+96Dt最短マッチというやつを使う。
$lipton = preg_replace("/<img(.*?)>/i", "hoge", $lipton);
>>412 の時と同様、試してないのと想像でものを書いているのとで
違ってるかもしれない。
ちなみにpregなのは単に私がpreg派だから。
0444osage
02/07/20 00:57ID:qMVNIFsj>>426
書込時にXSS対策してしまうと、
新しい XSS が見つかったときに対策できなくなったり、
ファイル → DB ができなくなったり(変換後の長さが不定)、
良いこと無いです。
>>433
HTML BODY の部分は htmlspecialchars でほとんど事足りますね。
リンクの場合だけ、面倒。
>>443
漏れも preg 派。
preg のほうが ereg より早いんじゃなかったっけ?
0445nobodyさん
02/07/20 02:03ID:mTlsfDxx>>444
ありがとうございました。
解決できました。
<img hoge><a hoge>
こんなときでもOKかすこし不安です。
0446420
02/07/20 07:12ID:dxQFeTg1そう、速いはず。
それと、pregで慣れてしまってeregに弱くなってしまった。ってのもある。
微妙に文法違うので。
0447420
02/07/20 07:16ID:???試してみればよろしいかと。
色んなパターンで。
しかしこの2ch鯖はPHP/4.0.3pl1載せてるんだね、なんか微妙なバージョンだね。
あまり2chの詳しい部分には詳しくないので疑問だけど、
2chのどこかでPHP使われてるのかな。
ただ組み込まれてるだけか。
0448nobodyさん
02/07/20 13:22ID:???PHPではフォームの要素やCookieが「$名前」って言う感じになるらしいですが
フォームの要素名とCookie名が重複した場合はアボーンですか?
0451nobodyさん
02/07/20 21:16ID:3Kq04NJBPHPももう一回コンパイルしたほうがよろしいでしょうか?
apacheのapxsはバージョンアップで変わるのですか?
0452nobodyさん
02/07/21 10:09ID:???apacheのインストールの仕方による。
前と同じ場所にインストールしたんなら必要ないし、
$apache_home/conf/httpd.conf も前のものが引き
継がれるので、PHPもそのまんま使える。
0453nobodyさん
02/07/21 19:07ID:???$foo[bar] = 'enemy';
echo $foo[bar];
// 等
これは間違っていますが、動作します。では、なぜ間違っているのでしょ う? その理由は、構文の節に記述したように、角括弧の間 ('['および']')に式がなけれ ばならないためです。これは、次のように書くことが可能であることを 意味します。
echo $arr[ foo(true) ];
$_GET[aaa(true)];
はどうよ。
0454osage
02/07/21 21:39ID:???意味を取り違えていません?
当然OKですよ。
---ここから
<?
echo $_GET[aaa(true)];
echo $_GET[aaa(false)];
function aaa($r){
return ($r ?"mode":"pass");
}
?>
<a href="<?=$_SEREVR['SCRIPT_NAME']?>?mode=333&pass=20">TEST</a>
---ここまで
foo(true) → 式の必要があることの例示
ということだと思います。
0455nobodyさん
02/07/22 03:01ID:???ごめんさい。
0457nobodyさん
02/07/23 12:29ID:???0458nobodyさん
02/07/24 07:39ID:W+N1FBoG掲示板やチャットがおかしな動きをする・・・。仕様変更?
知っている方がいたらどこが変わったのか教えていただきたいです。
0459nobodyさん
02/07/24 08:17ID:???0461nobodyさん
02/07/24 08:44ID:???0462名無しさん@Emacs
02/07/24 11:04ID:???愛想が尽きかけてるなぁ。
0463nobodyさん
02/07/24 11:36ID:F0HR0XI/http://news2.2ch.net/test/read.cgi/newsplus/1027420849/
0464nobodyさん
02/07/24 12:00ID:???0467nobodyさん
02/07/24 14:11ID:???_SERVER["SCRIPT_FILENAME"] /home/local/public_html/info.php
と
_SERVER["PATH_TRANSLATED"] /home/local/public_html/info.php
と
_SERVER["REQUEST_URI"] /~local/info.php
と
_SERVER["SCRIPT_NAME"] /~local/info.php
と
_SERVER["PHP_SELF"] /~local/info.php
ではどれがいいのでしょうか。
どれでもいいような気がしますが。
0468nobodyさん
02/07/24 14:22ID:???0469464
02/07/24 14:31ID:NF1JUK7E0470初期不良
02/07/24 16:10ID:MpezxSYFここを読んだ限りでは...
multipart/form-data のパースに関する脆弱性って
4.2.0 と 4.2.1 だけ?それ以前のものとかは大丈夫って事?
0472_
02/07/24 18:00ID:HHbu9Xg4だけです。
記事に
Software: PHP versions 4.2.0 and 4.2.1
とあるでしょう。
ZDだかどっかの日本語ニュースサイトでわかりやすい日本語の記事で書かれてるからそれ読めば。
あーしょうがねぇな、探してやったよ、これこれ
http://www.zdnet.co.jp/news/0207/23/ne00_php.html
0473nobodyさん
02/07/24 19:07ID:???VirtualHost を利用していると
4.1.3 以降禿げしくバグっているので
当分入れ替えてませんが、何か?
0475nobodyさん
02/07/24 20:40ID:???継承元が違っても同名のメソッドがあれば動きそうなんですが・・・。
class c
{
function hoge()
{
}
}
class d
{
function hoge()
{
}
}
$a = true;
$b = ($a?new c():new d());
$b->hoge();
0476nobodyさん
02/07/24 22:13ID:???PHPのMLも
ApacheのMLも
バージョン変わるたびに
「入れ替えたら動かなくなりますた。」
というヤシが多すぎるやね。
0477476
02/07/24 22:17ID:???更新前に書き込んでしまいました。
超遅レス・・・ウトゥダ
0479nobodyさん
02/07/24 22:47ID:???0480__
02/07/24 22:48ID:SFB7+LmWテキストボックスに「表」を入れて$_POSTで受け取ると
「表\」と\が付いてきてしまいます。\を取る方法はありますでしょうか?
送信ページにはcharset=shift_jisを付けています。
0481nobodyさん
02/07/24 23:05ID:???現環境はRedhat7.3+PHP4.2.1(ソースからインストール)です。
ttp://www.php.net/downloads.php
の「PHP 4.2.1 to 4.2.2 patch」を充てたいのですが、実行の
仕方がわかりません。中を見るとbashでもCでもないようですが・・・
厨な質問だとは思いますが、識者の方よろしくお願いします。
0482osage
02/07/24 23:19ID:uiOwupG6データベースにクエリ投げるためのエスケープが入ってるのでは?
設定見てみ。
magic_quotes_*
PHP + SJIS であまりよい思いたこと無いけどな。
>>479
例えば?
0483479
02/07/24 23:34ID:???僕の借りてるとこは register_globals が on だったので、なんとか off にしたかったのです。
が、色々検索した結果↓のように ini_set(name, value) でできることがわかりました。
ttp://www.dcl.info.waseda.ac.jp/~hasegawa/php/source/d_bbs/d_show_contents.php?print_number=779
その発言主さんのように、各PHP毎に ini_set 埋め込んでおけば php.ini いじらなくても
設定としては大丈夫なんでしょうか?
0484479
02/07/24 23:36ID:???専用鯖だったら好きなだけいじくれますから・・・
0485nobodyさん
02/07/24 23:52ID:sGd5+TPw0486osage
02/07/24 23:56ID:uiOwupG6ここを見るとできないとかいてある気が・・・
http://www.php.net/manual/ja/print/function.ini-set.php
できない仕様だけど、できる実装?
0487nobodyさん
02/07/25 00:02ID:???うおっ、ありがとうございます。こんなマニュアル中のを見落としててすみません。
そこの表を見ると
register_globals PHP_INI_SYSTEM | PHP_INI_PREDIR
ってあるんで、管理者によっては .htaccess で設定可能にしてくれているかもしれない
ということですよね?
ちょっとテストしてみます。ありがとうございます。
0488nobodyさん
02/07/25 00:02ID:HI+0mZ5Kphpのコーディングは、Atudionで書くってのがイイ!。
0489osage
02/07/25 00:14ID:HWPrqYxJマニュアルよく見ると、「PHP 4.0.5-devにおける」って書いてある。
今ちょっとやってみたけど、挙動がおかしいような・・・
ini_set した後、 ini_get すると値が更新されている。
でも、POSTした値グローバル変数でとれていない・・・
( 環境:Apache 1.3.26, PHP 4.2.2, RedhatLinux7.2 )
ま、いっか本人解決したみたいだし。
0490nobodyさん
02/07/25 03:20ID:???> ini_set した後、 ini_get すると値が更新されている。
> でも、POSTした値グローバル変数でとれていない・・・
変数に落ちる前に ini_set してやらなあかんやろ。
つまり無理。
0491osage
02/07/25 06:12ID:???いや、そりゃそうなんだけど、
マニュアルには、ini_set 失敗したら false を返すと書いてあるのに、
変更前の値を返しているし、
ini_getで変更後の値返しているし、
動作がマニュアル通りじゃないなと。
0492nobodyさん
02/07/25 12:41ID:???{
$data = new sample();
return $data;
}
$x = a();
$x->samplefunc();
こういうことがしたいんですが無理でしょうか?
0493nobodyさん
02/07/25 17:46ID:sqY3Q+5C'./configure' '--enable-mbstring' '--enable-mbstr-enc-trans'
mbstring.detect_order : auto
mbstring.http_input : auto
mbstring.http_output : EUC-JP
mbstring.internal_encoding : EUC-JP
phpはEUCコードを出力する設定となっています。
i-mode用にコンテンツを作成しようと思い、
jcode.php、mb_convert_encoding() を利用してSJISに変換して出力してみたのですが
文字化けしたままです。
http://www.php.net/manual/ja/ref.mbstring.php
を参考に mb_http_output('SJIS') 等を試してみましたが正しい結果は得られません。
レンタルサーバなので php.ini の設定変更は出来ないのですが、
この状態でもSJISに変換する方法はあるのでしょうか?
0494nobodyさん
02/07/25 20:37ID:???0495493
02/07/26 11:04ID:5bPyLDTsmetaタグ及び、header関数でContent-typeを出力しています。
phpソースはEUCにて記述しております。
0496nobodyさん
02/07/26 11:18ID:gCODudNKを行うシステムをphpで作っているのですが、ログイン後のURLで
ショートカットを作られてしまうと、ログインしなくても、そのページに
行ってしまいます。これを防ぐために、hidden等で、IDだけをページ間
に持たせて、チェックを行おうと思ったのですが、文字でリンクされている
為、submitが発行できず、hiddenが使えません。何かいい方法な無いでしょうか?
0498493
02/07/26 12:28ID:5bPyLDTshttp://www.nttdocomo.co.jp/p_s/imode/tag/index.html より転載。
・ HTML2.0、3.2、4.0のサブセットです。
・ 文字コードはS-JIS、画像はGIFのみ表示可能です。
P504i にて確認しましたが、EUCのままでは文字化けします。
0499nobodyさん
02/07/26 12:38ID:ChVpo9octtp://www.spencernetwork.org/jcode/
0500nobodyさん
02/07/26 12:43ID:6EBIoW5e・<pre>タグの中は変換しない
・特定のタグでなければ <>を < > に変換する。
というものが欲しいのですが・・・。
0501500
02/07/26 12:45ID:6EBIoW5e・特定のタグでなければ <>を &lt; &gt;に変換する。
です。
0502493
02/07/26 12:57ID:5bPyLDTs以下でテストしました。文字化け変わらずです。
ソースはEUCにて記述しています。。
<?php
require("./jcode-LE.php");
header("Content-type: text/html; charset=Shift_JIS");
$str = '<html><head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title></head>
<body>あいうえお<br>かきくけこ</body></html>';
echo JcodeConvert($str, 1, 2);
?>
0503nobodyさん
02/07/26 13:52ID:???$string = strip_tags($string, '<a><b><i><u>');
これじゃだめかい
タグごとなくなるけど。
0504493
02/07/26 14:35ID:???しかし、いくつか不明な点があります。PHPマニュアルのサンプルでは
mb_http_output('SJIS') と ob_start('mb_output_handler') の二つは
セットで使われていましたが、テストしたところ文字化けします。
>>5 にある問題かとも思い、header() を外してみても変わらずで
結局、ob_start('mb_output_handler') を外して上手くいきました。
現状では問題点はありませんが、mb_output_handler が無い場合の
弊害はあるのでしょうか。
<?php
mb_http_output('SJIS');
//ob_start('mb_output_handler');
header("Content-type: text/html; charset=Shift_JIS");
$str = '<html><head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title></head>
<body>あいうえお<br>かきくけこ</body></html>';
echo $str;
?>
0506nobodyさん
02/07/27 05:04ID:LNAsRVTZレスではないのですが、少し関係ありそうなので聞きたいのですが、
私もDebian(woody) + apache + php4の環境で同じ問題で悩んでいて
header("Content-type: text/html; charset=EUC-JP");
を吐き出して正常に表示できるようなりましたが、上記のheader関数を使わず
HTMLのメタタグでEUC-JPを吐き出しても、文字化けして正常に表示できませんでした。
echo "<html><head><meta http-equiv='Content-type' content='text/html;charset=EUC-JP'></head>";
echo "<body>";
echo "はろー";
echo "</body></html>";
この違いは何でしょうか?分かる方がいたら教えてください。
0507nobodyさん
02/07/27 19:10ID:???記述ミスでは。
<meta http-equiv='Content-type' content='text/html; charset=EUC-JP'>
0508nobodyさん
02/07/27 22:38ID:q4+cqwKGデータ大きくなってphpへ移行しようと考えているッス。
APACHEのモジュールとして組み込むべきなのか、コマンドライン版として組み込むべきなのか。
既出かもしれんスが 検索かけたッスけどAPACHEのモジュールとして入れた方が早いとかぐらいしか
ひっかからなかったので違いやそれぞれのメリット意見を聞きたいッス。
スピードとかセキュリティ等の点を特にッス。
一応PHPのマニュアル読んだけど、よくわからなかったッス。
個人的にはそれほどスピードが変わらないのであればcgi-bin中につっこめた方が
楽なんスが、スピードが極端に落ちる場合はそうもいかんスので
環境はredhot7.2ッス。mysqlはインストしたんスけど、この件に関しては使用しないと仮定ッス。
0509nobodyさん
02/07/27 23:53ID:???両方入れて使用目的によって分けてますが。
何に使うかによるので一概には言えないかと。
redhotってナニ?ネタでスか?辛そうだね。
0510nobodyさん
02/07/27 23:54ID:???書いてあったね使用目的。スマソ。
0511nobodyさん
02/07/28 00:20ID:UzcbNVGt関係ありませんでした。
0512nobodyさん
02/07/28 13:06ID:???共用鯖でなければCGIで動かすメリットはほとんどないと思う。
速度を考えるならZendOptimizerも入れておくと良し。結構高速化できる。
CGI使う場合の利点は
suexecでApache以外のユーザでスクリプトを実行できる
くらいしかないかと。
コマンドラインでphp使いたい場合は両方入れとけばいいだけだし。
0513nobodyさん
02/07/28 20:08ID:???別ユーザ権限として実行することはできませんか?
0514nobodyさん
02/07/28 22:15ID:???0516nobodyさん
02/07/29 02:54ID:BRQVQC4rで$dirからスラッシュ(/)をとりたいのですが、どういう風に書けばいいのでしょうか。
どなたかご教授下さい。
0517nobodyさん
02/07/29 03:20ID:4EAv/90jnamazuのインデックス対象にPHPも含めたいのですが、いくらやっても
HTMLとSHTMLの拡張子しか認識してもらえません。
「mknmzrc」を開いて
# $ALLOW_FILE =".*\\.(?:$HTML_SUFFIX)|.*\\.txt" . # HTML, plain text
# "|.*\\.gz|.*\\.Z|.*\\.bz2" . # Compressed files
# "|.*\\.pdf|.*\\.ps" . # PDF, PostScript
# "|.*\\.tex|.*\\.dvi" . # TeX, DVI
# "|.*\\.rpm|.*\\.deb" . # RPM, DEB
# "|.*\\.doc|.*\\.xls|.*\\.ppt" . # Word, Excel, PowerPoint
# "|.*\\.j[sabf]w|.*\\.jtd" . # Ichitaro 4, 5, 6, 7, 8
# "|\\d+|[-\\w]+\\.[1-9n]"; # Mail/News, man
"|.*\\.php" . #PHP
の最後の行にPHPの拡張子を加えてみたりしたのですが、やっぱりインデックス
の対象としてくれません。mknmzの「-a」オプションを加えれば勿論
全ての拡張子を検索対象としてもらえますが、関係のない拡張子まで
検索対象となってしまいます。そこで、HTMLファイルも含め、PHPファイルも検索対象とするため
にはどのように設定(もしくはコマンド)すればよいのか教えてください。
環境はWindows2000
Namazu 2.010
です。よろしくお願いします。
0518nobodyさん
02/07/29 03:44ID:???# $ALLOW_FILE =〜〜〜〜
の行のコメントを外す。
"|.*\\.php" .
を
"|.*\\.php";
にしてみれ
0519517
02/07/29 08:17ID:4EAv/90jあ、あ、ありがとうございます!
説明していただいたとおりにしたらPHPファイルをちゃんと認識してもらえる
ようになりました。
0521nobodyさん
02/07/29 11:43ID:t/nKwjTfセッションは立ち上げるブラウザのウインドウごとに違うと
思っていたのですが、同一の場合がでてしまいます。
再現しないの困っているのですが、どなたか原因をご存知ないでしょうか?
IE5.5でファイルメニューから新規作成->ウインドウとやると
同じセッションになるようなのですが、今は普通にデスクトップの
IEのアイコンをたたいて立ち上げているのですが。
0523nobodyさん
02/07/29 13:25ID:???タスクマネージャみてると、
新規作成→ウィンドウの場合は、IEXPLORER.exe は増えないけど
IEを起動すると増える。そゆことなんじゃないの?
0525osage
02/07/30 00:05ID:???IE6だったら、ファイル - 新規作成 - ウィンドウ
で、同一のプロセスでIEが立ち上がる。
(Cookieが共有されるから、Sessionも共有される)
デスクトップ上のアイコンをクリックして立ち上げた場合は、
別プロセスでIEが立ち上がる。
(Cookieは共有されないから、Sessionは共有されない)
ちなみに、Donutの場合は前者のようですた。
0526nobodyさん
02/07/30 11:09ID:/PNjMBMQ同一プロセスだと同一セッションなんですね。
問題はデスクトップから普通にアイコンクリックでIEを
立ち上げても、同一プロセス(=同一セッション)で
立ち上がることがたまーにあるようなのです。
なんでだろう。。。
>524
まちがって書いてしまいました。スマソ。
0527コギャルとHな出会い
02/07/30 12:40ID:fWQS7Etai/j/ez/対応です
お役立ちリンク集
必ず役立ちます
サイト管理者お役立ち集
1日4000HIT以上
↓
http://kado7.ug.to/wowo/
i/j/ez/対応
コギャルとH出来るサイトはここ
ヌキヌキ部屋へ直行便
↓
http://kado7.ug.to/wowo/-a.htm
i/j/ez/対応
0528nobodyさん
02/07/30 16:20ID:BmWlgjLS現在のスキルはHTMLが誤魔化し程度に書けるくらいです。
HTML,perl,CGI,SSI,JAVA,JAVAScriptなどが案としてあるのですが、
順番としてはどれから勉強した方がイイでしょうか?
0529528
02/07/30 16:23ID:???0530nobodyさん
02/07/30 16:24ID:???0531nobodyさん
02/07/30 16:25ID:???HTML -> Perl でいいんじゃない?
0532名無しさん@Emacs
02/07/30 16:30ID:???■ このスレッドは過去ログ倉庫に格納されています