【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を見よう。
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:???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:???■ このスレッドは過去ログ倉庫に格納されています