【PHP】質問スレッドpart16【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/04/07 01:06ID:HTcWOpWf上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。
■本家
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-5
0717nobodyさん
04/05/08 19:35ID:???エンコードしないとだめです
↓次の質問ドゾ
0719nobodyさん
04/05/08 19:48ID:???ま、おっしゃるとおりで、RFC的にはURLエンコードしなければいけないけど、
IEなんかだとそのままでも通ってしまうと。
そゆことでしょ。
0721nobodyさん
04/05/08 20:50ID:???全部EUCに統一してますですが、それでも内部とかでは違うのでせうか。
>>714
ありがとうございます。
URLエンコードでググったらbase64_encodeという関数が出てきました。
リファレンスにも書いてありました、もろに「URL関数」と。
0722nobodyさん
04/05/08 20:52ID:???0723nobodyさん
04/05/08 21:23ID:???echo mb_convert_encoding($_GET['hoge'],"EUC-JP","auto");
やってみると?
0724nobodyさん
04/05/08 21:27ID:???phpに送られる、で$_GETで受け取るとクライアントの文字コードに戻ってる
だから、中でeucにしてやらんと
0727nobodyさん
04/05/08 21:30ID:???じゃあjcodeか何かで変換するしかねーか
0728nobodyさん
04/05/09 04:58ID:???0729nobodyさん
04/05/09 05:12ID:???再帰的略語の何がおもしろいのかは、俺にもワカラン
0730nobodyさん
04/05/09 05:15ID:???PHP FAQより :
2. PHPとは何の略ですか?
PHPはPHP: Hypertext Preprocessorの略です。
最初の文字が「頭字語の頭字語」になっているため多くの人は混乱します。
この種の 頭字語は「再帰的頭字語」と呼ばれます
GNUみたいなもん
0732nobodyさん
04/05/09 11:02ID:???って思ってたけど、PHPもそうだったんか
0733nobodyさん
04/05/09 17:23ID:???0734nobodyさん
04/05/09 17:28ID:???0735nobodyさん
04/05/09 17:35ID:???0736nobodyさん
04/05/09 20:42ID:???同意。
http://www.google.co.jp/search?q=PHP&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
5個目でやんのよ・・・
0737nobodyさん
04/05/09 22:58ID:???既にOracle8が動作しているDBサーバー(Win2000Server)があって、
それとは別ホストにLinux+Apache1.3+PHP4.6.2をインストールして
Ethernet(LAN)経由でPHP4とOracle8と連携させたいのです。
この場合PHPのインストールは
どのようにしたらよいでしょうか?
今のところLinuxマシン上にNet8とかを
インストールする必要があるのかなと思ってます。
Oracleのライセンスとかはどうなるんでしょうか。
0739nobodyさん
04/05/10 01:34ID:???http://www.amazon.co.jp/exec/obidos/tg/browse/-/492352/
ここの検索窓から検索するといいかも
0740nobodyさん
04/05/10 04:07ID:???のってどうやってやるんでしょう?
0741nobodyさん
04/05/10 04:15ID:???0742nobodyさん
04/05/10 04:21ID:???0743nobodyさん
04/05/10 04:24ID:???0744nobodyさん
04/05/10 08:49ID:???0745742
04/05/10 12:12ID:???0746nobodyさん
04/05/10 12:55ID:???0747nobodyさん
04/05/10 13:14ID:???俺はそんな事せずにCRON使うが
0748nobodyさん
04/05/10 13:23ID:???1回/日とかならCRONだけど、1回/1分とかならsleepで繰り返し実行。
0749nobodyさん
04/05/10 16:06ID:???・真っ当なやり方
Unix系ならcronやat、windowならタスクスケジューラ(よく知らん)
・力技
無限ループするプログラムを別に用意し、時間が来たら対象スクリプトを実行
sleepでタイミングを見計らって実行
・巷でよくあるタイプ
頻繁に実行されるスクリプトに時間チェックをする仕組みを組み込み、
希望する時間を過ぎていれば該当スクリプトを実行
・番外編
自宅のPCのcronやタスクスケジューラを使って該当スクリプトにアクセス。
メモリ常駐って意味で行くとデーモンやサービスにするのが妥当な気もするが。。
0750nobodyさん
04/05/10 16:33ID:???0752742
04/05/10 17:22ID:???変な条件をつけた質問者にどうぞその常識を教えてやってくれ
0753nobodyさん
04/05/10 17:34ID:???環境すら書かずに質問して、本来ならば叩かれるタイプなのに
暇人が多いおかげで丁寧にレス付けてもらって。
0754nobodyさん
04/05/10 17:37ID:???php4.3.5において、
オブジェクトAのプロパティBをプリント文や、ヒアドキュメントなんかで出力するには
どう記述すればいいの?
print("${A->B}")
昔は、これで動いていたはずなのだが、今はエラーがでちまう。
0755nobodyさん
04/05/10 17:42ID:???0756nobodyさん
04/05/10 17:44ID:???0758nobodyさん
04/05/10 18:05ID:???0759nobodyさん
04/05/10 18:23ID:???・session.use_trans_sid が true
・ブラウザの設定が Cookie を off
・ページにフォームがあり、method='post'
以上の条件で実行すると、form に自動的に以下のような hidden フォームが挿入されます。
<input type="hidden" name="PHPSESSID" value="bc0d06379b5adaab95e8d40a939528a9" />
form が複数あると、すべての form に挿入されます。
これは php マニュアルのどこに載っているのでしょうか?
探しましたが、見つけられませんでした。
厳密な挙動を知りたいので、どなたかお教えいただけないでしょうか?
PHP Version 4.2.2
Linux redhat 2.2.14-5.0 #1
http://www.php.net/manual/ja/ref.session.php
この hidden が挿入されると、HTML-Lint がいきなり赤点になってしまうので、
個人的には鬱です。
タグを閉じるのに />を使ってよいのは xhtml だけなのに。
0760nobodyさん
04/05/10 18:39ID:???は?
0761nobodyさん
04/05/10 18:42ID:???0762nobodyさん
04/05/10 19:05ID:???そのURLに「相対URIは自動的にセッションIDを含むように変換されます」と書いてあるよ?
厳密な挙動を知りたいなら、ソースから
session.c : php_session_reset_id -> php_url_scanner_add_var
url_scanner_ex.c : php_url_scanner_add_var
0763759
04/05/10 19:11ID:???<a> タグにクエリが付加されるのは確かに書いてあります。
しかし、フォームに hiddenフォームが挿入されることは書いてないようです。
あと、すみませんが C のソースを追いかける力量はありません。
どこかに、できれば日本語の文献を見つけたいと思っています。
0764nobodyさん
04/05/10 19:18ID:???0766759
04/05/10 19:25ID:???form=fakeentry という部分でしょうか?
これが、hidden フォームの自動挿入を意味しているのでしょうか?
fakeentry で(やむを得ず)英文ページを検索していますが、具体的な説明が見つからず、
困っております。
0767nobodyさん
04/05/11 01:42ID:1hKjpX9h$db->next_record();
してからprintすると出力される。
0768759
04/05/11 10:10ID:???・session.use_trans_sid が 1 (true)
だと、method='[get|post]'に関わらず、hidden が挿入されるようです。
これは、<form>タグをhtml出力にするか、<?php echo <form> ?> などと
書くかによらず、すべての フォームに挿入されるようです。
おそらく、バッファの出力の前に、SAXで出力内容を全てパースし、
タグを挿入しているのでしょう。
リンクに ?<?=SID?>に当たるものを付加するのも同じやり方のようです。
hidden については 赤マンモス本の PDF版 P80に載っていますが、
http://www.php.gr.jp/php/php4tettei/
PHPマニュアルに詳細情報が見つからないのは残念なことでした。
0769nobodyさん
04/05/11 12:51ID:???url_rewriter.tags設定ディレクティブあたりを変更してみては?
0770nobodyさん
04/05/11 13:19ID:???0771nobodyさん
04/05/11 16:38ID:???0772772
04/05/11 19:01ID:j+/3ilVKの掲示板なのですが、専用アイコン以外の普通のアイコンが表示されません。
中身は↓のようになってます。どうしたらいいのか、教えてください。お願いします。
http://sumiro2.hp.infoseek.co.jp/afraid/bbs.txt
0775nobodyさん
04/05/11 19:18ID:wZxq13vM$num2に入っている値が$num1にあった場合、$num1の配列から、その値を削除するには
どうすればいいのでしょうか?
$num1[0] = '001';
$num1[1] = '002';
$num1[2] = '003':
$num1[3] = '004';
$num2[0] = '002';
$num2[1] = '004';
で$num1を001と003だけにした。
0776nobodyさん
04/05/11 19:58ID:???$num1 = array_diff($num1, $num2);
//検証
foreach($num1 as $key => $value){
echo "$key $value <br>";
}
http://jp.php.net/manual/ja/function.array-diff.php
0777nobodyさん
04/05/11 20:03ID:???url_rewriter.tags : a=href,area=href,frame=src,input=src,form=,fieldset=
session.use_trans_sid : on
の状態で、
<a href="./">a</a>
<MAP name="map1"><area href="./" shape="rect" coords="0,0,100,100"></MAP>
<input src="./">
<form method="post" action="./"></form>
<fieldset></fieldset>
を実行させると、全ての行に ./?PHPSESSID=〜か<input type="hidden" name="PHPSESSID" が挿入される。
要は、trans_sid = onなら、url_rewriter_tagsで設定したものに対して
>>762が示している置き換え手順に従って単に書き換えられる。
formのinput type="hidden"の />はソース内に埋め込まれているので変更したいならここを弄る。
それが嫌ならurl_rewriter_tagsからformを除外し、自分でSIDを埋め込む。
0779768
04/05/11 20:28ID:???やっと挙動が理解できたように思います。
そのタグに クエリを付加するか、hiddenフィールドを埋め込むかは、
タグごとに C のソースで決まっていると考えて良いようですね。
fakeentry は書いても書かなくても良くて、
form= と form=fakeentry は同じなのですね。
hiddenフィールドは fieldset の中に入っていてほしいので、
form= の代わりに fieldset= と書くことにします。
/>については、あまり気にしないことにします。
この自動挿入は、クライアントが Cookie をどう設定しているかによって
hiddenフォームの有無が変わるので、
JavaScript で扱うフォームの要素数を決め打ちにできなくなるのが
少々、悩みの種ですが、それは何とか考えることにします。
ありがとうございました。
0780Upo
04/05/12 00:16ID:UdSoQGZz最初のログイン後にセッション情報をDBに格納して、次のログインは、
セッション情報があれば、ログイン不可にすればと思ったのですが、
最初のログインしたユーザが不正ログアウト(ブラウザーの「X」をクリックなど)
した場合、セッション情報が不当に残ってしまうので使い物になりません。
わかる方がいましたら、お願いします。
0781nobodyさん
04/05/12 04:11ID:Y6JDwafk「"」が含まれてると、$_REQUESTなどで受け取るときに
「\"」と\が付いてきてしまうのですが、
これを付けないように送ることはできないでしょうか?
0782nobodyさん
04/05/12 04:31ID:???0783nobodyさん
04/05/12 04:32ID:???magic_quotes_gpc
http://www.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
0784nobodyさん
04/05/12 11:26ID:BOFMZpgMFatal error: Call to undefined function: pg_insert()
という未定義エラーが出ました。
この実験的なステータスを有効にするには
php.iniのどこを書き換えればいいんですか?
[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On
; Detect broken persistent links always with pg_pconnect(). Need a little overhead.
pgsql.auto_reset_persistent = Off
; Maximum number of persistent links. -1 means no limit.
pgsql.max_persistent = -1
; Maximum number of links (persistent+non persistent). -1 means no limit.
pgsql.max_links = -1
postgresql部分はこれだけ?
0785nobodyさん
04/05/12 11:59ID:???Dynamic Extensionsの項の extensionの組み込み部分
Unix系(pgsql.so)とWindows(php_pgsql.dll)は
違うので、マニュアルを確認のこと。
# つかマニュアル読んで無いやろ?
# 関数リファレンスまでのI〜IVは通しで読んでおくこと。
# 関数リファレンスは暇な時と必要な時でいい
0786nobodyさん
04/05/12 13:19ID:???レスがついてないようなので書いてみる。
似たような仕事をしたことがあった。JSP だったけれど。
標準的な HTTP サーバとブラウザでは、多重ログインを抑止するまっとうな方法は
存在しないように思う。だから、何かを犠牲にしなければならないわけで、
1.(現実的)セッションタイムアウトを短めにする。
タイムアウトを10分とかにして、時間切れを JavaScript のポップアップなどで
告知。ページの一時的な遷移などをユーザに促す。
・長所は、既存のコードや設備の変更がほとんど不要なこと。
・短所は、ユーザがわずらわしいこと。
2.(理想的)Java Applet か Macromedia Flash の導入
これらは、ブラウザをリロードすることなしで、サーバと交信を行うことができる。
小さなパケットを絶えずサーバとやり取りさせて、それが途切れたらログオフしたと見なす。
・長所は、ユーザにもサーバにも負担にならず、技術的にエレガントなこと。
・短所は、多くの新規コードを導入しなければならないこと。
3.(折衷案)隠しフレームを作り、小さな隠しページを絶えず自動リロード。
要するに、2.と同じようなことを1.と同じ技術でできないかと考えたもの。
セッションタイムアウトを1分、リロードサイクルを30秒とかにする。
・長所は、技術的にあまり手間がかからず、ユーザもわずらわしくない。
・短所は、サーバに負担がかかること。イントラネット向きか?
実際の仕事は、私は 2.で行きたかったんだけど、3.のような感じで進んだ。
最後は結局、仕事自体がポシャったんだけどね(苦笑)。
0787784
04/05/12 13:52ID:???関数リファレンスは確かに読んでません。
ていうか、技評のPHPポケットリファレンス(ISBN4-7741-1668-8)を見ながら
書いてるんすが、この本、ちょっと説明不足ぎみ...
785さん、サンコス。RHL9です。暇な時にチェックしときます。
ていうか将来変更される可能性がある関数なので別に使わなくてもいいか....
0788785
04/05/12 15:40ID:???今見直してみたらpg_insert()の未定義エラーなんだね。
それ以前にpg関数使ってる筈だから自分の指摘は見当違いだったな。
ところでポケットリファレンスにはpg_insert()はPHP4.3以降の
対応と書かかれてたけど、結局試してたのがPHP4.3未満だったのかな?
http://jp2.php.net/manual/ja/function.pg-insert.php にも書いてあるね。
pgsql.cのソース見てみたけど、PHP4.2.3のものでは未定義、
PHP4.3.0のものから定義されてた。
pg関数は名称変更もあったり色々と変更/追加が多いので、
使う前にはちゃんと確かめた方がヨロシ。
# データベース絡みはどのみち抽象化して使うのが正攻法だと思います。
0789nobodyさん
04/05/12 15:45ID:???よくWeb上で実現しているポートスキャンをやって、
ポートが空いているかどうかを調べるサイトを作りたいのですが、
方法や使用する関数名など調べてもいまいちピンときません。
どなたかご存じのカタられませんか?
0790nobodyさん
04/05/12 16:38ID:???自分のところをチェックするだけなら巷に多々あるスキャンツール
を使えばよいこと。仕組みを理解したり実装を考えたり出来ないのなら
他人が利用することが前提のツールを作ろうとしなさんな。
仕組みから実装を考える部分で疑問が出れば、それを質問として
訊けば回答が得られる可能性はある。でも実装は難しくないよ。
(仕組みも他の通信プログラムに比べれば簡単)
0791nobodyさん
04/05/12 16:58ID:???に
>Warning
>Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.
と有りますが
具体的にどんな問題が有りますか?
またApache2にDSOではなくstaticに組み込むことは出来ますか?
0792nobodyさん
04/05/12 17:18ID:???実運用では使わないでねって事じゃないの
0793784
04/05/12 17:22ID:???今phpinfoしてみたらphp4.2.2だった...ガーン
phpリファ本はphp4.3.0-pre2をベースにしてます。
どうりで動かない部分が多くて苦労してるはずだ。
0794nobodyさん
04/05/12 17:44ID:???同一人物かどうかしらんけど、WebProg板のApacheスレと自宅鯖のApacheスレに同様の
書き込みがあったところなんだが。
0795nobodyさん
04/05/12 18:02ID:???0797nobodyさん
04/05/12 18:22ID:???こう言われてるけど、普通に使えてるよー とか 話にもならない とか
そういうのって無いですか?
後
>979 名前:DNS未登録さん[sage] 投稿日:04/05/11 18:34 ID:???
>最近Apache側とPHP側が和解した
>
>PHP側の譲歩
これもちょっと気に成ったんですが、もうすぐApache2で安定したバージョンが出せる
という解釈であってますか?
後半は向こうで聞いた方が良いのかな?
0798nobodyさん
04/05/12 18:24ID:???死ねよ。スレ荒らすな
0799nobodyさん
04/05/12 18:54ID:???0800nobodyさん
04/05/12 18:57ID:???いやメモリーリークするような現象が見受けられる。
運用のスタイル如何で他にも支障があると思う。
トライtoチェックandリカバリが必要という点で
Apache2+PHP(Apache2filter)"実運用"に向かない。
どうしてもApache2の機能が使いたいならPHP(CGI)と
組みあわせる。
0801nobodyさん
04/05/12 19:01ID:???ありがと
何か、一年ぐらい前から進歩してないかな?
なら和解って話しに期待を寄せつつ待ちかな
タイミングが悪い時に書きこんじゃって、すみませんでした
0803nobodyさん
04/05/12 19:58ID:???0804nobodyさん
04/05/12 20:14ID:???0805nobodyさん
04/05/12 20:24ID:???0806nobodyさん
04/05/12 20:27ID:???( ´,_ゝ`)プッ
0807nobodyさん
04/05/12 21:09ID:???いやいやいや・・
>>798(俺)に対してプッって言われたから>>802(俺)が反論したわけで
状況見れば分かるようなことをわざわざ等号で結ぶ必要があるのか?
等号厨なのか?
0808nobodyさん
04/05/12 21:33ID:???0809nobodyさん
04/05/12 22:28ID:???レンタルサーバーのPHPがApacheのモジュールとしてインストールされているかどうかを
判断するには、普通に.phpが動作したらokなんですか?
cgiとして動くのは usr/bin/php が必要と言うこと?
Apacheのモジュールとして動作させた方が高速で負荷が少ないと聞いたもので…
0812nobodyさん
04/05/13 03:26ID:???プッε=_| ̄|( ´,_ゝ`)
0813nobodyさん
04/05/13 08:19ID:Ldb9FmGr完全レイアウト目的で使おうと思い入門サイトなど見てみたのですが
そういう使い方を解説してるページがありません。
やりたいことは、たとえばこういうレイアウトのページ
■■■■■■■■
■■□□□□■■ ■・・・メニューや飾り枠など
■■□□□□■■ □・・・中身のHTML
■■□□□□■■
■■□□□□■■
で、メニューを叩くと □ の部分のみ書き換えるというやつです。
そのように展開したページのURLはindex.php?aaa=bbbのようになってます。
なぜPHPに目をつけたかというと
・フレームを使いたくない
・全HTMLに■部分をつけたくない(Updateが大変)
・DreamWeaver等エディタではやりたくない(リンケージ機能など)
という理由だけなのですが、こういう目的のPHP使いは
邪道なのでしょうか?これに結びつく使い方の説明が見つからないので・・
他にもっといい何かがあるのでしょうか?
一応初心者級ですがperl, cgi, javascriptは書けます。
どなたかアドヴァイを・・・!
0815nobodyさん
04/05/13 09:42ID:???ファイルシステム関数のトコとかもう一度リファレンス読んでみてはいかがでしょう。
ぉれ的にはそれでいけるとおもうんですけど。
0816nobodyさん
04/05/13 09:42ID:Ldb9FmGr本気本気超本気です。
ドエライ勘違いしてます?
おしえてください・・・
■ このスレッドは過去ログ倉庫に格納されています