【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を見よう。
0336nobodyさん
02/07/10 23:16ID:???0337327
02/07/11 00:24ID:OZ6VhSK5PHP4 + Oracle8i + Windows2000Pro + Apache 3
です。
0341nobodyさん
02/07/11 01:34ID:OZ6VhSK5例えば、下記のhoge.cgiをPHPから呼び出して表示するには、どうし
たらいいでしょうかって事なんですけど。
#!/usr/local/bin/perl
$AGENT=$ENV{'HTTP_USER_AGENT'};
print "$AGENT";
SSIで呼び出すように<!--#exec cmd="hoge.cgi"-->、PHPから
<? echo exec("hoge.cgi");?>を呼び出してもうまくいきません。
0342340
02/07/11 01:41ID:???fopen調べろ
0343nobodyさん
02/07/11 02:09ID:???『知識は自慢するものではなく人に伝えるもの』っていい言葉
があるよ。
0345nobodyさん
02/07/11 02:56ID:???0346高卒童貞無職
02/07/11 09:57ID:???〜〜〜〜〜〜〜〜
<?
$mstrng = shell_exec('./cgi-bin/env.cgi');
$mstrng = ereg_replace( "Content-type: text/html", "",
$mstrng );
echo $mstrng;
?>
〜〜〜〜〜〜〜〜
--- env.cgi ---
#!/usr/local/bin/perl
print <<END_OF_HTML;
Content-type: text/html
<div align=center><table border=1>
<tr><th>Environment variable name<th>value</tr>
END_OF_HTML
while (($key,$value) = each %ENV) {
print "<tr><td><font color=blue>$key</font><td>$value</tr>\n";
}
print "</table></div>"
---
今すぐ回線切って柿の木残して首吊って死ね。
0347nobodyさん
02/07/11 10:44ID:???0348nicebodyさん
02/07/11 13:23ID:???PHPから呼び出した時点でCGIじゃないので、
perlとしては動くが CGIとしては動かないというのが正解だろう。
つまり、CGIとして伝えられるはずの環境変数なんかは伝わらないに10モナー
試してないから責任は取りません。
0350nobodyさん
02/07/11 14:04ID:7dp96S8nうざかったら放置で頼みます。
SQL使用不能・PHP4セーフモードのレンタルスペースにて、
サイト内検索(テキストファイル内からの検索)エンジンを使いたいのです。
フリーのソースを探し回ったところ、どこもSQLを使用しておりまして。
phpdotcomからも見つけられなかったのですが、
どこかにフリーで公開しているところありませんかね?
自分が何か勘違いしている可能性もあるので、そこのレンタルスペースの規約(抜粋)。
Q: PHP は使用できますか?
A: PHP4 がモジュールでインストールされております。ただし、セキュリティの関係上から safemode でのみ動作いたします。拡張子を .php にしてください。また、データベースとの連携は行っておりません。
0351nobodyさん
02/07/11 15:18ID:???0353350
02/07/11 15:55ID:???NamazuはPerlを使えるようになってないといけないようで。
私が世話になっているribbon.to/httpd/faq.htmlではPHPのみ可能らしいです。
自分、何か勘違いしてたら指摘求む。
0354nobodyさん
02/07/11 16:41ID:???0356nobodyさん
02/07/11 19:40ID:???0357nobodyさん
02/07/11 19:41ID:???0359osage
02/07/11 22:13ID:Rp1Mey72>>347
『何か』どころか全然だめでしょ?
shell_exec した時点で、ENV 引き継げなくのは当たり前。
少し考えてからコードかけ。
>>342
fopen なんてしたら、php が動いているところ(WebServer)の ENV が入って来ちゃうでしょ?
>>330
面白いもなにも、最初に提示された条件だけなら、
<?echo shell_exec('/hoge.cgi')?>
だけで、十分だろ
>>329
最初の質問者がアホだから仕方がない
よって
>>341 は、
・php 側で ENV 全部入れ直す。
・全部 php に直す。
のいずれか以外に道はない
全員、php でもなく、perl でもなく、"CGI"のお勉強でもしる
0361nobodyさん
02/07/12 00:49ID:???この一言だけで「終わった話題を蒸し返した」&「全てガイシュツなレスを垂れた」罪が赦されると
思っているなら>>359は氏ねよ今すぐに。
0362nobodyさん
02/07/12 02:39ID:???0363osage
02/07/12 03:33ID:???どこら辺が、すべてガイシュツなんだ?
#終わった話だったのは、みとめるけどさ。
0364nobodyさん
02/07/12 14:16ID:???0366nobodyさん
02/07/12 20:50ID:GVODDFliあるスクリプトaaa.phpからbbb.phpを呼び出して実行したいと考えています。
が、このbbb.phpは現在↓のようなかたちで
bbb.php?id=1&html=ture
呼び出されています。
idはこれをキーとしてDBを読み、関連データを持ってくる。
htmlはtureであればHTMLファイルを生成し、
指定されていなければそのままブラウザに出力する。
現在bbb.phpは一覧表のような所からリンク形式で呼び出されているのですが
データ登録時(←aaa.php)にHTMLファイルを自動生成する必要性が出てきてしまいました。
readfile("bbb.php?id=1&html=true");
とやってみましたが、「んなディレクトリやファイルはねぇぞ、(゚Д゚)ゴルァ!!」とエラーが。
まぁ、当たり前ですね。実際のファイル名は?以降が無いのですから。
?以降を付けなければ動きますが、idが無い為データも読まずHTMLファイルも作られず…。
こういう時はどうしたらいいのでしょうか???
?以降もくっつけて呼べる関数などあるのでしょうか。
それとも別のPHPファイルでも変数を引き渡せる方法があるのでしょうか…。
長い上に分かりづらくて申し訳ありません。
どなたか、分かる方。よろしくお願いしますぅうう。゜(゜´Д`゜)゜
0367nobodyさん
02/07/12 23:30ID:???aaa.phpの処理が終わった後に
bbb.php?id=1&html=trueを表示させたいって事?
header("Location: bbb.php?id=1&html=true");exit;
じゃ駄目なんか?
0368osage
02/07/13 00:15ID:???HTTP の Location も含めてクライアント側が対応していないとだめですが。
META タグも JavaScript もブラウザの設定によっては×
Location は Netscape4.x(バージョン忘れた) でバグっていてうまく動かなかったはず。
これだけだとPHPに関係ないので、もう一つネタ。
$_GET['id']=1;
$_GET['html']=true;
include_once("bbb.php");
保守性悪そうだけど。
0369nobodyさん
02/07/13 16:07ID:DKHlRt3C時刻表検索サイトを作ることは可能なのでしょうか?
0370j
02/07/13 16:14ID:68IOunJU0373nobodyさん
02/07/13 18:39ID:gZEmWErpもう少し高機能な言語を選択したほうがいいと思います。
0374nobodyさん
02/07/13 18:41ID:gZEmWErpin_array とか基本的な関数は _ 区切りだが、
多くのライブラリの書式に従うなら、 inArray でなければいけない
はずだろ。
0376山田
02/07/13 19:30ID:WDQKN29yせっかくネットを立ち上げ、いざ検索の段階でとぎれることもしばしば
ドコモのエリアで調べたらちょうど円の周辺
ドコモに問い合わせても、いつ周辺に発信基地ができるかわからないとのこと
なにかいい方法ないでしょうか?
電波を増幅させる機器も買ってみましたが今ひとつ
それと10分以上使って発熱するととぎれやすいような気もします
よい解決方法ありましたらどなたか教えてください
ちなみに20時間使用で5000円程度のコースに入っています
0378nobodyさん
02/07/13 22:42ID:???ここに書き込む方々はフリーで公開されている既存のものを使うより、
自作マンセーな方々が多いので答えられないのではないかな。
だからいっそのこと自分で作ってみたらどうでしょう。
検索機能がついているBBSのソースから抽出して改造とかしてみたら、
結構簡単に作れましたよ。
ド素人な私でも作れたのですから、きっとあなたも作れるでしょう。
ちなみに私はレッツPHPのpppbbsから取り出しました。
頑張ってくださいね。
0379nobodyさん
02/07/14 09:38ID:vRstB+mQJava とかイイんでない?
0380川田
02/07/14 10:01ID:A1YZ/1/SここはPHSとかそういう類のスレではないので、、、。
ちなみに書籍でもないんです。。。
perlなスレには真珠がどうのって言うヤシは来ないのになぁ。。。
0381nobodyさん
02/07/15 18:28ID:BTTlxQyy{
echo "$key => $val<br>";
}
/////////////////////
// test.php?aaa=bbb&ccc=ddd
全く表示されません。設定の問題は、
php.ini
bariables_order = "EGPCS"
track_vars = On
register_glovals = On
/////////////////////
環境は
PHP Version 4.3.0-dev
FreeBSD server 4.5-RELEASE FreeBSD 4.5-RELEASE
0383381
02/07/15 23:17ID:BTTlxQyyこれ入れてからダメみたい…。
とりあえず、alpha1
でためしてみるぽ…
0384nobodyさん
02/07/16 00:08ID:0ekhabd+ZendOptimizerをインストールしようと、FreeBSD 4用のアーカイブを
落としてきて、install.shを実行したのですが、httpd.confを検出するところで
正しくパスを入力してるにもかかわらず、not foundといわれてしまいます。
解決法をご教授ください。お願いします。
0385nobodyさん
02/07/16 01:04ID:???$str から文字列 aaa と bbb を取り除きたい場合、
一行というか一回の str_replace() で
行うにはどのようにすれば良いでしょうか?
文が分かりにくかったらすみません。
0386nobodyさん
02/07/16 01:20ID:YSc0cfCKなんかのクイズ?
0389nobodyさん
02/07/16 14:41ID:???共用サーバーで検索システムを作る場合、
(1) 検索PHPファイル + 沢山の小さなデータファイルの組み合わせ
(2) データを含めた大きな1つの検索PHPファイル
この二つのどちらがサーバーに負担が少ないのですか?
メンテナンスのやりにくさは除外して考えてくださいませ。
0390nobodyさん
02/07/16 14:50ID:???0391nobodyさん
02/07/16 17:07ID:???(4)カテゴリごとに一覧を作成して、Ctrl+Fで ユーザに検索させる。
0392nobodyさん
02/07/16 18:27ID:OwvUkVFD例えば「ワールドカップまで〇日」の〇の部分を日々カウントしてくような。。
ひょっとしてものすごいかんたんなのかなぁ。
0393nobodyさん
02/07/16 18:37ID:HSUjeezFどうやったら警告消えるのでしょうか???
(PHP4.1.2)
0394nobodyさん
02/07/16 19:04ID:???ttp://www.2ch.net/read.php?board=5&thread=11944823
みたいなURLで、引数も含めて調べたいのです。
$PHP_SELFだと read.php だけしか取得できないですよね?
0395555
02/07/16 21:52ID:???0396nobodyさん
02/07/16 22:14ID:/jKGjeLf0398nobodyさん
02/07/17 00:03ID:???厨房なりに気の向くまま書いてみますた。
コピペでそのまま動くYO!
<html><head></head><body>
<? if(isset($year) && isset($month) && isset($day)){
if(checkdate($month,$day,$year)){
$nowy = date("Y",mktime(getdate()));
$futurey = date("Y",mktime(0,0,0,$month,$day,$year));
$nowm = date("m",mktime(getdate()));
$futurem = date("m",mktime(0,0,0,$month,$day,$year));
$nowd = date("d",mktime(getdate()));
$futured = date("d",mktime(0,0,0,$month,$day,$year));
$nowunix = date("U",mktime(getdate()));
$futureunix = date("U",mktime(0,0,0,$month,$day,$year));
$result = round(($futureunix / 86400),0) - round(($nowunix / 86400),0);
}}?>
<form action="day.php" method="POST">
<input name="year" type="text" value="<?=$year?>">年<br>
<input name="month" type="text" value="<?=$month?>">月<br>
<input name="day" type="text" value="<?=$day?>">日<br>
<input type="submit" value="調べる"><br>
<? if(isset($year) && isset($month) && isset($day)){
if(checkdate($month,$day,$year)){ ?>
今日<?=$nowy?>年<?=$nowm?>月<?=$nowd?>日から<br>
<?=$futurey?>年<?=$futurem?>月<?=$futured?>日まで<br>
あと<?=$result?>日だという罠。<br>
<? }} ?>
</form></body></html>
0399398
02/07/17 00:19ID:???2038年問題にひっかかってますな。
逝きます。
0400398
02/07/17 02:02ID:???roundなんつうハンパなことしてすみません。
しかもUNIX時間って
日本時間だと時差で1970/1/1の00:00:00じゃなくて
1970/1/1の09:00:00からになってしまうとは知らなんだ。
対応版あげときます。
<html><head></head><body>
<? if(isset($year) && isset($month) && isset($day)){
if($year > 1969 && $year < 2038){
if(checkdate($month,$day,$year)){
$nowy = date("Y",mktime(getdate()));
$nowm = date("m",mktime(getdate()));
$nowd = date("d",mktime(getdate()));
$nowh = date("H",mktime(getdate()));
$nowmi = date("i",mktime(getdate()));
$nows = date("s",mktime(getdate()));
$nowunix = date("U",mktime(getdate()));
$futurey = date("Y",mktime(0,0,0,$month,$day,$year));
$futurem = date("m",mktime(0,0,0,$month,$day,$year));
$futured = date("d",mktime(0,0,0,$month,$day,$year));
$futureunix = date("U",mktime($nowh,$nowmi,$nows,$month,$day,$year));
$result = ($futureunix - $nowunix) / 86400;
// $result = floor(($futureunix / 86400)) - floor(($nowunix / 86400));
// $result = round(($futureunix / 86400),0) - round(($nowunix / 86400),0);
}}}?>
<form action="day.php" method="POST">
<input name="year" type="text" size="4" maxlength="4" value="<?=$year?>">年<br>
<input name="month" type="text" size="2" maxlength="2" value="<?=$month?>">月<br>
<input name="day" type="text" size="2" maxlength="2" value="<?=$day?>">日<br>
<input type="submit" value="調べる"><br>
<? if(isset($year) && isset($month) && isset($day)){
if($year > 1969 && $year < 2038){
if(checkdate($month,$day,$year)){ ?>
今日<?=$nowy?>年<?=$nowm?>月<?=$nowd?>日から<br>
<?=$futurey?>年<?=$futurem?>月<?=$futured?>日まで<br>
あと<?=$result?>日だという罠。<br>
<? }}} ?>
</form></body></html>
0401osage
02/07/17 03:02ID:???<?
$diff = mktime ( 23/*時*/, 59/*分*/, 56/*秒*/, 8/*月*/, 16/*日*/, 2002/*年*/) - time();
$dday = intval($diff / ( 60 * 60 * 24 ));
echo "hoge まで あと $dday 日";
?>
で十分でし。
>>400
・・・(苦
0402nobodyさん
02/07/17 06:33ID:???0403nobodyさん
02/07/17 07:21ID:???xoopsのratelink部分をちらちらと見たけどそんなに複雑な処理はしてないぽいんだけど。
0405381
02/07/17 16:04ID:dKPGShWR{
echo "$key => $val<br>";
}
/////////////////////
// test.php?aaa=bbb&ccc=ddd
全く表示されません。設定の問題は、
php.ini
bariables_order = "EGPCS"
track_vars = On
register_glovals = Off
/////////////////////
ちなみに、
echo $_SERVER["QUERY_STRING"];
は、出力されます。
echo $HTTP_GET_VARS['aaa'];
これは非表示。
わけがわかりません。
0406nobodyさん
02/07/17 16:23ID:44LYmfg4わけわかるかよ、せめてforeach使え。
0408381
02/07/17 18:07ID:dKPGShWRwhile (list($key, $val) = each($HTTP_GET_VARS))
…これは、phpのサイトのサンプル(関係ない)
bariables_order = "EGPCS"
track_vars = On
register_glovals = Off
の設定で、なぜ
echo $HTTP_GET_VARS['aaa'];
が出来ないのか?不思議
0410osage
02/07/17 20:58ID:???不思議なことはたくさん起こるかと。
0411381
02/07/17 22:12ID:dKPGShWRダメポ…(鬱
ちなみに、PHP Version 4.3.0-dev
ZENDバージョン(国際化)したい…。
0412nobodyさん
02/07/18 12:53ID:swBq6K+x初歩的だな
echo $_GET{'aaa'};
じゃなくて
echo $_GET['aaa'];
だろうが。
$HTTP_GET_VARS['aaa'];とかの類の方法は旧式だから4.2.0以降ではデフォルトで使えなくなってることくらいわかってる?
POST、COOKIEとかも同じ。
これでも無理なのかな?
0413nobodyさん
02/07/18 13:22ID:???php4.2.1使ってます。
常にTrack_vars=Onなので
$HTTP_*_VARS
使えます。
http://www.php.net/manual/ja/language.variables.external.php
0414nobodyさん
02/07/18 18:20ID:???メールで投稿した日本語文字列をDBにinsertして、結果を出力させています。
(DBのコードはEUC)
DBに格納されている内容をコンソールで見ると、正確に出力されているのですが、
ブラウザで確認すると一部の文字だけが文字化けして出力されます。
なお、ブラウザからform投稿したものは、ブラウザで見ても正確に出力されます。
メールで投稿した内容を、一度mb_convert_encodingにかませて
EUCに変換しているのですが、mb_conbert_encodingに不具合があるのでしょうか?
ちなみに文字化けする文字は「詮」です。
0415nobodyさん
02/07/18 18:23ID:???うああああ。ふたつめのmb_convert_encodingのつづりが違う・・・・。
0416nobodyさん
02/07/18 22:39ID:17eHgoJQredhat7.2 php 4.2.1 でregister_globals=Offです。
a.phpで
<form metod="post" action="pope.php">
名前:<input type="text" name="hhh">
によって取得したデータを
を
b.phpの
<?php
echo (htmlspecialchars($_POST['hhh']));
?>
で画面に表示出来ないのです。しかし、アドレスの所にはデータを拾っている形跡があります。
register_globals=onにしてhtmlspecialchars($hhh)は動作します
register_globals=offでも
ほかのスクリプトで
urlencode($_POST['keywd']);
で動かしている所は反応してくれるのですが
なにか間違っているところがあったら指摘してください。お願いします。
0417osage
02/07/18 23:41ID:dRuvmx6aつっこみどころ満載なのだが・・・
・ a.php の action が pope.php
・ metod ってなによ?「めとっど」って読むんですか?
pope.php → b.php
metod → method
まじめにやれ
>>414
PHP USERS の ML か PostgreSQL の ML に「詮」が
文字化けするって言うそのものズバリがあったと思った。
#念のため、両方とも日本の方の ML です。
0418nobodyさん
02/07/18 23:52ID:???echo $_GET['aaa'];
を試したの?
こうなったら全部やれ
echo $_GET['aaa'];
echo $_GET["aaa"];
echo $_POST['aaa'];
echo $_POST["aaa"];
0419nobodyさん
02/07/19 00:18ID:???漏れは仕様にもよるけど、とりあえずユーザーがインプットした
データをアウトプットする時は、htmlspecialcharsなんかで
クリーニングしてるけどこれだけで足りてるのかな?
(もちろんインプット時にクリーニングする時もある)
「漏れはこうしてるよ」とかアドバイス希望。
0420412
02/07/19 01:04ID:sCoO02TZなんで俺にいろいろとレスが付くんだ・・・
>>413
あなたは318ではなさそうなのでTrack_varsがOnだろうがOFFだろうが知りませぬ。
私が言ったのは4.2.0以降はTrack_varsがデフォルトでOFFですよって指摘。
>>418
試してませんけど明らかに「括弧」が
{ }
じゃなくて
[ ]
だろ、と思ったので指摘したんです。
ちなみに自分もシングルクォートよりダブルクォート派ですな。 ["aaa"]
0421nobodyさん
02/07/19 02:43ID:inSEDcSk[aaa]派だな。
0422パイの魅学園
02/07/19 02:43ID:Tb+P4mAu/ ̄ ̄ ̄ ̄ ̄ ミ
/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| \_/ / < http://csx.jp/~madrix/
/| /\ \__________
0423osage
02/07/19 02:53ID:aQSDFnic漏れはインプット時にクリーニングは全くしない。
クリーニングが必要なのは出力時でしょ?
PHPのサンプルはなかったけど、
これを参考にしています。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html
とりあえず、既知のXSSならこれで何とかなると思ってる。
0424nobodyさん
02/07/19 05:56ID:6KPWLgZHどんな感じにすればいいの?
教えてください。
0425nobodyさん
02/07/19 06:32ID:EQKcew3/0429nobodyさん
02/07/19 08:33ID:???0431nobodyさん
02/07/19 10:51ID:u7hqhJZWPHPファイルから検索したいのですが、どうもうまくいきません。
Select * from hoge where = 'モナー';
が、テラターム上では通っても、PHP上からでは
上手くいかないです。
ちなみに、半角では実行できています。
原因わかるようでしたらお願いします。
0432413
02/07/19 11:32ID:???>4.2.0以降はTrack_varsがデフォルトでOFF
track_varsは常にOnです。Offにできません。
register_globalsがデフォでOffです。
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:???■ このスレッドは過去ログ倉庫に格納されています