【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を見よう。
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:???0533nobodyさん
02/07/30 16:35ID:???HTML -> CSS -> PHP+MySQL がいいと思う。
JavaScriptは随時。
0534528
02/07/30 17:03ID:???ありがとうございます。
>>531
あうわ・・・
Perlですか。
まず、HTMLを完璧にしたいです。
ありがとうございます。
>>532
ごもっともです・・・
>>533
あわわPHPが入ってなかった。
参考にさせていただきます。
ありがとうございました。
0535nobodyさん
02/07/30 20:00ID:???0536nobodyさん
02/07/30 20:26ID:???現在のXML関数クソですが。
0537nobodyさん
02/07/30 20:34ID:???0538nobodyさん
02/07/30 21:06ID:???0539nobodyさん
02/07/30 23:54ID:ILN5fhBDApache1.3.26
PHP4.2.2
0540nobodyさん
02/08/01 19:16ID:W9oFKOXJPOST、GETで送ったデータが取れません。
たとえば、
<input type="hidden" name="aaa" value="ttt">
といったやつで、
ソース内で、$aaa に、"ttt" が入ってません。
どうしてこうなるんでしょうか?
ちなみに、他のサーバのPHP4でこのスクリプトは普通に動きます。
0541540
02/08/01 19:17ID:W9oFKOXJ>>4にかいてあった。逝ってきます。
0542nobodyさん
02/08/02 11:03ID:???自分でテーブル書いて引く。
例えば配列に機種依存文字をキーにしてデータ入れて、
if(isset($array["@"]))
とか。
0543nobodyさん
02/08/02 12:30ID:???PHP では何に当たるんでしょうか?
0544nobodyさん
02/08/02 13:08ID:???コマンドラインで使うことは想定してないからとりあえずドンピシャはないんじゃない?
POSTメッセージをつかみたいなら>>4を。
0545nobodyさん
02/08/02 13:22ID:???0546nobodyさん
02/08/02 13:24ID:???で、答えを書かないと。
国会とかでも最近問題になってるぞ。
批判すれども代案無し。
0547nobodyさん
02/08/02 13:29ID:???でもストリームとして標準入出力、エラーは絶対持ってる筈だよ
コマンドライン用のアドインみたいのも有るんでしょ?
対案無き反対には謝罪するけどw
0548nobodyさん
02/08/02 13:34ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=php+%95W%8F%80%93%FC%97%CD
検索したら見つかったよ。簡単に。
憶測だけで物言うなってことやね。スマソ。
俺も含めて検索しない子が増えてるんだなぁと痛感。
0550549
02/08/02 13:35ID:???0552nobodyさん
02/08/02 13:42ID:???0554nobodyさん
02/08/02 16:13ID:???filenameが"php://stdin","php://stdout", "php://stderr"のどれかで始まっている場合、対応するstdioストリームが オープンされます。
(この機能はPHP 3.0.13で導入されました。これ以前のバージョンでは、 stdioストリームにアクセスするために "/dev/stdin"または"/dev/fd/0"のようなファイル名を使用する必要があります。)
0555543
02/08/02 17:40ID:???何か初歩的なことを質問してしまったようで。
どうもありがとうございました。
因みに私は、検索するキーワードが分からなかった厨です……。
0556nobodyさん
02/08/02 19:09ID:???POSTデータが消えた状態にしたいんですが、
うまいやり方ないでしょうか。
0557nobodyさん
02/08/02 20:17ID:???POSTデータが消えた状態になる
トロイを仕込んでおく
0558osage
02/08/03 00:39ID:OgHVg5eyセッションに前のページのIDとかを持たせておいて、それ以外からのアクセスだったら
POSTデータを無視するようにしたら?
0559539
02/08/03 01:02ID:t/HgL1HI説明足らずでした。
ユーザーから入力された$_POST['string']等に格納された文字列に
機種依存文字が含まれているか確認したいんです。
mb_ereg('{機種依存文字}', $_POST['string']);
って感じでは何故かマッチさせられなかったので・・・
0560osage
02/08/03 01:39ID:???機種依存文字?
Win以外にも機種依存文字ってあるんだけど・・・それも規制するの?
・・・無理じゃない?
# できたとしても、実用的じゃないと思うな
0561539
02/08/03 02:16ID:t/HgL1HI$str = mb_convart_encoding({機種依存文字列を含む文字列}、'EUC-JP');
ereg("\x8E[\xA0-\xDF]|[\xAD\xF9\xFA\xFB\xFC][\xA1-\xFE]", $str);
でいけたみたい。
13区,89区,90区,91区,92区の機種依存文字をチェック
0562nobodyさん
02/08/03 03:18ID:uQ0/1o1fPOST を受け取った action で直ぐにリダイレクトしてしまう。
具体的には、
: POST の処理
header("Redirect: hogehoge");
exit;
0564nobodyさん
02/08/03 03:54ID:a7C5JFCX0565nobodyさん
02/08/03 11:56ID:???戻る押したときフォームに値が入ってない状態にって事じゃないの?
それじゃダメだと思われ。
>>556
no-cacheにしとけばIEでは消えたはず。
0566nobodyさん
02/08/03 12:34ID:NLXKrSe3直接初期化したりはできないのですか?
<?php
class globaltest{
var $gtest = "OK";
function globaltest(){}
function display(){
global $gtest;
echo "gtest = ".$gtest;
}
}
?>
結果:
gtest =
コンストラクタでやるかそれ用のメソッド作らないとダメ?
0567nobodyさん
02/08/03 14:29ID:Cg+prS4fprint $myobj->fetch->parse;
ってできますか?
print $myobj->parse( $myobj->fetch() );
はできたんですが…。
perlと違ってメンバ変数に{}付けないから
メンバ変数なのかメソッドなのか区別しにくい…。
0569nobodyさん
02/08/03 14:37ID:???$myobj->fetchが自分自身を返せばOKかと。
0571nobodyさん
02/08/03 17:13ID:???<select name="OS">
<option value=">>1"> >>1
<option value=">>2"> >>2
<option value=">>3"> >>3
<option value=">>4"> >>4
</select>
ってのを繰り返して吉野家コピペを造りたいのですが、挫折しますた。過去ログにものってないんでどなたか教えてください。
0572nobodyさん
02/08/03 17:38ID:???0573nobodyさん
02/08/03 17:46ID:DPfmHtFFそんなことより聞いてくれよ <SELECT> >>1 </SELECT> よ
このまえ近所の<SELECT> 吉野家 </SELECT> にいったんです
ってしたいのか小一時間問いつめたい。
■ このスレッドは過去ログ倉庫に格納されています