5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

■PHP板 質問専用スレッド■

1 :名無しさん@お腹いっぱい。 : 2001/02/21(水) 01:50 ID:C/orvzgM
一応たててみた。
レスは気長に待つのが良い感じかも。

答えられる方、返答よろしくお願いします。

参考リンク
■本家
http://www.php.net/

■Japan PHP Users Group
http://www.php.gr.jp/

■PHP 日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html

■PHP日本語マニュアル
http://www.asakawa.ne.jp/doc/php/ja/sjis/


2 :ねたろ : 2001/02/21(水) 02:39 ID:SFBBSOT6
$word = mbreg_replace("/([ア-ン])(ッ)([ア-ン])([ア-ン])/","\\1\\2ー\\3",$word);
で「セックス」が「セクース」に変換できないのですが、
どうしたらいいですか?


3 :恥ずかしいがマジ質問 : 2001/02/21(水) 03:21 ID:xrV1uwMc
IDって何?
それと、暗号みたいな表示と???の違いは?
んで、???にするにはどうすればいいの?

普段教えて君を罵倒していますがこればっかりはさっぱりわかりません。
シャッポを脱ぎますのでどうぞ教えて下さい。よろしくお願いします。

4 :名無しさん : 2001/02/21(水) 03:34 ID:???
>>3
2ch初心者さんかな?
2chのシステムでわからないことがあったら、まずは
http://saki.2ch.net/qa/index2.html(初心者質問板)へ行って調べるのが吉です。

なお、初心者板からのリンクで飛べますが
http://www16.tok2.com/home/niwatori/#id
にIDについての記述があります。

5 :名無しさん@お腹いっぱい。 : 2001/02/21(水) 03:38 ID:SFBBSOT6
>>2


$word = mbreg_replace("/([ア-ン])(ッ)([ア-ン])([ア-ン])/","\\1\\3ー\\4",$word);

6 :恥ずかしいがマジ質問 : 2001/02/21(水) 03:43 ID:xrV1uwMc
>>4
夜中なのに早レスありがと!
2ch初心者ではないけどID付板は初めてです。
調べてみます。

7 :恥ずかしいがマジ質問 : 2001/02/21(水) 03:50 ID:???
わかりました。
メチャ簡単なんですね。
メチャ恥ずかしい。

8 :名無しさん : 2001/02/21(水) 04:13 ID:???
>>2,>>5
自作自演1号か?(w

9 :名無しさん@お腹いっぱい。 : 2001/02/21(水) 23:06 ID:RQEfk2P6
拡張子.htmでPHPが動作するようにしてますが
何か問題があるのでしょうか?

ちなみに専用鯖です

10 :名無しさん@お腹いっぱい。 : 2001/02/22(木) 00:38 ID:m6ljkwP2
>>9
状況を理解できていれば問題なし。
いろいろ試してフィードバックしてくだされ。

#専用鯖か。いいな

11 :筑集眺餅 : 2001/02/22(木) 01:36 ID:R3pbQ7YU
筑集眺餅って、何ですか?

12 :名無しさん : 2001/02/22(木) 01:38 ID:???
<? ?> がまったく含まれていないHTMLだけのページを呼び出す時の負荷の増加は
ないのでしょうか?ないのならうちもそうしたいので。

>>11
デスクトップの半角カナじゃないっすか?


13 :ねたろ : 2001/02/22(木) 01:59 ID:FDh2kcPQ
>>12
全くphp3タグのない htmlふぁいるの拡張子を php3にして、
同じ内容の 拡張子が htmlなふぁいると比べてみたらどうでしょうか。

14 :電動ナナシ : 2001/02/22(木) 02:08 ID:NiS.Wf9A
>>12
<?php ... ?> な文があろうがなかろうが、PHP の Parser を通過する以上、
それだけのオーバーヘッドは確実にある。

ただ、その絶対的な負荷はそれほど大きくはないだろうけど、アクセス数が多くなれば
無視できない数字になることも確実。


15 :名無しさん@お腹いっぱい。 : 2001/02/22(木) 02:26 ID:C0E7kzlE
Perlのように簡単にインストールできますか?
インストールする容量ってどれぐらいですか?

16 :12 : 2001/02/22(木) 10:26 ID:???
>>13
>同じ内容の 拡張子が htmlなふぁいると比べてみたらどうでしょうか。

topで見てたりしたんですけど、よくわかりませんでした。
%CPU %MEM 以外に見るところあります?

>>14
><?php ... ?> な文があろうがなかろうが、PHP の Parser を通過する以上、
>それだけのオーバーヘッドは確実にある。

やっぱりそうですか。おっしゃるとおり、アクセスが多いとまずそうなので
やめておいた方がいいみたいですね。


17 :ねたろ : 2001/02/22(木) 10:37 ID:???
>>12
そのファイルが PHPスクリプトだということが知られたくない」
のが理由ならば、APACHEのhttpd.confを

AddType text/html .html
AddType application/x-httpd-php3 .htm

とするのはどうでしょうか。

18 :9 : 2001/02/22(木) 12:32 ID:W/90XNpM
HPビルダーでPHPスクリプトを使っていますが
馬鹿っぽいですか?
PHP+cookie+外部CSSで来客者の環境ごとに
好きなフォントサイズを決めれるようにしてみたけど
これはスペシャルに馬鹿っぽかった・・・
>10
サンクス♪
見えない不具合があったら嫌だな〜と思っていました
>12
とりあえず日1万ビジター以上のサイト丸々PHPを使用していても
とりたて問題はなかったです
(PHP4使用、PHP3の場合は話は別)
それ以上はちょっと負荷テストをしている訳ではないので
判らないです・・・すみません

でもPHPを使わないのなら拡張子を.htmlにすれば済みますよ
>17
PHP4.*なら
AddType application/x-httpd-php .htm
ですね♪
ちなみに私の場合は
「PHPスクリプトだということが知られたくない」
よりも、
「HPビルダー等の作成ツールでSSI感覚それ以上で使う」
でした・・・

ローカルでPHPが動作する環境ですので
HTMLウィルス騒ぎの時はドキッとしたものです(笑

19 :名無しさん@お腹いっぱい。 : 2001/02/22(木) 19:29 ID:gXTsTizw
PHPとPerlはどっちが動作速いですか?

20 :12 : 2001/02/22(木) 19:33 ID:???
>>17, >>9 別にPHPとわかるのは構わないです。
理由としては、hiddenで固有のIDを持ち回らせているため、PHPのところから
HTMLのトップに戻られたりすると、消えてしまうのです。(クッキーは使いたくない)
なので、普通のページもPHPにできたらいいなと思いました。
あと、.htmlのまま埋め込めたら、CGIとかSSIでやっているカウンタや解析も
1つにまとまるので楽かなと思いまして。

1万ビジター以上でも大丈夫なら、心が動きます。
.html と .htm で使い分けるのもいいですね。

21 :ねたろ : 2001/02/22(木) 19:33 ID:???
>>19
激しくがいしゅつですよ。
http://tako.2ch.net/test/read.cgi?bbs=perl&key=957205230

22 :ねたろ : 2001/02/22(木) 19:37 ID:???
>>20
高さ0のフレームを常に入れるようにしたら。
かくしフレームでIDを持ち回る。



23 :電動ナナシ : 2001/02/22(木) 22:23 ID:NiS.Wf9A
>>20
1 万ビジターというのは、1 日あたり 1 万アクセスってこと?
その程度なら PHP Parser 通過させても大丈夫でしょ。

PHP のコードがなければ PHP Parser が Zend Engine 呼ぶこともないから、
その程度なら誤差程度におさまるんじゃないかな。

試しに Apache 付属の ab (Apache Bench) とか使って CPU にかかる負荷を
比較してみたら?

>> hiddenで固有のIDを持ち回らせているため
hidden だとクライアント側で偽造される可能性が歩けど、それはいいの?


24 :9 : 2001/02/22(木) 23:43 ID:OHjRHY6w
>23
ビジターとは正確な来客者数の事です
(一回ログをDLして調べてみた)
ちなみにサイト全体で8万PV程度です
>PHP のコード
殆どのページ使ってます・・・
PHPに依存しまくり
>ab (Apache Bench)
もう寝るので明日テストします
多分指摘通り誤差程度と思いますよ

25 :12 : 2001/02/23(金) 01:12 ID:???
>>22
フレームは苦手なんです。(意味不明ですみません)

>>23
>その程度なら PHP Parser 通過させても大丈夫でしょ。

じゃあ、やってみます。

>hidden だとクライアント側で偽造される可能性が

これは、別に偽造されても構わないものなので。
Perl板で流行ってる汚染チェックみたいなものさえしておけばよい値
でして、「できれば持ち回れた方がよい」という程度です。


26 :名無しさん : 2001/02/24(土) 14:10 ID:???
if (!ereg('^[^./][^/]*$', $userfile))
die('bad filename'); // 処理せず、終了。
フォームからの入力値のチェックで他にはどんなことをすればいいですか?


27 :電動ナナシ : 2001/02/24(土) 22:23 ID:zloZUPMM
フォームごとに入力を期待する値の種類というのがあるはず。
数字だけ、数字とアルファベット、数字とアルファベットと日本語、等々。
それらを事前にきちんと定義して、それのチェックを行うのがよい。
数字だけなら、$checked = 0 + $input; とか。

逆の言い方をすれば、入力項目の意味を確定せずに、有効なチェックというのは
できない。

あと、チェックは例外事項をチェックするより、要求事項のチェックをするのが
よいと思う。例えば [|/\.] といった文字列が「ない」ことをチェックするより、
[A-z0-9-_] というクラスの文字だけが「ある」ことをチェックする等。

ただし入力を期待する内容にも依存するので、一概にそうしろとは言えないが。


28 :名無しさん23 : 2001/02/25(日) 04:46 ID:JvVTZgoo
PHP4を導入しようかと考えているのですが
日本語が使えないという辺りの意味が良く分かりません

SJISでデータを保存したり表示したりできないと言う事なのでしょうか?


29 :電動ナナシ : 2001/02/25(日) 05:28 ID:cIrA8Zp.
>>28
バニラな PHP4 は EUC のみ。

ftp://night.fminn.nagano.nagano.jp/php4/ にある塚田さんの jstring を
使えば SJIS/UTF8/JIS/EUC に対応。


30 :名無しさん : 2001/02/25(日) 11:18 ID:???
>>27
言われるとおりに、場合に応じて使い分けてみます。
ありがとうございました。

31 :名無しさん研究所(仮) : 2001/02/25(日) 11:51 ID:gE6vgNcg
>>29
フォームから送信された値もsjisで送れますか?
今はnkfでeuc→sjisしています。

32 :名無しさん@お腹いっぱい。 : 2001/02/26(月) 04:26 ID:5V63qlVI
それは今開発中

33 :33 : 2001/03/02(金) 20:12 ID:iv9zKkKM
質問です
a.exeというソフトが有ったとします
a -b.html
とすることでb.htmlを出力します
hphのペ〜ジを開いた時にb.htmlを表示するには
どうしたら良いでしょうか?

お礼はエロ画像ぐらいしかありませんが
お好きなアイドルの名前を言ってくれれば
アイ@ラたくさん探してきます

34 :PHP4.0.5 リリース間近 : 2001/03/03(土) 11:18 ID:???
>>33
素直に
<?php
exec("a.exe " . $name . ".html");
include $name . ".html";
?>
でいいんじゃないの?同時アクセスがあっても $name が重ならないように
工夫しないと危険だけど。まあその辺は宿題ということで。PID 使えば
いいかもしれないけど、安全性を確認していないので自己責任で。


35 :33 : 2001/03/03(土) 14:25 ID:RJEH3MjE
どうもありがとうでぁす
えぇ〜と、何も希望されなかったようなので
私の好みで選ばさせてもらいました

ttp://www.geocities.co.jp/Milano-Aoyama/6487/sickhoney/sickboy_uchiyama.jpg
ttp://www.geocities.co.jp/Milano-Aoyama/6487/sickhoney/sickboy_uchiyama.02.jpg



36 :初期不良 : 2001/03/03(土) 17:54 ID:???
りちぎと言うかなんというか・・・

37 :電動ナナシ : 2001/03/04(日) 12:25 ID:???
>>34-35
普通にディスクに書きに行くと負荷が高まるので、a.exe に手を入れて
標準出力に出すようにできればいいんだけどね。

PID の安全性は分からないけど、microtime() の結果 + PID なら安全
なんじゃないかな?


38 :名無しさん@お腹いっぱい。 : 2001/03/05(月) 16:40 ID:FMvCyBpI
インストールしようと思ったら、ODBC32.DLLがありません。
どうしましょう?

39 :名無しさん@お腹いっぱい。 : 2001/03/05(月) 17:03 ID:???
PHPでリダイレクトはどうすればよいのでしょうか?

if (is_error()) {
&nbsp;&nbsp;// ここでerror.phpにリダイレクトしたい
}

のような場合です。

40 :電動ナナシ : 2001/03/05(月) 18:43 ID:???
if (is_error()) {
  include "error.php";
  exit;
}
でもいいし、まだ何一つ出力していなければ HTTP Redirect 使えば
いいんじゃない?
if (is_error() && !headers_sent()) {
  header("Location: http://" . $HTTP_SERVER_VARS["HTTP_HOST"] . "/hoge/error.php");
  exit;
}


41 :電動ナナシ : 2001/03/05(月) 18:45 ID:???
>>38
MDAC (Microsoft Data Access Control) を入れれば?
http://www.microsoft.com/japan/developer/data/download/mdac/26/26065263.asp


42 :電動ナナシ : 2001/03/05(月) 18:55 ID:???
s/Control/Components/
鬱だし脳


43 :39 : 2001/03/05(月) 19:12 ID:???
>>40
電動ナナシさん、劇感謝です!

44 :38 : 2001/03/05(月) 21:36 ID:???
>>41 電動ナナシさん、
どうもありがとうございます。

.Netに興味あるんで、Cマガ買ってインストールします。


45 :33 : 2001/03/07(水) 03:53 ID:KEaE2hSM
そこまで行くとBASIC上がりの私には理解できないっす
Perlのfile lock機能みたいのは無いんですかねぇ
ほらよくチャットのlogの時に使ったやつ

んでマタマタお礼のアイドル指定が無かったので
嫌いなんですが将来のお宝度も考えつつ
浜崎あゆみのパンチラにしました
昨年12月30日のCATV LIVEに出演していた時のです
ttp://membres.tripod.fr/washi/tp486.jpg

46 :名無しさん@お腹いっぱい。 : 2001/03/08(木) 11:14 ID:qBpM5VmI
flock($fp, LOCK_EX);


47 :名無しさん : 2001/03/08(木) 15:43 ID:???
PHP4の mail() で送信する時にサブジェクトや本文に ' (シングルクォート)が
入っていると、その部分から切れてしまうのですが、対策はないでしょうか?
今は str_replace で全角に変換してからmail関数に渡しています。


48 :名無しさん@お腹いっぱい。 : 2001/03/08(木) 22:07 ID:???
phpとxmlは同じ<??>タグを遣いますが
共存できますか?
<?php <?xml ?> ?> とか?

49 :電動ナナシ : 2001/03/10(土) 12:48 ID:???
>>48
共存できるよ。

その例は逆だね。PHP の中に XML (の言語インスタンス)のタグを入れる
場合にはただの文字列になるよね。
<?php echo "<?xml version=\"1.0\"?>\r"; ?>
とか。

その逆の場合のために、<?php という書き方が提供されている。
<?xml <?php echo "version=\"1.0\"?>"; ?>
これは "<?" だけだと XML Parser が混乱する可能性があるから。

ちなみに、PHP のコード入りの XML 文書の場合、
・PHP で処理 -> ただの XML 文書 -> XML Parser で処理
というパターンと
・XML Parser で処理 -> PHP プログラム生成 -> PHP で処理
というパターンで扱われる可能性があるね。前者はときどき見るけど、
後者の書き方をしている人っているかな。XML を用いた PHP コードの
自動生成ってどこまで可能なんだろ。


50 :48 : 2001/03/11(日) 02:42 ID:???
電動ナナシさんすごくわかりやすく
説明していただきありがとうございます。
安心してphpを使い続けます。

51 :電動ナナシ : 2001/03/11(日) 12:52 ID:???
>>50
>>49 の説明に一部間違いがあるので訂正。
s/<? だけだと XML Parser が混乱/<? だけだと PHP Parser が混乱/

一番混乱していたのは俺だな・・・。鬱出し脳。


52 :名無しさん@お腹いっぱい。 : 2001/03/11(日) 23:37 ID:1NNZo/5Q
Win32 上で crypt 関数を使用したいのですが,関数が見つからないというエラーになってしまいます。
<? phpinfo(); ?> を見てもうまくいってないようで。UNIX 上などでは問題なく動作するみたいですが。
メーリングリストを検索してみたところ,一昔前の php3_crypt.dll ならうまくいくらしいのですが,
どうもよくわかりません。
他に何かいい方法があれば教えてください。

OS : Microsoft Windows 2000 SP1
サーバー : Microsoft IIS 5
PHP バージョン : 3.0.17


53 :電動ナナシ : 2001/03/13(火) 21:00 ID:???
>>52
どうも Win32 環境ではダメみたいだね。

PHP の Crypt() 関数は ext/standard/crypt.c で定義されているけど、
これは HAVE_CRYPT が true でないと組み込まれない。

ところが
main/config.w32.h では
> /* set to enable the crypt command */
> #define HAVE_CRYPT 0
となっていて、HAVE_CRYPT が False になっている。

だから使えないと思っていいんじゃない?


54 :名無しさん@お腹いっぱい。 : 2001/03/14(水) 01:31 ID:Qhi9amLc
Perlにも飽きたので、PHPを勉強してみたいと思ってます。
で、PHP3が良いのか4が良いのか迷ってるんですが…。

今から勉強するなら、やっぱり新しい4入れるのが良いでしょうか?
# PHP3に対するPHP4って、Perl4に対するPerl5くらい普及してるんでしょうか…


55 :名無しさん@お腹いっぱい。 : 2001/03/14(水) 01:33 ID:Ko0xDo86
Perl に飽きるくらいじゃ何やってもダメ。
Perl を極めてからもう一度質問。

56 :54 : 2001/03/14(水) 01:40 ID:Qhi9amLc
いや…極めてはいないですけど個人的範囲なら一通りできると思います。
(Advanced Perl Programming くらい)
飽きるというか、たまには気分を変えてみたいなと…。

すいません教えてください (;´д`)


57 :名無しさん@お腹いっぱい。 : 2001/03/14(水) 01:56 ID:zoKfcyfE
PHPが埋め込まれたページを、
Content-encoding: gzip
で表示させる事は可能でしょうか?

Perl を使ったCGIでは、この手法ですいぶんデータ転送量を減らせたので
ぜひPHPのページでも圧縮したいのです。

APACHEの設定でなんとかなるものなのかな?

58 :電動ナナシ : 2001/03/14(水) 02:09 ID:???
>>57
ここに出てるよ。

"Controlling PHP Output: Caching and compressing dynamic pages"
http://www.phpbuilder.com/columns/argerich20010125.php3


59 :Error 401 : 2001/03/14(水) 09:14 ID:on3m5pqo
>>57
Apacheなら、これも試してみてくれ。

http://www.medinfo.m.ehime-u.ac.jp/kandalva/2000/compressedhttp/
H要素を抜粋。

>HTTP圧縮について
>HTTP compressionとは?
>mozila.org HTTP compressionに関する報告
>HTTP compressionの実例
>IIS5.0の場合
>Apacheの場合

60 :名無しさん@お腹いっぱい。 : 2001/03/14(水) 21:46 ID:nUlZWsxw
<?php require("***.php?value1=A&value2=B") ?>
この引数取得するにはどうやったらいいのか教えてください。

61 :電動ナナシ : 2001/03/15(木) 02:54 ID:???
>>60
正確には
 require("http://server/path/file.php?value1=A&value2=B");
だよね。ファイル名だけだとエラーになる。
参照: http://www.php.net/manual/en/function.require.php

この場合、Web サーバーである "server" に "/path/file.php?..." という
リクエストが渡されたのと同等になるから、file.php からは単純に value1 や
value2 として参照できるでしょ。特に工夫するべきことはないと思うけど?

外部から渡される変数の扱いについてはこちらをどうぞ。
なお register_globals について注意。
http://www.php.net/manual/en/language.variables.external.php


62 :名無し : 2001/03/15(木) 18:17 ID:???
filesize($filename) だとファイルサイズしか調べることができませんが
指定ディレクトリ以下の合計サイズを計るものはないのでしょうか?

今はPerlで $size = `du -ks ./$dir`;ってやってます。


63 :名無しさん@お腹いっぱい。 : 2001/03/16(金) 00:54 ID:???
>>61
ご親切にありがとうございます。


64 :名無しさん@お腹いっぱい。 : 2001/03/16(金) 03:34 ID:/P4oUu6o
PHP するなら、PHP4 でしょう。3はもう終わり。

65 :名無しさん@お腹いっぱい。 : 2001/03/19(月) 20:03 ID:???
みんな4連休?
漏れは、ついさっき、明日が休日だってことに気づいたよ。
なんか、有給取ってるやつが多いのは気づいたんだけど。

66 :名無しさん@お腹いっぱい。 : 2001/03/19(月) 20:19 ID:80yE1Peo
>>65
うちは祭日休みじゃないので関係ないのさ〜(泣


67 :電動ナナシ : 2001/03/20(火) 06:46 ID:???
>>65
休み?そうだったんだ・・・。
でも木曜日まではそんなの関係なし・・・。撃つ出し脳。


68 :名無しさん@お腹いっぱい。 : 2001/03/22(木) 01:31 ID:Uh3qtwko
あにょ〜、PHPでクラスを使う利点がよく分からないんですが・・・
functionを使うのと、どう違うんでしょうか?
「いつもとちょっとだけ違う処理」を記述するのに便利・・・なのかな?

69 :電動ナナシ : 2001/03/23(金) 12:23 ID:???
>>68
グローバル変数を使わずにすむ。

で、グローバル変数はバグの温床になる。


70 :名無しさん@お腹いっぱい。 : 2001/03/24(土) 19:08 ID:WOfMySOY
4月からPHSか携帯を使って
ノートパソコンでネットをやろうと思うんですが
どうすればいいのかまったくわかりません
親切な人どうか教えてください

一応いまAUのC305S(携帯)つかってます

知りたいこと
どこのケーブルを使えばいいのか
テレホみたいなサービスはあるのか
大体一月いくら位かかるのか

71 :22世紀を目指す名無しさん : 2001/03/24(土) 20:55 ID:???
>>70
あのぅ、PHPとPHS勘違いしてません?

72 :名無しさん@お腹いっぱい。 : 2001/03/24(土) 21:00 ID:xEvEDbxk
あああああああああ!!!
すいませんでしたっ!!
今すぐ氏にマスゥゥゥゥゥゥゥゥゥl!!

73 :71 : 2001/03/25(日) 03:32 ID:???
そ、そか。(ネタじゃなかったのか)
携帯PHS板へ逝ってよし!
http://cheese.2ch.net/phs/index2.html


74 :68 : 2001/03/27(火) 01:14 ID:cjR/zJig
>>69 すみません、まだ良く分かっていないのですが、えと・・・、例えば
class Select_db {
$this->con_db();//dbにコネクト
function Select_db ($select_str) {;//select * from hoge }
}
$sel = new Con_db;
echo $sel->select_db("foo");
っていうのと、
function select_db($select_str,$db_name){
;//db_nameにコネクトしてselect_strでselect
return($bar);
}
echo select_db("foo");
って言う感じのものと、違いがよく分からないんです。
いわゆる「マンモス本」のソースを見ると、データベースの接続なんかも
わざわざclassにしている様に思えちゃって・・・。
class初心者の勉強に適した本かwebページ、いいの無いでしょうか?

75 :名無しさん@お腹いっぱい。 : 2001/03/27(火) 03:53 ID:mI3Uo2xk
今度PHPをはじめて学ぼうかと思うのですが、
(いままでの知識は、Perlで簡単な掲示板をつくれるくらい)
PHP3とPHP4、どっちから手をつけるべきでしょうか?
#一応プロバは両方使えます
#特に、PHP4だと日本語関連が初心者にはつらいのかな・・・?と
#いやまだまだかいまみたくらいの知識しかないですが

76 :75 : 2001/03/27(火) 03:55 ID:mI3Uo2xk
1つ言い忘れましたが、Postgresと絡めるつもりです
#ってあんま関係ないかな?

77 :名無しさん@お腹いっぱい。 : 2001/03/28(水) 13:22 ID:6UChEx1w
PDF文章を用意して、そこにDBから名前を差し込んだりしたいんですが、
このあたりのPDFlibのサンプルはないものでしょうか。

ちなみに、DBとのやりとりはColdFusionを、この帳票出力の部分にだけ
PHPを使います。ソフトウエアにかかるコストの削減、とか。悩んでいる
人件費の方が高いと思うが・・・。

78 :名無しさん@お腹いっぱい。 : 2001/03/28(水) 13:31 ID:D2qbX5.s
アメリカのウェブホスティングサービスを使っています。
国際化対応していないPHPで日本語文字コード(S-JIS)を使うと、
どんな問題が出るんでしょうか?

79 :名無しさん : 2001/03/28(水) 20:18 ID:???
>>78
変換が出来ません。

80 :snatch : 2001/03/29(木) 00:11 ID:tPetPR2Y
はじめまして。

すいませんが、PHP4の iconv モジュールのありか
ご存知の方いらっしゃいませんでしょうか。
ftp://night.fminn.nagano.nagano.jp/php4/からなくなって
しまっていましたので、再インストールができなく
なっています。
ご存知の方宜しくお願いいたします。

81 :名無しさん@お腹いっぱい。 : 2001/03/29(木) 00:12 ID:qjKPpnR6
iモードを対象にしたWebサイトの構築を考えているのですが、
iモードでphp3って拡張子は認識されますか?

82 :電動ナナシ : 2001/03/29(木) 02:06 ID:???
>>75
それはもはやオブジェクト指向分析の話だね。クラスをどうやって発見するか、
クラスの粒度(メソッド数とか属性数とか)をどうするか、クラス間の関係を
どのように定義するかは、オブジェクト指向の中でもかなり賑やかな分野。
言い換えれば決定版がない分野なんだよね。

参考書籍はいろいろあると思うけど、自分は
『オブジェクト指向プログラミング入門』Timothy Budd 著(ピアソン)
 http://www.amazon.co.jp/exec/obidos/ASIN/4795297088/
『オブジェクト指向再入門』金澤典子著(SRC)
 http://www.amazon.co.jp/exec/obidos/ASIN/4883731278/
あたりがいいんじゃないかと思う。割と初心者でも読める。

情報システム板にもオブジェクト指向のスレッドがあったはず。


83 :電動ナナシ : 2001/03/29(木) 02:17 ID:???
>>77
PDFLib は分からないなあ・・・。期待していたらごめんね。

>>78
正規表現といった文字列操作関数が、思ったとおりに機能しないって問題も
あるね。

>>80
ここにあったよ。
http://www.linet.gr.jp/~juk/plamo/parts/2.0/srcs/www/php/modules/

>>81
大丈夫だよ。拡張子とは無関係に、サーバーから HTML として送信されるので
普通に表示される。i-mode って Shift-JIS のみなんだっけ?。文字コードは
大丈夫?


84 :名無しさん研究所 : 2001/03/29(木) 14:09 ID:RpkkEq1U
>>83
機種によってはeucにできるやつもあるけど、
毎ページ手動で変換だったかな。
metaでeuc指定してもダメなのは確か。

85 :78 : 2001/03/29(木) 16:22 ID:fz3D0Tzs
>>83
うー、正規表現がちゃんと使えないのは痛い。
国際化対応してないPHPで日本語処理してる人っていますか?
あまり妙なところではまるのはイヤですよ、カテジナさん!

86 :snatch(80) : 2001/03/29(木) 17:57 ID:sAOVkOgs
電動ナナシさん。
ありがとうございます。
発見しました。
さっそく今からウィンストールします。

87 :68 : 2001/03/29(木) 18:26 ID:5fznFLY6
電動ナナシさん、ありがとうございました。
次の給料で参考書買って勉強します。

>>85 いったんeucに変換すれば、ある程度使えますよ。
具体的にはどんな処理をする予定なんですか?

88 :名無しさん@お腹いっぱい。 : 2001/03/29(木) 22:55 ID:mdcEde9c
>>78
http://www.spencernetwork.org/jcode/

このへんを参照して組み込んでるよ。

89 :電動ナナシ : 2001/03/30(金) 10:26 ID:???
>>89
おおお、結構きちんと動きますね。これは便利かも。


90 :電動ナナシ : 2001/03/30(金) 10:27 ID:???
>>89 の ">>89" は ">>88" の間違い。
また間違えた。鬱だし脳。


91 :名無しさん@お腹いっぱい。 : 2001/03/30(金) 11:20 ID:3mId4kv2
ありがたや〜

92 :名無しさん研究所 : 2001/03/30(金) 21:30 ID:4s5ibdYk
>>89
作者さん重いとか言ってるけど、実際どうよ。

93 :名無しさん : 2001/03/30(金) 23:47 ID:mhi/yLLY
Yasuo Ohgaki 氏はこの板にいらっしゃいますか?

94 :名無しさん@お腹いっぱい。 : 2001/03/31(土) 18:44 ID:KyHtGmhA
( ゚Д゚)ノ ヨォチソカス..ゲンキ?

95 :名無しさん@お腹いっぱい。 : 2001/04/04(水) 17:50 ID:m7xJ17RM
日本PHPユーザ会、どこいっちゃったの?
仕事進みまへ〜ん!! 助けて〜!!

96 :名無しさん@お腹いっぱい。 : 2001/04/04(水) 19:04 ID:8n02vNZ.
移転先発見!
http://tokyo1.virtualave.net/
http://tokyo1.virtualave.net/
http://tokyo1.virtualave.net/
http://tokyo1.virtualave.net/
http://tokyo1.virtualave.net/
http://tokyo1.virtualave.net/

97 :名無しさん@お腹いっぱい。 : 2001/04/04(水) 21:24 ID:O26l2H.k
#4.0.4pl1 です。

fgets () であるファイルを読みに行って、
`hoge` が含まれる行だけを echo したいのですが、
どのようにすれば良いでしょうか?
因みに、`hoge` が含まれる行は1行だけで、
ファイルの何行目に出て来るかは決まっていません。

宜しくお願い致します。

98 :名無しさん@お腹いっぱい。 : 2001/04/04(水) 22:42 ID:CUjRO5/Q
grep hoge

99 :名無しさん@お腹いっぱい。 : 2001/04/05(木) 01:58 ID:t/LpY6eU
$arr = file ("inputfile.txt");
while (list($line,$val)=each($arr)) {
if(strstr("hoge",$val)){echo $val; break;}
}

100 :Error 401 : 2001/04/06(金) 10:04 ID:ukvRmJYk
ところで、PHP4.0.5っていつ頃出る予定なんでしょう?
CVS currentは、4.0.6-devになってるけど…。
あと、PHPのバージョン(リビジョン)って、何かお約束があるんでしょうか?
偶数が安定版とか、そんなお約束。

101 :電動ナナシ : 2001/04/06(金) 11:46 ID:???
Zend Newsletter では今週中って話になってたよ。


102 :名無しさん : 2001/04/06(金) 16:11 ID:???
もう出てるよ。

103 :Error 401 : 2001/04/06(金) 16:36 ID:???
え、どこにあります?
http://www.php.net/ にも http://www.zend.com/ にも情報が無い・・・


104 :名無しさん : 2001/04/08(日) 14:06 ID:8bP4sfF6
初心者質問で申し訳無いのですが、
フォームから入力された文字の中の全角英数字を半角英数字に
置き換える方法を教えてください。

105 :名無しさん研究所 : 2001/04/08(日) 17:44 ID:Qng44uaI
>>104
国際化入ってるなら、
$text = i18n_ja_jp_hantozen("$text", "n");

106 :104 : 2001/04/08(日) 19:56 ID:kzJEffO.
>>105
言葉足らずですいません。PHP4です。




107 :ねたろ : 2001/04/08(日) 20:07 ID:???
PHPの質問ではなく PostgreSQLに関してですが、
シェルスクリプトとcrontabでバックアップしているのですが、
./backup.sh としたときにはうまくいくのですが、crontabに任せておくと
ファイルサイズが0 になっています。
----
#!/bin/sh
pg_dump -t dbname -f 'bakup_$(date %Y%M%D)'

108 :名無しさん@お腹いっぱい。 : 2001/04/08(日) 23:37 ID:???
pg知らんけどpg_dumpをフルパスで書けば?
んでcrontabの./backup.shもフルパスで。

109 :電動ナナシ : 2001/04/09(月) 09:22 ID:???
大きさがゼロでもファイルができてるってことは、pg_dump は動いているんだろうね。

crontab はどのユーザー用のに書いてる?
ひょっとして root?
root ユーザーを PostgreSQL に追加してある?Supervisor 権限はある?
気になるのはこんなところかなあ。


110 :名無しさん@お腹いっぱい。 : 2001/04/09(月) 17:16 ID:ihNWn6qY
aga

111 :ねたろ : 2001/04/09(月) 22:25 ID:???
電動ナナシさんありがとうございます。
crontabはwebというユーザ用のに書いています。./backup.sh下のと同じユーザです。
これは、apacheのユーザでもあるし、postgresのユーザでもあります。
(でもスーパーユーザではありません。)
一応 postgresのスーパーユーザで同じことをしてみたのですが、結果は同じでした。
>>108さんのいうようにフルパスにもしてみました。



112 :オグマ : 2001/04/10(火) 00:35 ID:BmH4Vp8o
以下のような文字列が $contents 変数にあったとします。
--------------------------

<!--BEGIN_HEAD-->
この文章は適当に書かれたものです。
<!--END_HEAD-->

<!--BEGIN_DOC-->
今日は晴天なり。
今日は雨天なり。
<!--END_DOC-->

--------------------------
これらの <!--BEGIN_HEAD--> 〜 <!--END_HEAD--> の中身を $head 変数に,
<!--BEGIN_DOC--> 〜 <!--END_DOC--> の中身を $doc 変数に代入するには
どうすればいいでしょうか。正規表現でできそうなんですがよくわかりません。よろしく。


113 :電動ナナシ : 2001/04/10(火) 10:50 ID:???
>>111
"su - web" してくだんの Shell Script 走らせて見たら?
パーミッションじゃないとすると、環境変数の問題かもね。
PGHOME, PGDATA とか PGLIB とかは大丈夫?


114 :電動ナナシ : 2001/04/10(火) 11:18 ID:???
>>112
これでいいんじゃないかな? PHP 4.0.4pl1 で確認。

<?php
function x ($str) {
return nl2br(ereg_replace(">", "&gt;" , ereg_replace("<", "&lt;", $str)));
}

$target = "<!--BEGIN_HEAD--> \n
この文章は適当に書かれたものです。 \n
<!--END_HEAD--> \n
\n
<!--BEGIN_DOC--> \n
今日は晴天なり。 \n
今日は雨天なり。 \n
<!--END_DOC--> \n";
echo "<p>" . x($target) . "</p>\n<hr>\n";

$pattern = "<!--BEGIN_HEAD-->(.*)<!--END_HEAD-->";
$success = ereg($pattern, $target, $elem);
$head = $elem[1];
echo "<p>" . x($head) . "</p>\n<hr>\n";

$pattern = "<!--BEGIN_DOC-->(.*)<!--END_DOC-->";
$success = ereg($pattern, $target, $elem);
$doc = $elem[1];
echo "<p>" . x($doc) . "</p>\n<hr>\n";
?>


115 :電動ナナシ : 2001/04/10(火) 11:21 ID:???
あ、変わってる。
ereg_replace(">", ">" ... の二番目の引数を "&amp;gt;" に置き換えて。
"<" についても同様。

# ↑も正しく出るかな。鬱だし脳。


116 :電動ナナシ : 2001/04/10(火) 11:29 ID:???
これでいいじゃん。恥ずかしい。打つ出し脳。
function x ($str) {
return nl2br(htmlspecialchars($str));
}


117 :オグマ : 2001/04/10(火) 18:20 ID:Y9HE3MJU
>>電動ナナシ
どうもありがとう。PHP でテンプレート式掲示板を作ってて
そのテンプレートを分割するのに使用しました。
本当に助かりました。

118 :名無しさん : 2001/04/11(水) 11:35 ID:QnROhDpo
あるファイルの最終更新時刻を調べるのに
fsockopen で HEAD 要求をすれば良いということまでは分かりました。
しかし、その後 Last-Modified のところだけ抜き出す方法が分かりません。
どなたかご教授下さい。

119 :電動ナナシ : 2001/04/12(木) 11:53 ID:???
<?php
$hostname = "localhost";
$httpport = 80;
$fp = fsockopen ($hostname, $httpport, $errno, $errstr, 30);
$str = "";
if (!$fp) {
  echo "$errstr ($errno)<br>\n";
} else {
  fputs ($fp, "HEAD /index.html HTTP/1.0\r\n\r\n");
  while (!feof($fp)) {
    $str .= fgets ($fp,128);
  }
  fclose ($fp);
}
$tmp = ereg("Last-Modified: ([^\r]+)", $str, $match);
$lastmod = $match[1];
echo $lastmod . "<br><hr>\n";
?>


120 :118 : 2001/04/13(金) 02:39 ID:???
>>119の電動ナナシさん

$tmp = ereg("Last-Modified: ([^\r]+)", $str, $match);
$lastmod = $match[1];

と言うところが大変参考になりました。
ありがとうございました。

121 :名無しさん@お腹いっぱい。 : 2001/04/13(金) 17:15 ID:iAA2Z4wU
PHPから別サーバにあるCGIを実行したいんですけど、
何かよい方法はあるでしょうか?

ソケットでつなぐしかないかな?

122 :弱い者の味方、 : 2001/04/14(土) 21:12 ID:VqODthIQ
月光仮面おじさん登場!!!
ホームページを作ったものの、まったくアクセスが上がらな
くて悩んでいる人のためのサイトを作りました。
効率よく宣伝できる共有宣伝掲示板を18個設置しました。
全部宣伝して回ればなんと1,000以上の掲示板にカキコしたこ
とになり即、効果が期待できます。さらに共有掲示板の隠し
リンクを発見してそれらも全部宣伝して回ると計2,000以上の
掲示板にカキコしたことになり、さらにアクセスアップを期
待できます。もう、今日からアクセスが無くて悩むことは無
いです。今すぐここからアタックアタック!!

http://home9.highway.ne.jp/cym10262/


123 :名無しさん@お腹いっぱい。 : 2001/04/15(日) 20:09 ID:???
if(ereg("ちん●|まん●",$comment)) {
Error('へんな言葉が入ってるよ');
exit;
}

という時、エラーメッセージ中に該当する言葉を
表示させる方法はないでしょうか?

124 :名無しさん@お腹いっぱい。 : 2001/04/16(月) 00:00 ID:CeOS2x2g
>>123
if(ereg("ちん●|まん●",$comment,$match)) {
&nbsp; Error('へんな言葉が入ってるよ:' . $match[0]);
&nbsp; exit;
}

125 :123 : 2001/04/16(月) 01:51 ID:XgkORuDY
バッチリでした。
ありがとうございました。

126 :ねたろ : 2001/04/16(月) 14:28 ID:r14eKWs6
>>113
>電動ナナシさん
くだんのシェルスクリプトで環境変数を設定したら、うまくいきました。
ありがとうございました。

ユーザのどっとファイルで環境変数は設定済みで、psqlも多用していて問題ないのですが、
crontabの場合は、いちいち設定しなくてはいけないのですね。
でもちょっと面倒ですね。


127 :名無しさん@お腹いっぱい。 : 2001/04/17(火) 06:22 ID:kGlVFeJA
>121

openで開くだけ

open("http://*****/cgi-bin/cgi.cgi?***=***");


128 :名無しさん@お腹いっぱい。:2001/04/20(金) 14:59 ID:w9tUomBw
どなたか、phpでブラウザのクッキーが使えるかどうかの判断する方法
を教えてくださ〜い。


129 :名無しさん@お腹いっぱい。:2001/04/20(金) 15:48 ID:5Li3PYXE
>>128
クッキーを与えてredirectしてクッキーを返してくれるのか見る。

130 :名無しさん@お腹いっぱい。:2001/04/20(金) 17:33 ID:qe51yZHI
strtr と str_replace と ereg_replace はどう違うんですか?



131 :名無しさん@お腹いっぱい。:2001/04/20(金) 17:42 ID:???
マニュアル

132 :名無しさん@お腹いっぱい。:2001/04/21(土) 00:47 ID:8msEwlmI
PHPのFP-LOC換算係数を教えてください〜。
課題で提出しなきゃならないので出来ればソース
(コードじゃなくて情報ソース)
もあれば嬉しいんですが。

http://www.spr.com/library/0langtbl.htm
ここでも載ってないんですよね。

133 :名無しさん@お腹いっぱい。:2001/04/30(月) 03:13 ID:???
[PHP-jp 11428]
パイプ喫いの中川っていろんなとこでよく見るけど、こういう奴だったのね。

http://www.alles.or.jp/~yaemon/log/ServerSet.html

いたたたた…。こんなもん公開するなよ…。

なお、どこが痛いのか、という質問にはめんどいので答えません。

134 :名無しさん@お腹いっぱい。:2001/05/01(火) 04:06 ID:???
cgiから逃げたのに最近pgsqlにきやがった…

135 :電動ナナシ:2001/05/01(火) 05:09 ID:???
>>132
だいたい Perl と同じと思っていいんじゃないかな。FP の場合、入出力
ごとにポイントを計測するけど、入出力(ファイル書き込みとか、データベース
接続&レコードフェッチ)に要するコード行数はあまり変わらないように
思う。

もし手元に機能的に同一の Perl と PHP のコードがあったら、それのコード
行数を比較して、その比を Perl の値にかければいいと思う。


136 :132:2001/05/05(土) 02:10 ID:.bD0Tg1Q
>>135さん
なるほど。
やっぱりPerlと同じで計算しちゃってよさそうですね。
コードの比較は信頼性に足る程のソースの数を集められなさそう
なんで、Perlと同じで行く事にします。
ありがとうございました。

#FP-LOC自体が信頼性あんまないという話もあるが:-)

137 :名無しさん@お腹いっぱい。:2001/05/05(土) 05:00 ID:???
ファンクションポイントとかは全然知らないんだけど、
>>132 の表はすごいなあ。面白いんでいくつか抜書き。
妙に納得できますね、この数値は。。。

レベル / 言語
0.5 / 機械語
2.5 / C
3.0 / BASIC, FORTRAN-77, COBOL
3.5 / Pascal
6.0 / C++, Java
9.5 / VC++
11.0 / VB5, Delphi
15.0 / Perl, Awk, Shell
22.0 / HTML-3.0
57.0 / Excel

138 :初期不良:2001/05/06(日) 19:58 ID:VQtSpJpE
FreeBSD の ports だと php4_jstring-20010205.tar.gz が無いとか言って
止まっちゃうんですけど、この jstring は古いんですか?古いんですか?
ports の php バージョンは 4.0.5 になっているんだけど...
探すと php4_jstring-1.0.92.tar.gz とかあったりはするんですが、
これは ports のメンテナーに伝えた方がいいですかね?

139 :名無しさん@お腹いっぱい。:2001/05/07(月) 00:49 ID:5s5NeTp.
しばし待て。もうすぐいいこと起きるから。
びっくりするかも?

140 :初期不良:2001/05/07(月) 02:31 ID:rvwRZ5jw
なんだろう(^^;
今すぐ必要ってわけでもないので(いずれ必要になりますが)
ports が 4.0.5 になるのを待ったのと同じように待ってみます。

141 :名無しさん@お腹いっぱい。:2001/05/07(月) 07:13 ID:7gCFqY.A
(スクリプトとしての)PHPはCGIにも使われると聞きましたが、
どういう使い方をすればCGIとして作動するんですか?

142 :名無しさん@お腹いっぱい。:2001/05/07(月) 12:08 ID:5s5NeTp.
cgi-bin のかわりに php-bin というディレクトリを作成し、
*.cgi のかわりに *.pcgi という名前にしてみて

143 :名無しさん@お腹いっぱい。:2001/05/07(月) 12:50 ID:???
>>142 ワロタ

144 :名無しさん@お腹いっぱい。:2001/05/07(月) 16:39 ID:XemNYOsQ
アホな質問で申し訳ないのですが、
PHPって無料で使えるものですか?
>>1のリンク先を見に行っても分からなかったもので…
(英語が全く読めないし)

145 :名無しさん@お腹いっぱい。:2001/05/07(月) 18:59 ID:???
使えます。

146 :144:2001/05/07(月) 19:30 ID:O2H6x.Mg
>>145
あ、ありがとうございます。
安心しました。

147 :145:2001/05/07(月) 21:01 ID:???
そんなに簡単に2chでの発言を信用していいんだろうか、
という心配をしてしまいますね(^^;

PHPは無料で使えるというのには嘘はありませんけど。

148 :名無しさん@お腹いっぱい。:2001/05/07(月) 23:24 ID:gp8pTDD6
>>141
AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php.cgi

149 :素朴なぎも〜ん!:2001/05/08(火) 04:49 ID:???
実際にPHPでご飯を食べているプロの方に質問したいです。

Servretのサンプルプログラムを見ると、タグを記述するHTMLファイルがあって
必要なところにServretのスクリプトを入れているって感じですけど・・・。

一方、マンモス本のサンプルプログラムって・・・
クラスを定義して、そのクラス内に表示部分の殆どを入れているじゃないですか。
私には、いしいのプログラムがドキュソにしか見えません。
↓このページのサンプルプログラムみたいなやつ
http://katochanpe.com/sample/index.html
オブジェクト指向完全無視じゃん・・・。

というわけで、実際の現場ではマンモス本のようにプログラムを組んでいるのでしょうか?
ご教授いただければ幸いです。
う〜言いたいことがうまく書けないの・・・の21歳女子大生でした。

150 :電動ナナシ:2001/05/08(火) 18:40 ID:???
> Servretのサンプルプログラム

JSP じゃないの?

> 実際の現場ではマンモス本のようにプログラムを組んでいるのでしょうか

ものによりけり。HTML の構造がデータの個数・種類によって大きく変更
されるなら、コードにタグを埋め込む書き方が普通。表示部分の構造には
あまり変更がなく、単にデータを埋め込んでいくだけなら、HTML の中に
コードを埋め込むのが普通。

> オブジェクト指向完全無視じゃん・・・。

石井さんは C な人だからあれでいい。あの PostgreSQL のメンテナーを
しているという実績を考えれば、オブジェクト指向の無視くらいどうって
ことはない。

> 21歳女子大生

ネカマしなくたって、回答できそうな質問なら誰か答えるよ。

151 :ななしファン:2001/05/08(火) 20:45 ID:H0ZLQDmY
age

152 :松下幸之助:2001/05/08(火) 21:45 ID:???

いつの間にかPHP改で
WEBプログラミングになってる!!
偏り無く情報を得たいときは、専門MLよりいいかも。

>PHP、CGI、Java Servlet、Perl、DBの話題です。
旬なJSPやColdFusion、Rubyは?

153 :名無しさん@お腹いっぱい。:2001/05/09(水) 12:27 ID:???
>>152 ColdFusionって旬ですか??

154 :152じゃないが:2001/05/09(水) 12:42 ID:???
>>153
「旬なJSPや」と「ColdFusion、Ruby」で区切ると思われ。

日本語ムズカシイネ

155 :152じゃないが:2001/05/09(水) 12:43 ID:???
>>153
「旬なJSPや」と「ColdFusion、Ruby」で区切ると思われ。

日本語ムズカシイネ

156 :名無しさん@お腹いっぱい。:2001/05/09(水) 12:46 ID:???
ColdFusionが挙がって、ActiveServerPagesは無視かえ。

157 :名無しさん@お腹いっぱい。:2001/05/11(金) 09:25 ID:???
>「落ちまくるIIS」や「NT、2000」に愛想尽かしたと思われ。

158 :名無しさん@お腹いっぱい。:2001/05/11(金) 09:31 ID:???
ニシキヘビ萌え

159 :名無しさん@お腹いっぱい。:2001/05/13(日) 18:07 ID:QKOKs7dU
PHPスクリプトを利用する上でのセキュリティに関する事ですが、
データベース関係を除けば、CGIとかと同じような事が挙げられると
思っていていいんでしょうか?
ユーザの入力によっては、プログラマの意図しない動作をする、みたいな。
cat /etc/passwd | とかで。

160 :ナナシファン:2001/05/13(日) 18:32 ID:05DbuIGY
>>59
そそ。あと一番問題なのがセッションね。
外部にリンクを許しちゃうと、リンク先のHTTP_REFERERで
セッションIDが見えちゃうとか。

161 :JAPU:2001/05/14(月) 18:29 ID:???
未だにURLの一部にセッションキー埋め込んでいるところってあるんですか?

162 :名無しさん@お腹いっぱい。:2001/05/14(月) 18:39 ID:???
沢山あります。

163 :ナナシファン:2001/05/14(月) 20:27 ID:EsWUXNIE
>>161
PHP4だって、何も考えずにsession_start()を使っちゃうと
クッキーが使えればクッキーを使うが、ダメだと自動的に
URIにセッションIDを張り込んじゃうでしょ。

「ななしファン」だと誰のファンかわからないので、電動ナナシさんのファンであることをアピールする
ために「ナナシファン」に改名。

164 :初期不良:2001/05/15(火) 03:51 ID:qIx5vtWI
>>139
今 ports を cvsup したら php4_jstring-1.1.1.tar.gz になってた。
ただいまコンパイル中...

165 :初期不良:2001/05/15(火) 04:41 ID:qIx5vtWI
あとは何もせんでいい状態になった。
apachectl restart までやってくれた。
全然触ってなかったから分からなかったんだけど、
驚くかもってのはなんのこと?気になる...

166 :電動ナナシ:2001/05/15(火) 11:35 ID:???
多分 jstring が PHP にマージされるってことじゃないの?
PHP-4.0.6 から jstring が標準配布に統合されるって出てたね。

167 :名無しさん@お腹いっぱい。:2001/05/17(木) 13:35 ID:vuz.jAiQ
最近PHPを使ってて気になること。(4.0.5)

・なんかif文とかが多いページを開くと、反応が無くなってしまうことがある。
 原因不明。
 ネストの深さ問題では無いと思う。

・PEARのDB(PostgreSQL)を使ってるんだけど、SELECTが戻って来なく
なることがある。これも原因不明。
pg_exec()にすると戻ってくる。
ブラウザを再起動したら戻ってくるようになったり、CSSをはずしたら
戻ってくるようになったり。

使い方が悪いのかなー。

168 :名無しさん@お腹いっぱい。:2001/05/17(木) 20:20 ID:???
また、[PHP-jp 11772]で近藤氏がマヌケなことを言ってます。
どうもこの近藤氏と近藤くんを混同してしまいますな。

169 :名無しさん@お腹いっぱい。:2001/05/17(木) 21:41 ID:dr1laO2o
 レンタルサーバで(同一サーバで契約している)他のユーザーからの
セキュリティの確保について教えて下さい。

 PHPのページは、suExec等で実行権限を変更した状態で実行
できない(?)ため、レンタルサーバでPHP動かしてるときは
非常に困るんですが、なんとかならないんでしょうか?
 自分の書いたPHPスクリプトから読み書き出来るファイルは
当然、同じサーバのユーザーのPHPスクリプトからも読み書き
出来るわけで、セキュリティーもなにもあったもんじゃない。
 この状態だとDBへアクセスするパスワードをPHPのソースに
書いて置いても、他のユーザーから見られちゃうし。(PHPで
指定ファイルを表示するプログラムを書けばよい)

 こういった問題はどのように対処すればよいのでしょうか?
 phpスクリプトの所有者権限で実行させることが出来れば
一番よいのですが。

170 :名無しさん@お腹いっぱい。:2001/05/17(木) 22:19 ID:vgMMOG.Q
CGI版でコソパイルすれば?

#/usr/local/bin/php

rwx------

171 :169:2001/05/17(木) 23:41 ID:dr1laO2o
ありがとうございます。CGI版ですか。
 mod_xx形式では、スクリプトによって実行権限を可変にするのは
難しいんでしょうね。(そういえばJServもそうでした。)
 共有型のレンタルサーバではいろいろ限界がありますね。
 普通の形式のPHPが使えないのが悔しいです。
 毎回プロセスが起動されるわけで、セッションなどが持続するか
という点とパフォーマンスについて少し不安ですし。
 そもそも、いま使っているレンタルサーバーは、mod_phpしか
はいってないので運営会社に相談してみないといけない。
 気が重いです

172 :名無しさん@お腹いっぱい。:2001/05/18(金) 00:03 ID:HvnCSBrw
こんばんわー。質問です。
いままで2年間C言語をやってきたんですが、Web関係
の仕事がやりたくて、派遣登録をしたら、
PHPとLINAXを使っての仕事があると進められました。
今週末に話しを聞きに行くので具体的なことはわからないのですが、
WebプログラムだったらPerl(CGI)が主流かなと
思っていたので、この仕事を受けるかどうか迷ってます。
(とりあえずperl(CGI)をマスターしようと思っていたので・・・)
まぁようするに、Perlの仕事を待つか、PHPの仕事をするか
今後のWeb業界でどちらが良いのか教えていただけたらと思います。
Webに関しては初心者なので、幼稚な質問ですみません。。。

173 :名無しさん@お腹いっぱい。:2001/05/18(金) 01:06 ID:???
イメージ関数使いたいからってことで、php4入れることになった。
今日の朝まで元気に動いていたphp3の環境は先輩が作ったもので、
Linux + postgres + apache + php3。
で、php4のインストールやってみてねと言われて・・・。

自分はLinuxを触ったことはほとんどないわけで。
apacheもphp3もぶち壊してきました(藁

いろんなサイトでインストール方法とかのってたりしますが、
今までインストールして来たものも把握できていないため、
ばっさり消してというのも、ちとやりにくい。
さらにphp3とphp4は同居させる予定。

いやぁもうさっぱりなわけで。
助けてくれと言ってもなかなか難しいんだろうけど、誰かに助けて
もらいたい気分です。

誰か・・・!

174 :名無しさん@お腹いっぱい。:2001/05/18(金) 09:00 ID:mi2YgIEw
>>173
まずはapacheのインストール
解凍したディレクトリで以下を実行
./configure --enable-shared=max
make
make install
httpd.confの設定
apache起動

175 :名無しさん@お腹いっぱい。:2001/05/18(金) 09:58 ID:???
>>172
Windows系の方か、仕事でコーディングしてない方だと思いますが。
私の周りでは、数十万ぐらい中規模の仕事はPHPが主流です。
個人的には、得意な言語ではないので、「PHP嫌いだから」って
言って断ることもおおいですが。

が、あなたは事前調査も足りないし、現状では
仕事を受けるべきではないです。というか、ウチにきたら
即座にチェンジおねがいするでせう。

176 :名無しさん@お腹いっぱい。:2001/05/18(金) 11:53 ID:jsJYtRGo
>>175
どうもRESありがとうございます。
昨日派遣先から連絡あって、土曜に話を聞きに行くので
事前調査できなかったんですよね。まぁとりあえずPHPの
情報があるここで聞いてみようかなっと思いまして。

中規模ではPHP主流ですか。ありがとうございます。
とりあえずもう少しNETなどで調べて話を聞いてみることにします。

177 :PHP初心者:2001/05/18(金) 17:43 ID:k6aRDiHQ
PHP4でカンタンWebDB構築ガイドという本を購入して
PHP4をインストールしようとしたのですが、、

#make install を実行した時点で最後に

make[3]: *** [jstring.lo] Error 1
make[3]: Leaving directory '/usr/local/src/php-4.0.5/ext/jstring'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/usr/local/src/php-4.0.5/ext/jstring'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/usr/local/src/php-4.0.5/ext'
make[3]: *** [install-recursive] Error 1

とでます。

恐れ入りますが、どなた様か対応方法を御教授戴けないでしょうか?

全てrootユーザーで操作を進めました。

宜しくお願いします。

178 :名無しさん@お腹いっぱい。:2001/05/18(金) 17:48 ID:???
jstringを/usr/local/src/ext以下に展開していない、に1000ペソ

179 :PHP初心者:2001/05/18(金) 19:48 ID:k6aRDiHQ
迅速なアドバイス誠に有難う御座います。

/usr/local/src/php-4.0.5/ext内の
php-4.0RC2_jstring-1.0.tar.gzを
tar zxvf php-4.0RC2_jstring-1.0.tar.gz で展開したのですが、、

#make を実行すると最後に

make[3]: *** [jstring.lo] Error 1
make[3]: Leaving directory '/usr/local/src/php-4.0.5/ext/jstring'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/usr/local/src/php-4.0.5/ext/jstring'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory '/usr/local/src/php-4.0.5/ext'
make[3]: *** [install-recursive] Error 1
make: *** [all-recursive] Error 1

となります。本当に困りました。

180 :ナナシファン:2001/05/18(金) 20:45 ID:So5nwNRc
>>179
なんかMLで話題になってなかった?
jstringの200102xxとかをいれてみそ。うまくいくから。
見つからなかったらftpsearchで。

181 :PHP初心者:2001/05/18(金) 20:52 ID:k6aRDiHQ
自己レスします。
php-4.0.5を辞めて付録のphp-4.0.3pl1で最初からやり直したら
インストールできたようです。
何分初心者なものでお騒がせしました。m(__)m

182 :名無しさん@お腹いっぱい。:2001/05/19(土) 07:24 ID:NfS52E.2
if eregi('hoge', $result) {
 $title = 'hoge';
} elseif ('haun', $result) {
 $title = 'haun';
}

な感じで50個くらい続くのですが、
これではあまり効率が良くないですよね?
何か他に良い方法はあるでしょうか?

183 :名無しさん@お腹いっぱい。:2001/05/19(土) 09:10 ID:???
>>181
解決したみたいだけど最新のjstringなら4.0.5でもいけるよ。
ftp://night.fminn.nagano.nagano.jp/php4/php4_jstring-1.1.1.tar.gz

184 :初期不良:2001/05/20(日) 00:11 ID:R6mR4c2o
>>169
ユーザを信用できない状況では PHP って使えないのかね。
まあ、そうでなくても Perl でもしばらくはやってきたわけだけど。
DB を使えば DB 独自のユーザ、パスワード、権限で制御できるから
何とかなるのかな?

一般的にはどうなんでしょ?
スタンドアローンなサーバで運用って事が多いのかな?

185 :初期不良:2001/05/20(日) 00:28 ID:???
スタンドアローンって言うか
あんまりマルチユーザ利用を考えてないサーバって事ね。

186 :ドキュソデザイナー:2001/05/20(日) 23:45 ID:.g1VXZ4s
PHPLIBを使って、ちょっとしたWEBアプリケーションを作っています。
当然、Authクラスを使って会員認証するのですが、会員IDとパスワードは、
デフォルトのテーブルではなく、既存のテーブルを使って認証したいのです。
どうやったらいいの?

187 :ドキュソデザイナー:2001/05/21(月) 00:47 ID:piAkqhBs
function auth_validatelogin()をオーバーライドすれば、よいのかな。
$uid,$passと$permは違うテーブルになるけど、処理はどうやって分ければ
よいのでしょう?

188 :電動ナナシ:2001/05/21(月) 02:23 ID:???
>>184
その DB 独自のユーザー名・パスワードをスクリプトに書いてしまうと
ほかの人から見られてしまうって問題でしょ。

例えばこんなスクリプトを書いて $file に適当なファイル名を指定すれば
ほかの人が書いたスクリプトを読めてしまう。
<?php
$file = "/home/other-user/other-script.php";
$fp = fopen($file, "r");
$r = fseek($fp, 0, SEEK_SET);
$buf = "";
while (!feof($fp)) {
  $buf .= htmlspecialchars(fgets($fp, 8192));
}
fclose($fp);
echo "<textarea rows=\"25\" cols=\"80\">" . $buf . "</textarea>\r";
?>

189 :電動ナナシ:2001/05/21(月) 02:40 ID:???
>>187
perms を格納するテーブルを $this->perms_table に入れてあり、その
テーブルのスキーマとして以下のものがあることを前提とすると、
CREATE TABLE perms (
    :
 userid   int,     /* ユーザー情報テーブルにおける ID 番号 */
 perms    int,     /* 許可情報 */
    :
);
こんな感じかな。

function auth_validatelogin() {
  global $username, $password;
  $uid = false;
  $query = sprintf("SELECT u.uid, p.perms FROM '%s' u, '%s' p
       WHERE u.id = p.id AND u.username = '%s' AND u.password = '%s'",
       $this->database_table, $this->perms_table, $username, $password);
  $this->db->query($query);
  while($this->db->next_record()) {
    $uid = $this->db->f("uid");
    $this->auth["perm"] = $this->db->f("perms");
  }
  return $uid;
}

190 :オラ狂うよ・・・:2001/05/21(月) 03:43 ID:piAkqhBs
なぜだー!

Database error:
ora_parse() failed:
select * from event where (date between '2001-04-29' and '2001-06-02') and user_id = '9eda03dc8801523058abc42cc54da7df' order by start_time,end_time
Snap & paste this to sqlplus!
Oracle Error: 936 (ORA-00936: 式がありません。 -- while processing OCI function OPARSE)
Session halted.

start_time,end_timeは、NULLなのですが、それがダメなの?

191 :電動ナナシ:2001/05/21(月) 03:46 ID:???
date between ... のところを

date BETWEEN TO_DATE('2001-04-29', 'YYYY-MM-DD') AND
TO_DATE('2001-06-02', 'YYYY-MM-DD')

としてみたら。date は DATE 型なんだよね。

ORDER BY については NULL だろうがなんだろうが関係ないよ。

192 :ドキュソデザイナー:2001/05/21(月) 04:03 ID:piAkqhBs
>>189
明快かつ簡潔なコード例、ありがとう。
日曜のこんな時間ということもあってか、何かちょっと感動した。

ダメな営業がこの仕事をタダで受けて来ちゃったので、外注に出せず、なぜかWEBデザイナーの俺がやるハメに・・・。会社辞める、ぐらい言って、突っぱねればよかった。バカな俺・・・

193 :電動ナナシ:2001/05/21(月) 04:12 ID:???
>>189
訂正
> WHERE u.id = p.id AND u.username = '%s' AND u.password = '%s'",

WHERE u.id = p.userid AND u.username = '%s' AND u.password = '%s'",
が正しい。

まあ何にせよ、きちんとジョインすれば簡単にできる。

194 :オラ狂うよ・・・:2001/05/21(月) 04:37 ID:EE3EK/S.
>>191
ありがとう、以下のコードでうまくいったようです。また新たな問題が
発生したけど・・・

$db = new My_DB;
$sql = sprintf("select * from event
where (date between to_date ('%s', 'YYYY-MM-DD') and to_date('%s', 'YYYY
-MM-DD')) and user_id = '%s'
order by start_time,end_time",
$start["date"],$end["date"], $auth->["uid"]);
$db->query($sql);

195 :電動ナナシ:2001/05/21(月) 04:54 ID:???
>>194
Oracle は時々自動的な型変換に失敗するから(再現条件は不明)、きちんと
変換関数を使って型変換をしたほうがいいよ。

>>193
また間違い
u.id は u.uid だな。

196 :オラ狂うよ・・・:2001/05/21(月) 05:06 ID:piAkqhBs
>>195
なるほど。なんてことはないコードだしPostgresでは問題なく動いていたので、
悩んでしまった。その辺を中心にデバッグします。とりあえず家に帰って風呂だ。

ほんと、ありがとう。

197 :名無しさん@お腹いっぱい。:2001/05/21(月) 09:48 ID:oxRjCmRE
>>182
マッチさせる文字列を配列に入れておいて、ループで回すとか。

あと、「マッチした部分の文字列」を参照できるってことを知ってる?
正規表現系の関数の第三引数があるパターン。
これで1,2行で書けたりするかも。

198 :名無しさん@お腹いっぱい。:2001/05/21(月) 09:51 ID:oxRjCmRE
>>188
うげ、そりゃすごい問題ですね。
回避する(fxxx()系を無効にする)ことって出来ないんでしょうか?

199 :antique:2001/05/21(月) 11:14 ID:l/cyjLtQ
>>198
php.ini の open_basedir で制限できると思う。
使ってないからわかんないけど。
http://snaps.php.net/manual/ja/html/configuration.html

200 :199:2001/05/21(月) 11:19 ID:???
>制限できる
「ほかの人が書いたスクリプトを読めないように制限できる」
です。

fopenそのものを使えないようにする方法はわからない。

201 :名無しさん@お腹いっぱい。:2001/05/21(月) 11:46 ID:???
>>199-200
さんきう。
ちょっと安心。

202 :電動ナナシ:2001/05/21(月) 12:21 ID:???
$file = "/home/other-user/other-script.php";
System("cp $file ./tmp");
$fp = fopen("./tmp", "r");
ならどうよ。

203 :電動ナナシ:2001/05/21(月) 12:26 ID:???
ということで
safe_mode と safe_mode_exec_dir も必須だなあ。

204 :電動ナナシ:2001/05/21(月) 12:44 ID:???
まとめると
safe_mode = On
safe_mode_exec_dir = "."
doc_root = "."
user_root = "."
という感じかな。

あと disable_functions という指示子もあるね。任意の関数を無効にできるらしい。
fopen を指定したら確かに無効になった。ちなみに無効にすると >>188
コードは無限ループに陥るから注意。

205 :antique:2001/05/21(月) 12:55 ID:???
にゃるほど。
fopenは使えないと不便だからおいとくとして、
safe_mode = On
safe_mode_exec_dir = "."
doc_root = "."
user_root = "."
は信用できないユーザがいる場合は必須ですね。
オイラ>>202の方法全く気付かなかった(汗

206 :169:2001/05/21(月) 12:56 ID:Zc9DvZB2
>>199,203
 open_basedir で、特殊文字「.」を指定することでスクリプトの
ディレクトリ以下のファイルしかアクセスできなくなるんですね。
 かつsafe_mode を ONにすれば、安心と…

 PHP-ML 9775あたりからのスレッドで、PHPのセキュリティについての
話題があって結局、同一IPアドレスで運用している限り難しいという
ような結論だったので、ダメなのかと思ってました。

207 :169:2001/05/21(月) 13:00 ID:Zc9DvZB2
>>206
 あ、でもPHPだけならいいですが、Perl等、他のCGI実行環境も
提供している場合は、PHPだけで対応してもダメですね。

 PHP自身の機能として、スクリプトの所有者の権限で動くモード
(sbitをみる)があってもいいと思うのですが、これは問題があるの
でしょうか。

 問題点?(想像)
・実行権限変更するためにmod_phpをroot権限で動かさないといけない?
・ということはapacheもroot権限でうごかないといけない?
・Linuxでは、同一スレッドないで実行権限を切り替えられない?

208 :antique:2001/05/21(月) 13:28 ID:???
>>207
CGIの場合はsuexec使ってパーミッションさえちゃんと設定すれば問題無い。
とは言え、パーミッションを666とかに平気で設定してる人が多い。
CGI配布してるサイトでsuexecの説明していれば助かるのだが、説明しているサイトを見たこと無いからな。
某KENT-WEBあたりが説明しててくれれば、皆真似するだろうに(爆
# ま、他人のが覗かれようが知った事じゃないですが。

CGIはsuexecでユーザ権限で動かせるんだし、問題点に書かれているような事は無いと思うよ。
# PHPってCGI版有るけどよく解らない。

どうでも良いけどApache1.3.20出たね。http://httpd.apache.org/ は 1.3.19のままだけど。
早速入れようかな。

209 :169:2001/05/21(月) 15:24 ID:Zc9DvZB2
>>208 antiqueさんどうも
 PerlなどのCGI側は、rwx------にしといてsuEXEC使えば安心なのは
そうなんですが、守りたいのはPHPのソースのほうなんです。
 PHPのソースは、rwxr-----とかにしておいて、グループはnobodyだの
wwwだのといった全ユーザー共通のグループに所属しているので、
同じくnobody(またはwww)グループのユーザーのCGIからアクセスできて
しまうわけです。

 PHPをCGIとして動かすのならsuEXEC使えばいいので問題ないです。

 suEXECがなんでユーザー権限を変更できるのかちゃんと理解してないです。
 suEXEC自身はRoot権限で動く必要があると思うのですがちがうのかな。

210 :169:2001/05/21(月) 15:35 ID:Zc9DvZB2
>>209 続き
(他のMLの話題をここにもってくるのはナンですが…)
 PHP-MLでは、ソースに含まれるパスワードを隠す目的なら、
ZENDで暗号化しちゃえばいいかもという案もでてました。
 ZEND使ったこと無いのでよく分からないのですが、暗号化する
際にパスワードとか指定するわけではないようなので、
ツールさえあれば復号できるんじゃないかなと思いました。
 ZENDの処理系のソースも公開されているので、ツールつくるのは
難しい話じゃないような気がします。

211 :電動ナナシ:2001/05/21(月) 16:09 ID:???
>>197
switch/case を使うという手もあるね。特に一致した文字列をそのまま
使うのではないとき。

submit なボタンが多数あって、value を見てどのボタンが押されたかを
判別しているような場合かな。

$cmd = strtoupper($POST_CMD);
switch ($cmd) {
  case "ADD":
   hogehoge;
   break;
  case "DELETE":
   hagehage;
   break;
  case "MOVE":
   hogehage;
   break;
  case default:
   hagehoge;
}

212 :U-名無しさん:2001/05/21(月) 22:12 ID:l6KPt7/g
ちょっと質問イイデスカ?

php3_pgsql.dllってどこかでダウンロード出来ますでしょうか?
googleとかで探してみても、全然見当たらないっす。

213 :電動ナナシ:2001/05/21(月) 22:26 ID:???
PHP4 に付属のやつを使ってみたら?

214 :U-名無しさん:2001/05/21(月) 22:41 ID:l6KPt7/g
php4のやつ使おうとしたら、怒られました・・・

215 :オラ狂うよ・・・:2001/05/22(火) 00:36 ID:si2Mb37M
>>191 >>194

イケたと思ってたのは勘違い・・・鬱だ。また同じエラーメッセージ。

Database error:
ora_parse() failed:
select * from event where (date between to_date ('2001-04-29', 'YYYY-MM-DD') and to_date('2001-06-02', 'YYYY-MM-DD')) and user_id = '9eda03dc8801523058abc42cc54da7df' order by start_time, end_time
Snap & paste this to sqlplus!
Oracle Error: 936 (ORA-00936: 式がありません。 -- while processing OCI function OPARSE)
Session halted.

うーむ。
ふと思い立って、このサーバのPHPのconfigureオプション調べてみたら、

--with-oracle=/opt/oracle/product/8.1.7

となってました。Oracle 8.xは、--with-ociですよね。微妙に使えないのは
このせいかな?

216 :電動ナナシ:2001/05/22(火) 01:41 ID:???
ひょっとして列名の date が予約語だからじゃないかな。
date を別の列名に変えてみたら?

217 :名無しさん@お腹いっぱい。:2001/05/22(火) 01:56 ID:2l6v9h4o
CGIでアクセス制限をかけたいのですが
取得できるリモートアドレスではアクセスポイント
までしか特定できませんよね。
普通アクセス制限とはアクセスポイント単位でやる物なのですか?
個人単位でやる(個人を認識する)方法があったら教えてもらえませんか。

218 :電動ナナシ:2001/05/22(火) 02:03 ID:???
認証を要求する

219 :オラ狂うよ・・・:2001/05/22(火) 02:52 ID:O0XOpuVk
>>216
その通りでした。てか、列名、dateじゃなくちゃんとaz_dateとかしてたのに・・・
すこぶる鬱だ。ありがとう。

220 :pen:2001/05/22(火) 13:07 ID:Qka3clQw
なんか、すごく初歩的な質問なのですが、DB(PostgreSQL)を使ったWebアプリって、
DBへの書き込みに対して、CGIで言うファイルロックの必要ってないんですか?
いろいろ調べたんですが、そういう記述って全然見かけなかったんで…

221 :名無しさん@お腹いっぱい。:2001/05/22(火) 14:37 ID:Zxtvn842
>>220
Webアプリ側でのロックは恐らく必要無いかと。
普通は、DB側が良きに計らってくれるかと。

222 :名無しさん@お腹いっぱい。:2001/05/22(火) 22:04 ID:HZ6q6VlY
Tue, 22 May 2001 12:50:01

という英字形式の GMT 時刻を JST に変換したいのですが、
どのようにすればよいでしょうか?

因みに、同じ様な変換を while で10数回繰り返す予定です。

223 :電動ナナシ:2001/05/23(水) 01:03 ID:???
<?php
$timestring = "Tue, 22 May 2001 12:50:01";
$time = strtotime($timestring) - 3600 * 9;
echo date("Y/m/d H:i:s::T", $time);
?>

224 :222:2001/05/23(水) 02:01 ID:uAS2r3aU
>>223さん

ありがとうございます。
が、試したところ

2001/05/23 01:53:57::
1970/01/01 17:59:59::

と、2つ目が変な時刻になってしまいます。
私の while の使い方が悪いんですかねぇ。。。

225 :pen(220):2001/05/23(水) 10:02 ID:spFKaY.Y
>>221さん
解答ありがとうございましたm(__)m
PHPでPostgreSQLと連携した簡単なスクリプト作ってるんですけど
Perlとくらべても容易でいいっすね<PHP

226 :電動ナナシ:2001/05/23(水) 16:26 ID:???
>>224
もとデータを見ないとなんともいえない。

227 :YO:2001/05/23(水) 16:54 ID:xghf/r7I
関数で質問です。
$var = 123;
func($var);
と与えたとき、
$var = 123
と出力させたいんですが、どうしたもんでしょう。
要するに変数の中身は取り出せるが、'$var'という変数名そのものを
取り出すにはどうしたらいいか、と言うことです。
よろしくお願いします。

228 :YO:2001/05/23(水) 16:55 ID:xghf/r7I
関数で質問です。
$var = 123;
func($var);
と与えたとき、
$var = 123
と出力させたいんですが、どうしたもんでしょう。
要するに変数の中身は取り出せるが、'$var'という変数名そのものを
取り出すにはどうしたらいいか、と言うことです。
よろしくお願いします。

229 :222:2001/05/23(水) 17:53 ID:uAS2r3aU
>>226さん

すみません、あれから自分でも色々とやってみたのですが、
わけが分からなくなってしまって……。
やりたいのは↓のような感じです。


---log.dat---
Wed, 23 May 2001 01:53:57
Wed, 23 May 2001 17:30:01
以下、同じ様なデータが続く
-------------

---test.php---
<pre>
<?php

$fp = fopen ('./log.dat', "r");

while ($timestring = fgetcsv ($fp, 1024)) {

$time = strtotime($timestring) + 3600 * 9;

echo date('D, d M Y H:i:s', $time) ."\n";

}

fclose($fp);

?>
</pre>
--------------

230 :電動ナナシ:2001/05/23(水) 18:58 ID:???
fgetcsv じゃ CSV としてパースされちゃうじゃん。
fgets でしょ。

231 :電動ナナシ:2001/05/23(水) 19:11 ID:???
>>228
無意味じゃないかなあ。

function varvar($var) {
  // 処理
}
varvar($hoge)
というコードを考えたときに、"$hoge" と "$var" のどちらがほしいの?
"$var" なら関数見れば分かるし、"$hoge" なら関数からはそもそもまったく
知ることができない。参照渡しにしろ値渡しにしろ関数が知ることができるのは
どの値が渡されたかだけで、どのような変数名を通じて渡されたかは分からない。

232 :YO:2001/05/23(水) 19:17 ID:xghf/r7I
電動さんいつもありがたう。

私がしたいのは>>231でいうところのhogeですね。
PHPでちょっと変数の値が知りたいというときに
ソースにfunc($var)という形で渡せば、'$var=....'と
表示されれば便利だなあ。と思って。

233 :222:2001/05/23(水) 21:07 ID:???
>>230さん
> fgets でしょ。

ここを変更するだけで上手くいきました。
ありがとうございました。


#マニュアル読みに逝ってきます。。。

234 :松下:2001/05/23(水) 21:55 ID:TMWYPOj.
function var($var){
global $$var;
echo "$$var=".$$var;
}
var(hoge);

これでどう?僕は$GLOBALS展開しちゃうけどね

235 :電動ナナシ:2001/05/23(水) 22:27 ID:???
<?php
$hoge = "hogehoge";
function varvar($var){
  global $$var;
  echo "$$var=" . $var . "<br>\r";
}
varvar($hoge);
?>
だと、
---------------------------
$hogehoge=hogehoge
---------------------------
となってしまうけど?
>>228
---------------------------
$hoge=hogehoge
---------------------------
という出力にしたいんでしょ?

236 :初期不良:2001/05/24(木) 01:07 ID:fHlXXmpc
>>210
ちょっと apache よりの話になるけど、この辺って
解決の可能性あるのかな。apache のコピー自体が
ユーザ権限で動かないと module の実行権限を変える
ってのは無理だよね。
apache 自体の動作に変更が加わらないとだめだと思うから、
apache グループの考え次第ですけど...

237 :名無しさん@お腹いっぱい。:2001/05/24(木) 04:39 ID:GEomzVSs
>>198-205
セキュリティ問題の話題ですけど、php.iniのsafe_modeをonにするのが
良いというのはなんとなくわかったのですが、onにすると、具体的にどうなるんですか?
マニュアル読んでもわからなかったので…

>>電動ナナシさま
>>188の他ユーザのファイルを読むスクリプトで、fseek関数はどう動作してるのですか?
fopen()で指したファイルポインタで事足りるような気がするのですが…

238 :電動ナナシ:2001/05/24(木) 05:15 ID:???
>>safe_mode
exec や system で実行可能なファイル名が safe_mode_exec_dir にある
ものに制限される。exec_dir が /bin だとすると /usr/bin や /sbin と
いった別の場所にあるファイルを実行できなくなる。

>>fseek
fopen では pointer が先頭にくる保証はないと思っていたけど、マニュアル
読んだら
'r' - Open for reading only; place the file pointer at the beginning of the file.
とあるから、先頭に必ず来るんだね。つうことで、勘違いのためこれは不要。

239 :電動ナナシ:2001/05/24(木) 05:22 ID:???
補足すると、http://www.php.net/manual/ja/configuration.php
「セーフモード設定」を見ればちょっと書いてある

240 :237@ナナシファン2号:2001/05/24(木) 08:57 ID:GEomzVSs
>>電動ナナシさま
すばやい解答ありがとうございます!!
safe_modeの件わかりました!
というか、safe_mode_exec_dirに書いてある文章に説明されてましたね…
「詳細情報についてはセキュリティの章を…」のところを必死に読んでました…

241 :名無しさん@お腹いっぱい。:2001/05/24(木) 09:37 ID:Zsm6s/8w
>>240
ていうか、一度マニュアル全部流し読みでもいいから読む事をおすすめします。
次からは自分である程度トラブル対処出来る程度にはなれるよ。

242 :名無しさん@お腹いっぱい。:2001/05/24(木) 14:06 ID:???
>>232
function ufFunc($param) {
 reset($GLOBALS);
 while (list($key, $value) = each($GLOBALS)) {
  if ($value == $param) {
   echo "$key = $value<br>\r";
  }
 }
}
$var = 123;
// $hoge = 123;
ufFunc($var);

でどお?
問題はあるけどとりあえず無視。

243 :ナナシファン2号@独り言:2001/05/24(木) 14:56 ID:GEomzVSs
>>241
精進します(^^;
で、更に新しく気付いたことは。METHOD=POSTのときにURLデコードが不要だということ。
まあ処理自体はrawurldecode()とか使って簡単に行えるから苦労しないけど…
何だかなぁ〜

244 :YO:2001/05/24(木) 15:57 ID:/eASZrZM
>>242
スごい!
$GLOBALSというのは現在宣言されている変数の集合体でしょうか。
変数名 値がペアになってるんですね。
つかわせてもらいます。マンモス盆にはのってなかった。。

245 :名無しさん@お腹いっぱい。:2001/05/24(木) 16:25 ID:Zsm6s/8w
>>244
動作確認してないけど注意しないといけないのは、
$GLOBALS はグローバル変数を指す為のものだから ローカル変数だと
うまく動作しないと思う。 マンモス本には確かどういう物か載ってたと
思うよ。

>>242
これは考えつきませんでした。かっこいいです。

246 :電動ナナシ:2001/05/24(木) 17:56 ID:???
なーるほど、そんなやり方があったんだ・・・。お見事でした。

247 :初期不良:2001/05/25(金) 01:31 ID:???
>>242
まるっきり perl な書き方ですな(笑)

248 :169:2001/05/25(金) 15:21 ID:w1zVfjY.
>>242
 同じ値の変数があったら両方表示されてしまうような気がしますが、
デバッグ用だから、こまかいこと気にしないでOK?
 でも別に変数そのものを渡すことにこだわらないで、「変数名」文字列
渡して、値は$GLOBALSからもってくればいいのでは?

function varvarpapa( $varname )
{
echo "$varname = " . $GLOBALS[$varname ] . "<BR>\n";
}

var = 123;
varvarpapa( "var" );

249 :169:2001/05/25(金) 15:55 ID:w1zVfjY.
>>236
 PHPのソースを(同じレンタルサーバの)他のユーザーに見られない
ようにする方法としてこういうのは、どうでしょう?

1.前提として現在稼働しているapache(*1)は次の設定で動いている
 例) ポート:80 / グループ: www

2.PHP実行専用apache(*2)を別ポート/グループでもう1つ起動する
 例) ポート:8080 / グループ: phpexec

3.サーバのユーザーは、PHPのソースは、wrxr-----の形式で保存する
 ただしソースのグループは「PHPEXEC」

4.上記ソースは、*1のapacheは、PHPのソースにアクセスできない。(NG)
 反面、そのapacheから呼ばれたCGIからもアクセスできない。(OK)

5.*1のapacheには mod_rewriteをインストールしておく。
 拡張子が「php」か「php3」だったら、ポート8080で動いている
*2のapacheにリダイレクトするよう設定する。

6.「5」の設定により、phpのソースは、*2のapacheのみがアクセス
 できるようになり、他のユーザー/CGIからのアクセスは遮断できる。

 以上の設定と、既出のsafe_mode,open_basedir の設定を組み合わせれば
かなり完璧にできるような気がします。
 まだ、見落としあるかな

250 :名無しさん@お腹いっぱい。:2001/05/25(金) 16:31 ID:???
>>249
PHPってパーミッション600じゃ動かないような。。。

251 :169:2001/05/25(金) 16:48 ID:w1zVfjY.
>>250
 おっと、この辺はよくわからないままかいてます。
 パーミッション640でもダメでしたっけ

252 :antique = 250:2001/05/25(金) 17:07 ID:???
一般ユーザのグループをApache実行グループと同じにすれば、
640でも動くが、600ではやはりダメ。
けど640じゃ、CGIからソース覗けてしまうような。

253 :169:2001/05/25(金) 17:16 ID:w1zVfjY.
>>252
 CGIから覗かれるのを防ぐために、>>249 の案では、PHPしか実行しない
Apacheを用意(グループはPHP実行専用のグループを作る)してCGIからは
アクセス出来ないようにしてるつもり。でも、だめかな

254 :名無しさん@お腹いっぱい。:2001/05/25(金) 17:27 ID:???
>>253
CGIアップ用 USER:hogehoge GROUP:ftpuser
PHPアップ用 USER:hogehoge2 GROUP:phpuser

ってな感じでアカウント分けるの?

255 :169:2001/05/25(金) 17:49 ID:w1zVfjY.
>>254
 だいたいそうです。
 でも、ユーザーわけると面倒なので、GROUPだけphpuserとかにします。
 でも一般ユーザーは、chown hogehoge:phpuser herohero.php なんて
できないので、このchwonの処理だけは、なんか機構を用意します。
 拡張子が、phpのファイルだけグループをphpuserにするスクリプトを
用意しておいて、誰でも実行出来るようにしとけばいいとおもいます。
 phpのソースをアップロードしたのち、最初の一回は、このスクリプト
実行しないといけないので、ちょっと面倒ですけど。許容範囲かなと

256 :antique:2001/05/25(金) 18:03 ID:???
なるほど。可能かもしれません。試さないけど(爆

俺の案。久しぶりに頭使ってみた。

データベースのパスワード等覗かれたくないモノは、別ファイルにPHPで作成&書き出して、
パーミッションは600にする。
PHPで書き出したファイルは nobody ( or www等 ) が所有者なので、suexecでユーザ権限で
CGIを動かす場合、CGIからは覗けない。
他のユーザのPHPからは safe_mode その他の設定で覗けない。


setting.php
--------------------------------
<?php
$fp = fopen ("./setting.dat", "w");
fputs ($fp, "password");
fclose ($fp);

chmod ("./setting.dat", 0600);
echo 'make password file';
?>
--------------------------------

dbaccess.php
---------------------------------
<?php
$fp = fopen ("./setting.dat", "r");
$dbpasswd = fgets($fp, 4096);
fclose ($fp);

(その他の処理)

?>
---------------------------------

もち書き出しが終わったら、setting.phpは削除。これをCGIで覗かれたら元も子もない。

って勢いで書いたけどダメだったらスマソ。ってかこれって前出てたっけ???
# やっぱ究極的にはユーザ側の責任でって事で。
## 初期設定じゃ対処のしようも無いので、対処できるようにして、案を考えるトコまでで私は逃げます(爆

257 :169:2001/05/25(金) 19:44 ID:w1zVfjY.
>>256
 antiqueさんの案なら、apache1個ですみますね。なるほどー
 あとはsuExecの使用を徹底してもらえばいいのか。
 うーん、シンプルですばらしい

258 :電動ナナシ:2001/05/25(金) 23:24 ID:???
ユーザーごとに chroot した環境で Apache を動かすって手段もあるみたいだね。
http://penguin.epfl.ch/chroot.html

ただ一般のレンタルサーバー屋ではここまでやってくれないだろうけど。

259 :antique:2001/05/26(土) 06:24 ID:???
>>258
たしかtripodとか先日お亡くなりになった(笑)Datablocksは
chrootしてCGI実行してましたね。

260 :初期不良:2001/05/26(土) 12:52 ID:eKGwZyuI
>>258
perl の path とか sendmail の path とかは
/usr/local とかにリンクを張っておくのか...
/usr/bin も欲しいか。
/usr だと home に入れちゃってだめやね(笑)
あと、良くやってそうなのが docroot のリンクとか。
他にもリンクが無いか気をつけないといけないのか...

261 :初期不良:2001/05/26(土) 12:54 ID:eKGwZyuI
>>256
suEXEC してあれば制限するのは PHP だけで良かったのか。
気づかなかった...

262 :名無しさん@お腹いっぱい。:2001/05/27(日) 17:47 ID:TXkcwEzY
長くてすみません。

以下のスクリプトを試すと

1 1 ほげ ほげ
2 2 ほげほげ ほげほげ

と2重(?)に表示されてしまうのですが、どこが間違っているのでしょうか?
宜しくお願いします。

<?php

$hostname = 'localhost';

if(!$my_con = @mysql_connect($hostname, 'user', 'password')) {
echo "$hostname との接続に失敗しました。。。";
exit;
}

$row = mysql_select_db('mydb', $my_con);

if(!$result = mysql_query('SELECT * FROM mytable')) {
echo '失敗 コード = ' . mysql_errno() . '<br />';
exit;
}

while($row = mysql_fetch_array($result)) {
echo implode($row, "\t") . "\n";
}

mysql_free_result($result);

if(!@mysql_close($my_con)) {
echo "$hostname との接続に失敗しました。。。";
}

?>

263 :電動ナナシ:2001/05/27(日) 21:46 ID:???
while($row = mysql_fetch_array($result)) {
  echo implode($row, "\t") . "\n";
}
のところを
while($row = mysql_fetch_array($result)) {
  while (list($key, $val) = each($row)) {
    echo "\t[" . $key . "]->[" . $val . "]<br>\r";
  }
  echo implode($row, "\t") . "\n";
}
に変えてみれば原因は一目瞭然。

264 :名無しさん@お腹いっぱい。:2001/05/29(火) 01:29 ID:eaIIwdBE
漠然としていますが、PHPで掲示板を作るときにおいて、
セキュリティ的に気おつける事ってありますか?
PHPって自動的に変数に代入してくれるから、
POST専用に作ってもGETで使えちゃいますよね?

265 :名無しさん@お腹いっぱい。:2001/05/29(火) 02:44 ID:9gKnzQrg
if($REQUEST_METHOD != POST) {
echo "エラー";
exit;
}
とか

266 :Pマン:2001/05/29(火) 12:09 ID:Jge7ct1.
$HTTP_POST_VARS しか使わないとか。
後リロードボタンを押した時に2重投稿にならないようにするとか。
PHPの場合文字化けに注意とか。
stripslash 関数参照の事。

267 :名無しさん@お腹いっぱい。:2001/05/29(火) 13:44 ID:kzVptbgo
>$REQUEST_METHOD
この変数って詐称することこできないよね?

>$HTTP_POST_VARS しか使わないとか。
gpc_orderで設定するの??
他のスクリプトでGETとか使うつもりなのでソレは困るなぁ。
あと、PHP自体SAFE MODEで実行すべき?

268 :Pマン:2001/05/29(火) 14:51 ID:Jge7ct1.
>>267
わざわざ gpc_order しなくても直接 $HTTP_ほにゃらら変数読めば
いいわけだし、グローバルに入ってるのが POST か GET かわからない
場合には 直接 $HTTP_ほにゃらら見れば確実って事。

それかいっその事 gpc_order で何も設定しないようにして自前で
$HTTP_ほにゃらら変数から取り込むようにするといいかも。
ついでに勝手にくっついてくる \ 記号を取り除いたり必要であれば
文字コード変換も色々やっといたら後々楽ちんかも。 PHP4では
かなり重要っぽかったりして。

269 :名無しさん@お腹いっぱい。:2001/05/29(火) 23:07 ID:kzVptbgo
$HTTP_POST_VARSって
$HTTP_POST_VARS[〜]みたいにすると
詐称できちゃうわない?

270 :Pマン:2001/05/29(火) 23:45 ID:Jge7ct1.
実験したら出来るっぽいね。
うーん、ちょっと別な手を考えてみよう・・・。

そんじゃクエリ文字列チェックして変数いじってるようなら
スクリプトの実行を停止させるってのはどお?

271 :名無しさん@お腹いっぱい。:2001/05/30(水) 00:31 ID:nB9P6vf6
↓こんなページ見つけたよ。この通りやれば、一応おーけーかな?
http://www.geocities.co.jp/SiliconValley-SanJose/3026/docs/php3015.html

272 :Pマン:2001/05/30(水) 01:23 ID:owRJ.xHA
>>271
なるほど、こんな手がありましたか。
ありがとうございます。

273 :名無しさん@お腹いっぱい。:2001/05/30(水) 01:30 ID:1PS1i.dU
265さんの$REQUEST_METHODはどうだろう??
今、ちょっと試した限りでは詐称はできないみたいだけど。

269の俺の書き込みミスタイプがあるな。鬱だ。

274 :PHP初心者:2001/05/30(水) 07:01 ID:MEv63Gow
Perlのtie関数で作成したデータベースファイル(BSD_DB)を
PHPで読み書きしたいのですが可能でしょうか?

具体的には、Perlで以下の方法でfilenameというファイルを作成しました。

tie %DATA,DB_File,"filename", O_RDWR | O_CREAT, 0644;
$DATA{"key"} = "value";
untie %DATA;

これをPHP上で読み込むにはdbmopenかdba_openを使えば良いのでしょうか?
dbmopenで読み込もうとしたらエラーになり、dba_openは命令そのものが
使えませんでした(トクトクのサーバ上で実験した結果ですが・・・)

うまく引き継ぐ方法があったら教えてください。

275 :名無しさん@お腹いっぱい。:2001/05/30(水) 11:51 ID:???
「引き継ぐ」んだったら、CSVで吐き出すようなコードをperllで書く。
CSVをPHP用のDBにするようなコードをPHPで書く。
移植完了。

で、いいんじゃない?
「共有」だったらいろいろ考えなきゃいけないかもしれないけど。

276 :名無しさん@お腹いっぱい。:2001/05/30(水) 16:59 ID:DHWjkFvM
HTMLでフレームを利用しているのですが、2つのフレームを
同時に変更or更新する方法をご存知の方はいませんでしょうか?

JavaScript使えば可能ですけど、端末の環境がまちまちなので
使いたくありません。
そこで、PHPで何とかできないかずっと考えているのですが・・・

277 :名無しさん@お腹いっぱい。:2001/05/30(水) 17:00 ID:DHWjkFvM
HTMLでフレームを利用しているのですが、2つのフレームを
同時に変更or更新する方法をご存知の方はいませんでしょうか?

JavaScript使えば可能ですけど、端末の環境がまちまちなので
使いたくありません。
そこで、PHPで何とかできないかずっと考えているのですが・・・

278 :名無しさん@お腹いっぱい。:2001/05/30(水) 17:08 ID:???
Frameとかの仕事はブラウザでやることだから、PHPからは無理。

279 :名無しさん@お腹いっぱい。:2001/05/30(水) 17:17 ID:???
ロード毎に再表示してかまわないならframeタグのsrc属性でパスに適当なパラメータをくっつけてしまえ。

280 :名無しさん@お腹いっぱい。:2001/05/31(木) 17:06 ID:Nhe4Mloo
>>279
やっと理解できました。どうも有難うございます。
なんとか出来そうですので、プログラム作成が一段落
したら試してみます。

281 :名無しさん@お腹いっぱい。:2001/05/31(木) 17:07 ID:Nhe4Mloo
>>279
やっと理解できました。どうも有難うございます。
なんとか出来そうですので、プログラム作成が一段落
したら試してみます。

282 :ネコ:2001/06/01(金) 10:55 ID:pu43d4FU
PHP初心者です。質問を一つ書かせていただきます。
ブラウザの種類によって、PHPが動いたり動かなかったり
することはあるのでしょうか?

というのも、現在とあるショッピングサイトの会員登録関係を
PHPで作っているのですが、ネスケ4.0だとエラーが出るのです。
IEや、同じネスケの4.7、4.75などではエラーが出ません。

PHPの動作としては、フォームに入力された文字(IDやパスワード)を
テーブルに問い合わせて、登録があればその内容を書き出すものです。
いわゆる登録内容変更ページというものです。

なにとぞご指南ください。

283 :名無しさん@お腹いっぱい。:2001/06/01(金) 11:05 ID:???
>>282
単に「エラー」だと誰も分からないのでエラーメッセージそのものをあげれば適切なレスが返ってくる
んじゃないかな?
もちろんスクリプトファイル名などの公開がまずいんならそこだけ適当に編集してね。

284 :名無しさん@お腹いっぱい。:2001/06/01(金) 11:06 ID:???
>>282
どのような ERROR が出ますか?

285 :284:2001/06/01(金) 11:12 ID:???
被った

286 :274:2001/06/01(金) 11:20 ID:???
>>275
CSVにする方法がよくわかりませんでしたが、いったんPerlのDBをTXTで
掃き出させて、PHPのDBに取り込む方法で解決できそうです。
ヒントになりました。ありがとうございました。

287 :283:2001/06/01(金) 11:47 ID:???
>>282
とりあえずformを記述しているHTMLをチェックしてみたらどうかな?

288 :ネコ:2001/06/01(金) 14:42 ID:???
早いレスありがとうございます。
こんなに早いとは思いませんでした(^^;

ええと、エラーなんですが、まずうちのプログラマーが作ってる
共通の関数がありまして

********

function oci8_logon($userid="xxx", $password="xxx", $db="xx") {

error_reporting(0);
$conn = OCILogon($userid, $password, $db);
$conn_err = OCIError();
error_reporting(7);

if (is_array($conn_err)) {
oci8_error_conn($conn_err);
return;
}
return $conn;
}

********

これを、フォームのactionで指定したHTMLで

********
$conn = oci8_logon();
if (!$conn) {
error_msg($error_msg);
exit;
}

*********

として呼び出してます。エラーというのは$error_msgで指定した
$error_msg="失敗しました。";
という単なるメッセージだったようです。

これだけで分かりますでしょうか?
HTMLも確認してみたのですが、おかしいところはないみたいなのです。

289 :283:2001/06/01(金) 14:56 ID:???
>>288
まず確かめることはデータベースに接続できているのかどうか。
oci8_logon()で使っているIDやパスワード・データベース名が正しいか。

上記が正しいならデータベースが動いているかをチェック。

290 :ネコ:2001/06/01(金) 15:37 ID:???
>>289
ありがとうございます。
データーベースへの接続はできているようですし、
パスワード等も合っているようです。データ−ベースも動いてます。
(他のブラウザでは問題なく動いているので)。

PHPのような言語は、ブラウザに影響されないんですよね・・?普通。

291 :283:2001/06/01(金) 16:31 ID:???
他回答者のレスもみたいところだけど…。

同じHTMLでもブラウザによっては解釈(表示結果)が違ってくるのでそこにも注意すべき。
>>287で書いたのはこういう意味。正しいHTMLを書いているなら問題ないだろうけどね。

では「実際に」エラーを出している行は特定できているかな?
>>288ではDBへの接続に失敗していればerror_msg()でエラー文を出力しているようだけど、
接続がちゃんとしているならその部分でエラーになっているわけではないはず。
もしどんなエラーになっても「失敗しました」としか出てこないなら文章を変えてもらったほうがいいね。

残る可能性としては「既にブラウザ判定処理が組み込まれていて」跳ねているとか、かなあ…。

292 :283:2001/06/01(金) 16:31 ID:???
他回答者のレスもみたいところだけど…。

同じHTMLでもブラウザによっては解釈(表示結果)が違ってくるのでそこにも注意すべき。
>>287で書いたのはこういう意味。正しいHTMLを書いているなら問題ないだろうけどね。

では「実際に」エラーを出している行は特定できているかな?
>>288ではDBへの接続に失敗していればerror_msg()でエラー文を出力しているようだけど、
接続がちゃんとしているならその部分でエラーになっているわけではないはず。
もしどんなエラーになっても「失敗しました」としか出てこないなら文章を変えてもらったほうがいいね。

残る可能性としては「既にブラウザ判定処理が組み込まれていて」跳ねているとか、かなあ…。

293 :283:2001/06/01(金) 16:33 ID:???
うわ、この板でも二重投稿になることがあるのか…とほほ。

294 :電動ナナシ:2001/06/01(金) 18:04 ID:???
本当に $userid, $password に正しい内容が渡っている?
POST の内容を一度確認してみたら?

あと自分が書くなら error_reporting() を使うより、
$conn = @OCILogon($userid, $password, $db);
$conn_err = @OCIError();
とするかも。どうでもいいけど。error_reporting を使うのは、デバッグ
モードかどうかを指定できるようにして、デバッグモード有効時にのみ
エラーメッセージを HTML 中に吐き出すようにするときに使うなあ。
例えばページの先頭で
 $DEBUG_MODE = 2047; // no error report if set 0
 error_reporting($DEBUG_MODE);
みたいな感じで指定する。で、本番に移行するときは 0 にする。

295 :PHP初心者:2001/06/01(金) 23:06 ID:SVe2IKbY
新しく契約しようとしているレンタルWebスペース(PHP4もサポート)で
DBを作成しようと実験してみたところ、エラーとなります。
エラーの内容は「Fatal error: Call to undefined function: dba_open()
in /home/public_html/temp/test.php on line 2」

どこがマズイのでしょうか?このスクリプトの置いてあるフォルダ(temp)は
パーミッション777にしてあります。また、数日前にここのサポートに
質問したところ、dba_open関数はサポートしていると回答されました。

test.phpの内容

<?php
$handle = dba_open("test.db","n","db2");
dba_insert("key","vaule",$handle);
dba_close($handle);
?>

ちなみにdba_openはおろかdbmopenすら動作しない状態でした。

296 :電動ナナシ:2001/06/01(金) 23:59 ID:???
phpinfo() で何が組み込まれているか調べてみれば?

297 :名無しさん@お腹いっぱい。:2001/06/02(土) 01:49 ID:???
質問。CSVファイルなどを使って、擬似的なデータベースをPHPで
生成させて利用なんてことが出来るでしょうか?
最初にCSVファイル群を食わせておいてやると、簡単なSQLを発行して
やることが出来る、みたいな。

たとえ実現したとしても、アクセス数が増えるとサーバーに結構な負荷が
かかるでしょうか??

298 :松下くん:2001/06/02(土) 02:15 ID:wZoIC34o
undefinedなのにサポートしてるってのはおかしいね。どこのサーバだ?

dbmってPHP4からオプショソになったんじゃなかったっけ?(あいまい

299 :PHP初心者(295):2001/06/02(土) 12:19 ID:sIugQgBE
サポートから返事が来ました。
DB関連のライブラリが入っていないそうで、すぐには直らないそうです。
お試し期間内ですので、解約することにします。(ア●ムレンタルウェブです)
鯖も快適でサポートの回答も早かっただけに残念・・・。

いまのところ調べた限りでは、DB関連のサポートは

・millto、、、PHPver未調査 / dbmはOK、dbaはダメ / 激重でまともに使えない
・トクトク、、PHP3.0.14 / dbmはOK、dbaはダメ / 激重でまともに使えない
・●めいん屋、、、PHP4.03pl1/ dbmはOK、dbaはダメ / テレホでも快適
・ア●ム、、、、、PHP4.05 / dbm、dbaどちらもダメ / テレホでも快適

有料でもよいので、dbm,dbaどちらも使えるレンタル鯖どこかご存じありませんか?
dbaだけでも良いのですが、、、(スレちがいの質問でしょうか)

300 :電動ナナシ:2001/06/02(土) 17:02 ID:???
PHP-4.x のところは jstring 入れているか確認したほうがいいよ
入れてないと面倒かも

レンタルサーバーの話題はそれこそレンタルサーバー板でやったほうが
いいだろうね

301 :PHP初心者(295):2001/06/07(木) 09:41 ID:sUHW0iBs
>PHP-4.x のところは jstring 入れているか確認したほうがいいよ
>入れてないと面倒かも

jstringが入っているかどうかはphpinfoのどの部分を見れば分かるのでしょうか?

それとイメージ関数でgif画像を表示させてみましたが、画面の左隅に出てきてしまいます。
まん中に表示されるには、どのような方法がありますか?上記画像を表示中は、HTMLタグが
使えないので<CENTER>や<DIV ALIGN=CENTER>などでセンタリングできませんでした。

302 :名無しさん@お腹いっぱい。:2001/06/07(木) 09:48 ID:???
Configure Commandに--enable-jstringがあって
Multibyte (Japanese) Support が enabledになってればOK。

下の方の質問は意味不明。

303 :名無しさん:2001/06/07(木) 12:03 ID:???
PHPでのメール送信ですが、mail関数 mail() を使って送るのと
Perlでよくある sendmail に渡して送るのとでは、どちらが
サーバへの負荷が少ないでしょうか?
今は、mail()で送ってます。1日数百回程度。

304 :YO:2001/06/07(木) 15:33 ID:Og9QEOH2
こんにちは。
質問です。
POSTでデータを送った場合、ブラウザで再読み込みすると、またまた
同じデータが送られてしまうんですが、どうにかなりませんか。
(掲示板、アプローダなど)

305 :YO:2001/06/07(木) 15:34 ID:Og9QEOH2
こんにちは。
質問です。
POSTでデータを送った場合、ブラウザで再読み込みすると、またまた
同じデータが送られてしまうんですが、どうにかなりませんか。
(掲示板、アプローダなど)

306 :名無しさん@お腹いっぱい。:2001/06/07(木) 15:40 ID:???
>>304-305
書き込み処理後 Location で飛ばす。
# 2chはそうなってるけどあなたは二重書き込みしてますが(w

307 :名無しさん@お腹いっぱい。:2001/06/07(木) 15:58 ID:???
なかなかいい質問だね(w

308 :YO:2001/06/07(木) 16:10 ID:???
エヘヘ!
カチューシャ使用なんです。

309 :初期不良:2001/06/07(木) 17:02 ID:v8J6N31c
$str = ereg_replace("\\$([A-Za-z0-9_]+)", "${\\1}", $str);
ってできないの?どんなにいじくり倒してもうまく動いてくれない。
\\1 にはきちんと文字が取り込まれているのに...

310 :松下くん:2001/06/07(木) 21:15 ID:G09eKIiU
>>303
mail関数はsendmailつかってるから同じダヨ
phpinfo()のsendmail_path見てね

311 :PHP初心者(295):2001/06/07(木) 21:24 ID:sUHW0iBs
>>302

Configure Commandをみたところ、jstringの項目自体ありませんでした。
これがあるかどうかで、日本語表示に影響があるのでしょうか?

【Configure Commandの項目抜粋】
'./configure' '--with-apache=//home/mleber/src.he.net/
apache-1.3.6.work/apache_1.3.6' '--enable-track-vars'
'--enable-magic-quotes' '--with-mysql' '--with-gd'
'--with-ttf' '--enable-ftp' '--with-zlib'

それと、イメージ関数(GD)が説明不足でした。m(_ _)m
以下のようなスクリプトでgif画像をだしてみたのですが、
画像が左隅に寄ってしまうので、まん中にするには
どうしたらよいのか分かりません。(以下、座標は適当です)

header("Content-type: image/gif");

$im = imagecreate ($width ,$height);
$black = imagecolorallocate ($im,0,0,0);
$red = imagecolorallocate ($im,255,0,0);
$green = imagecolorallocate ($im,0,255,0);
$blue = imagecolorallocate ($im,0,0,255);

imageline($im,x1,y1,x2,y2,$red);
imagestring ($im,fontsize,x3,y3,"文字",$red);
imagestring ($im,fontsize,x4,y4,"文字",$green);
imagestring ($im,fontsize,x5,y5,"文字",$blue);

imagegif ($im);
imagedestory ($im);

312 :初期不良:2001/06/08(金) 04:15 ID:yNn8Dm5U
>>309
自己レスだけど、後方参照と変数展開のタイミングの問題か?
後方参照は \\ と二つ打つあたりから見ても文字として
ereg が取り込んだあとに解釈しているっぽい。
それ以前に変数展開しようとするからエラーになる、と。

もしかして perl でこんなことできるのってかなりすごいこと?
%tmp = ("str" => "succeeded.");
$str = '$str succeeded.';
$str =~ s/\$([\w]+)( $tmp{\1})/$tmp{$1}$2/;

$str は "succeeded. succeeded."

どうしたら PHP で後方参照を元に変数展開できるかな。

313 :初期不良:2001/06/08(金) 04:21 ID:yNn8Dm5U
$str = ereg_replace("\\$([A-Za-z0-9_]+)", "${\\1}", $str);

$str = ereg_replace("\\$([A-Za-z0-9_]+)", '${\\1}', $str);

もしかしてあとで変数展開してくれないかなと
期待してこうしてみたけどだめだった。
本格的にだめなのか?

314 :名無しさん@お腹いっぱい。:2001/06/08(金) 13:45 ID:Ec8tYdQk
フォームについて教えて下さい。

複数のチェックボックスがあった場合、foo[]という風に配列
で受け取れますが、複数のテキストフィールドの場合でもbar[]
という風に配列で受け取っても問題無いのでしょうか?

テストした所、一見問題なく動いているようなのですが・・・

315 :名無しさん@お腹いっぱい。:2001/06/08(金) 16:51 ID:Nor6.bTw
<?php phpinfo(); ?>
とだけ書かれたURLにPOSTしてみて、渡される内容を確かめてみるといいぞ。

316 :名無しさん@お腹いっぱい。:2001/06/09(土) 03:02 ID:5/7kfvYw
VC++のデバッガのように、
呼ばれた関数一覧を取得する方法はないのでしょうか?

function Hoge()
{
Mnu();
}
function Mnu()
{
//呼ばれた関数の取得.
Hoge , Mnu と表示.
}

317 :名無しさん@お腹いっぱい。:2001/06/09(土) 03:19 ID:sb0cuGDw
>>316
perldoc -f caller

318 :名無しさん@お腹いっぱい。:2001/06/09(土) 03:20 ID:???
>>317 Perlと間違いたごめんなさい

319 :電動ナナシ:2001/06/10(日) 03:02 ID:???
>>312
ううむ、変数の中に "\\n" を含めるとワーニングが出るなあ。
1 行増えるけど、こういう書き方もあるだろうね。

$base = array('$hoge' => "hage", '$foo' => "bar");
$str = '$foo is bar';
$pattern = "(\\\$[A-Za-z0-9]+)";
ereg($pattern, $str, $match);
$str3 = ereg_replace($pattern, $base[$match[1]], $str);

結果は "bar is bar" になる。

320 :電動ナナシ:2001/06/10(日) 03:43 ID:???
>>311
jstring は別途組み込まないとダメだ。Google とかで php と jstring を
キーに検索してみろ。

なお、jstring がないと EUC 以外の文字コードの扱いに困難をきたすが、
コードの変換をしないとか正規表現を含む文字列関数を使わないなら別に
なくてもいい。

321 :電動ナナシ:2001/06/10(日) 03:54 ID:???
>>316
自分で作りこむしかないと思うぞ。

322 :名無しさん@お腹いっぱい。:2001/06/10(日) 10:30 ID:7GXX5a22
fsockopen で

$fp = fsockopen ($host, 80, $errno, $errstr, 30);

のような書き方をしているのですが、時々タイムアウトして
「Fatal error: Maximum execution time of 30 seconds in hoge.php on line 42」
とエラーメッセージが出てしまいます。
この際、用意された(?)エラーメッセージではなく
独自のエラー処理をしたいのですが、どうすれば良いでしょうか?
よろしくお願いします。

323 :名無しさん@お腹いっぱい。:2001/06/10(日) 19:16 ID:mZEbGQ.k
$fp = @fsockopen ($host, 80, $errno, $errstr, 30);
if(!$fp){ echo __LINE__."行目でえらあ出ちゃった";
}else{
while(!eof.....

@でエラー抑制できます

324 :初期不良:2001/06/10(日) 23:16 ID:1hgwnV2Y
>>319
そんな感じに見つかった数だけ再検索って事になっちゃうのかな...

どーでもいいんだが
warning ってウォーニングって読むんじゃないのか?
なんかワーニングって書く人多いが。

325 :PHP初心者(295):2001/06/11(月) 01:27 ID:1Tk0xrdc
>>320

>コードの変換をしないとか正規表現を含む文字列関数を使わないなら別に
>なくてもいい。

いまのところ、これが不足することによる弊害はないようですので、
大丈夫だと思います。

ところで、1つのデータベース(ファイル)に多くの人が同時に
アクセスしたら(通常の書込みファイルのように)壊れることは
あるのでしょうか?
汎用ファイルロック(flock)はデータベースには使えませんし・・・。

Perlの場合は、データベースでもダミーファイルでロックできましたが、
PHPの場合、どうやるのかわかりません。

ちなみに、ユーザーが100人くらいいて、1つのデータベースを読み書き
しています。全員が同時にアクセスはしませんが、今後のに備えて
おきたいです。よろしくお願いします。

326 :名無しさん@お腹いっぱい。:2001/06/11(月) 02:47 ID:GHljoYjE
>>323
古・・・・
こっちだろ。
$fp = fsockopen($host, 80, $errno, $errstr, 30) or die('なんたら');

327 :あなたも億万長者をめざしませんか?:2001/06/11(月) 16:52 ID:p/rGLx3E
http://home9.highway.ne.jp/cym10262/

328 :名無しさん@お腹いっぱい。:2001/06/12(火) 00:22 ID:???
PHPで、一定時間ごとに自動で集計させるようなものを動かしたい
のですが、cronはCGI版のPHPでしか使えないのでしょうか?

329 :名無しさん@お腹いっぱい。:2001/06/12(火) 00:54 ID:???
cronで一定時間置きにwgetを動かすとか。

330 :PHP初心者(325):2001/06/12(火) 02:17 ID:???
データベースのファイルロック、つくれました。
perlのデータをPHPに書き直したら、上手くいきました。

331 :名無しさん@お腹いっぱい。:2001/06/12(火) 07:22 ID:???
>>329
> wget

何を集計するんだよ?

332 :名無しさん@お腹いっぱい。:2001/06/12(火) 09:29 ID:???
>>331
コマンドライン版PHPが嫌ならwgetとかで定期的にHTTP越しで
PHPにアクセスしろってことだろ

333 :名無しさん@お腹いっぱい。:2001/06/12(火) 09:30 ID:???
>>331
コマンドライン版PHPが嫌ならwgetとかで定期的にHTTP越しで
PHPにアクセスしろってことだろ

334 :名無しさん@お腹いっぱい。:2001/06/12(火) 09:38 ID:mCD2wIA.
PHPのインストールができません。Winでは簡単でしたが、
Linuxは難しいです。教えてください。
参考書どおり./configure --with-mysql --with-apxs=/
usr/local/apache/bin/apxs と打つと
cannot find outputfile from lex
となります。アパッチと、MySQLのインストールは終わってます。
よろちく

335 :YO:2001/06/12(火) 12:48 ID:???
>>325
DBに何を使ってるのか知りませんが、RDBMSと菜の九十九のなら、
書き込みがいくら有ろうが、DBエンジンのほうで制御されます。
参照整合性がとれないのはDBとはいえませんから。100人程度なら
なんら問題ないと思います。

336 :PHP初心者(325):2001/06/12(火) 14:12 ID:???
>>335

問題なさそうで、安心しました。ありがとうございます。
いま、自作のオンラインゲームで、パスワードや所持金の情報を記録するために
DBを使っております。ユーザーの所持金などが消えたら大変ですので、、、
バックアップは、まめにとっています。
DBは、簡易DB(GDBM: dbmopen命令 等)でやっています。

337 :名無しさん@お腹いっぱい。:2001/06/14(木) 10:38 ID:GlZ04kWo
イントラネット(WinNT)にMySQL+PHPで住所録管理DBを作ろうとしてます。
Perlで検索フォーム作るときには、EUCが基本でしたが、
どうやらそんなことお構いなしに、SJISでやってますが、問題ありますか?
Linuxのブラウザーから検索した時は、駄目でしたが、クライアントが
win系なら問題ありませんよね?そのへん教えてください。

338 :名無しさん@お腹いっぱい。:2001/06/14(木) 12:01 ID:???
>>337
何故EUC-JP使うか分かってないだろ

339 :名無しさん@お腹いっぱい。:2001/06/14(木) 13:12 ID:8MasEgfI
why?

340 :337:2001/06/14(木) 14:02 ID:GlZ04kWo
一応知ってます。→SJISの2バイト目に\がくるからでしょ?

はい、>338さん
1.SQLではSJISでも問題が起こらないか。
2.なぜLinuxのブラウザーではおかしくなるのか。
教えてください。

341 :名無しさん@お腹いっぱい。:2001/06/14(木) 14:53 ID:???
338じゃないけど>>340

>はい、>338さん
なんか偉そうだな。

>1.SQLではSJISでも問題が起こらないか
MySQLは使用する文字コードの設定できるだろ。
基本中の基本だと思うがね。

>2.なぜLinuxのブラウザーではおかしくなるのか。
Linuxで使えるブラウザが何種類あるか知ってますか?
なんというブラウザでどんな現象が起こるかくらい書けや。

質問の仕方から勉強しなおせ。

342 :名無しさん@お腹いっぱい。:2001/06/14(木) 14:52 ID:???
338じゃないけど>>340

>はい、>338さん
なんか偉そうだな。

>1.SQLではSJISでも問題が起こらないか
MySQLは使用する文字コードの設定できるだろ。
基本中の基本だと思うがね。

>2.なぜLinuxのブラウザーではおかしくなるのか。
Linuxで使えるブラウザが何種類あるか知ってますか?
なんというブラウザでどんな現象が起こるかくらい書けや。

質問の仕方から勉強しなおせ。

343 :名無しさん@お腹いっぱい。:2001/06/14(木) 16:22 ID:qoE/XP/M
ロックもやりなおせ。

344 :名無しさん@お腹いっぱい。:2001/06/18(月) 01:46 ID:vO5h5Je.
>>309
自己レスだけど、一部 preg_replace で解決した。
http://www.php.net/manual/ja/function.preg-replace.php

これで後方参照しまくりだー
と思ったら配列とか可変変数には使えなかった...
んで一部解決ってのはグローバル変数に限っての話で、
こんなコードが書けた。

$str = '<font size="$size" color="$color">';
$size = 3;
$color = '#ccffcc';
func($str);
function func($str){
 echo preg_replace("/\\$([A-Za-z0-9_]+)/e", "tmp(\\1)", $str);
}
function tmp($str){
 global $$str;
 return $$str;
}

結果は <font size="3" color="#ccffcc">

単にグローバル変数を使っちゃうと混乱するから、
グローバルな配列に置換用の変数をまとめておくと
使いやすいかもしれん。
それにしても tmp() ってやらなきゃいかんのはださいな...

デザイナーの人には置換されるものが見えるってのが
必要だと思うからこれは結構役に立つかも。

345 :初期不良:2001/06/18(月) 02:31 ID:vO5h5Je.
function tmp($str){
 return $GLOBALS[$str];
}
この方がいいか。
それにしても人がいないね...

346 :名無しさん@お腹いっぱい。:2001/06/18(月) 21:48 ID:65ECvBhU
WindowsマシンにPHP4を入れて、2chぽい掲示板を作りながら勉強しています。

そこそこできあがった物を会社のサーバーで動かそうとしたら、
会社のサーバーにはPHP3が入っていて、あちこちで文法
エラーが出てしまいました。

foreachとか、直せるところは直したんですが、
クラス内でのクラスの書き方がよくわからないんです。

class aaa{
function aaa(){
}
function aaaput(){
echo 'test';
}
}

class bbb{
var $ccc;
function bbb(){
$ccc=new aaa;
}
function ddd(){
echo $this->$ccc->aaaput();
}
}


こういう書き方で、自分のマシンのPHP4では動いたのですが、
会社のPHP3マシンだと「 $this->$ccc->aaaput(); 」の部分で
文法エラー(?)が出ます。

クラス内で別のクラスを使用するには、どのような書き方をすれば
よいのでしょうか。

347 :電動ナナシ:2001/06/18(月) 23:17 ID:???
$this->ccc->aaaput() じゃないか?

348 :電動ナナシ:2001/06/18(月) 23:23 ID:???
あと誤記だとは思うが class bbb の
 function bbb(){
  $ccc=new aaa;
 }

 function bbb(){
  $this->ccc=new aaa;
 }
じゃないか?
$ccc だと関数スコープになるから、function bbb() が終了した時点で
変数の内容は破棄されるぞ。$this->ccc じゃないと保存されない。

349 :346:2001/06/19(火) 01:07 ID:VXxYGWVg
>>348
> function bbb(){
>  $this->ccc=new aaa;
> }
そのとおりです。誤記です。

>>347
私もそう書くのが正しいと思っていたのですが、
PHP3でも4でもエラーになってしまいました。


// 2chぽい掲示板はだいぶ良くなってきました・・・。

350 :電動ナナシ:2001/06/19(火) 09:59 ID:???
$temp = $this->ccc;
$temp->aaaput();
じゃあだめかな。
# もう自分のまわりから PHP3 な環境は死滅した・・・。

351 :346:2001/06/19(火) 13:01 ID:Hz69Pzw.
それで、なんとか値の読み出しはできるように
なりましたが、変更ができないですね。

でもこれで一歩前進。
PHP3でもなんとか動くようになりました。

352 :電動ナナシ:2001/06/19(火) 13:09 ID:???
変更するなら
 $temp = $this->ccc;
 $temp->setAttribute("hogehoge");
 $this->ccc = $temp;
で十分だろ?

特に PHP の場合、あるオブジェクトに対して同時に複数プロセスから
アクセスされることはないのだから。

353 :346:2001/06/19(火) 16:02 ID:Hz69Pzw.
や、やっとPHP3でも望みどうりの動作をさせることができました。
本当にありがとうございます。

しかし、これだけのために無駄な記述が増えますね。
正直言ってPHP3は変だ、と思いました。

354 :電動ナナシ:2001/06/19(火) 16:54 ID:???
そう思ったら PHP4 に乗り換えるべし。

355 :名無しさん@お腹いっぱい。:2001/06/19(火) 18:34 ID:???


  ハハハ
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ^∀^)<  あほか
 ( つ ⊂ ) \_________
  .)  ) )
 (__)_)     (^∀^)ゲラゲラ キエロ カイセンキッテクビモキレ ケラ

356 :346:2001/06/20(水) 01:50 ID:uEnCJcj6
>>354
上司に相談します・・・。


で、連続して申し訳ないのですが、index.php?hoge=fugaの
出力内容をindex.htmlに書き出すといった処理は、どのよう
にやるのが一般的でしょうか。

私なりに考えたら、こうなってしまいました。

ob_start();
$hoge='fuga';
include 'index.php';
$buf=ob_get_contents();
ob_end_clean();
$DB=fopen('index.html',"w");
fwrite($DB,$buf,strlen($buf));
fclose($DB);


他に考えたのは、
file('http://localhost/xxxxxxxxx/index.php?hoge=fuga');
読み出して書き出すとか・・・・・・。

357 :電動ナナシ:2001/06/20(水) 14:35 ID:???
なるべく既存のコードに手を入れたくないなら、CGI 版の php を
作って使うのがいいんじゃないの?
 参考 URL
 http://www.faqts.com/knowledge_base/view.phtml/aid/3510

要するに、
 system("/usr/local/bin/php -q /path/to/index.php '&hoge=fuga' > index.html");
とすればいいんじゃないかな。
index.php からは $HTTP_GET_VARS["hoge"] で参照できる。

余計なプロセスが一つ立ち上がるから忙しいサーバーでは難しいかも。
ロックをどうするかという問題もあるしね。

358 :ヤスミン:2001/06/21(木) 02:13 ID:???
こんばんわヤスミンです。
ヤスミンどこに質問したらいいのかわかんないので
ここでしつもんしま〜す。

え〜と
<form action="・・・" method="post">
<form action="・・・" method="get">
の違いって・・・

データベースに日本語のデータを格納するときに
<form action="・・・" method="post">

データベースからデータを取り出すときに
<form action="・・・" method="get">
でいいの?

ヤスミンってドキュソな人だからW3Cのドキュメント見ても
よくわかんなかったです。
教えて、とってもやさしい2chの皆様&heart;

359 :名無しさん@お腹いっぱい。:2001/06/21(木) 09:07 ID:CwIMdjnQ
>>358
get:変数リストをURLの末尾にくっつけて送る(http//〜?foo=bar&...)
post:変数リストを標準入力経由で渡す

360 :名無しさん@お腹いっぱい。:2001/06/21(木) 09:10 ID:CwIMdjnQ
>>358
データベースへのデータの受け渡しは全く別の
問題ですよ。

361 :名無しさん@お腹いっぱい。:2001/06/21(木) 13:21 ID:Xtwu7Ct.
get:imgタグで呼び出せる。荒勢
post: if($REQUEST_METHOD != "POST") がなかったらgetと同じ

362 :へのへのもへじ:2001/06/21(木) 13:53 ID:Q3kgaj.2
はじめまして。へのへのもへじともうします。
超初心者ですがよろしくおねがいします。
環境は
 Linuxディストリビュージョン:Kondara 2.0
 Apache:1.3.12
 PHP:php-3.0.18(国際化版)
です。
さて質問ですが、PHPで画像の変換JPG→PNGやサイズの変更は
できるようですが、元データJPG→PNGで携帯で見ようとすると
ezwebの場合見れません。(もちろんi-modeはGIFなので×)
J-skyだと見れるのですが・・・。なぜでしょう・・・。
それと、文字や画像を指定の位置に表示させる方法はどうすれ
ばいいのですか?(表示開始座標の指定方法とか・・・)
よろしくおねがいします。

363 :名無しさん@お腹いっぱい。:2001/06/21(木) 14:36 ID:CZuz.1cs
基本的なことだと思うのですが、教えて下さい。

現在PHP4を使用していますが、文字コードにEUCを使用している限りに
おいては、正規表現関数などによる文字列操作で文字化けは発生しない
という認識は正しいでしょうか?

364 :名無しさん@お腹いっぱい。:2001/06/21(木) 16:38 ID:CwIMdjnQ
PHP4+GDで日本語表示が出来ません。
うまく動いている方、いますでしょうか?

365 :レタペパ:2001/06/21(木) 20:18 ID:Nd76xGdU
例えばアンケートのフォームを作るとして、ふりがなの欄に
ひらがな以外が入力されたときにエラーを出すのは何が一番
効率がよいのでしょうか?

日本語関数を使えば簡単に出来る物と思っていましたが、
マニュアルを見てもそれらしきものを見つけられません。
もしないのなら正規表現を使うのか。

Rubyなら一発で出来るよ、と聞いたのでなおさら気に
なります。

366 :初期不良:2001/06/21(木) 21:24 ID:ujECfFiw
>>365
php4+mbregex で mbereg() をテストしてみた。
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/php-book/supplement.html#mbregex

if(mbereg('[^あ-ん]', $str)){
 echo "ひらがなだけを使ってください\n";
}

とかできるよ。ちなみに Ruby の正規表現エンジンらしい。

367 :名無しさん@お腹いっぱい。:2001/06/21(木) 23:27 ID:???
fsockopen で www.shoeisha.com に繋ごうとすると、

<b>Fatal error</b>: Maximun execution time of 30
seconds in <b>test.php</b>

と出ます。
$fp = fsockopen($host, 80, $errno, $errstr, 30);
と書いているのですが、この30秒のことでしょうか?

また、このようなエラーではなく「接続失敗」
という感じで表示させたいのですが、どうすればいいでしょう?

#www.shoeisha.com に繋がらないのは現時点でのものです。

368 :名無しさん@お腹いっぱい。:2001/06/22(金) 00:00 ID:D.i2sKVg
phpて...

369 :名無しさん@お腹いっぱい。:2001/06/22(金) 02:56 ID:sUtzd/WE
MySQLのDB読みに行ってて、その間にブラウザをバックグラウンドにしないと
タイムアウトになるって現象、確認した人居ますか?

370 :名無しさん@お腹いっぱい。:2001/06/22(金) 10:01 ID:???
TurboLinuxです。PHPのconfigureでエラーがでます。
./configure: lex: command not foundで止まります。
解決方法を教えていただければ・・・。

371 :antique:2001/06/22(金) 10:10 ID:???
見たまんま、lexが無い。

lex若しくはflexをいれませう。

http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/Flex/

372 :名無しさん@お腹いっぱい。:2001/06/22(金) 10:32 ID:yk00SzmE
あとは、./configure時のlexのパスが
間違ってるとか・・・

373 :名無しさん@お腹いっぱい。:2001/06/22(金) 11:14 ID:???
>371
ありがと。でもflexのコンパイルにyaccがねえとか
いわれた。Linuxはどうなってんだか、やれやれ。

374 :antique:2001/06/22(金) 12:00 ID:???
>>373
ほい
http://www.anna.iwate-pu.ac.jp/~kojima/EWS/ews-gnu.html#bison-1.25

375 :名無しさん@お腹いっぱい。:2001/06/22(金) 12:22 ID:rSWbAQtM
質問なんですが、今アメリカのサーバでPHPやってるんですが、
getdate( time() )ってやって日付時刻を取得すると、
アメリカ時間(時差13時間)が返ってくるんです(当然だけど)。
これを日本語時間にするにはどうすればいいんでしょう?

376 :antique:2001/06/22(金) 12:29 ID:???
putenv('TZ=JST-9');

377 :名無しさん@お腹いっぱい。:2001/06/22(金) 14:24 ID:???
>374
ありがたぅ。
なんとかインストール成功しました。

378 :363:2001/06/22(金) 15:22 ID:rt3YCcj2
誰か教えて…
検索してみてもどのサイトにもはっきりとは書いてないんですー。

現在PHP4を使用していますが、文字コードにEUCを使用している限りに
おいては、正規表現関数などによる文字列操作で文字化けは発生しない
という認識は正しいでしょうか?

379 :名無しさん@お腹いっぱい。:2001/06/22(金) 15:42 ID:ImTslAWI
正規表現で文字化けってのが意味不明だけど、
jstringとmbregex使えば心配いらないんじゃない?

EUCで文字化けって聞かないけど、SJISの2バイト目がASCIIとかぶる事ぐらいでしょ?
あとはブラウザの問題

380 :電動ナナシ:2001/06/22(金) 15:50 ID:???
それは必ずしも正しくない。
実際に化ける事例が PHP-jp の 11443, 11447 に出ているので参照する
ことをお勧めする。

381 :電動ナナシ:2001/06/22(金) 15:50 ID:???
>>380>>378 へのレス。打つ出し脳。

382 :363:2001/06/22(金) 16:41 ID:rt3YCcj2
>電動ナナシさん

ML確認しました。確かに化けます。
実は、preg_match_allを使用したいんですけど、mberegでは無理ですよね。
なんとか上手い方法はないでしょうか?

383 :名無しさん@お腹いっぱい。:2001/06/22(金) 16:52 ID:???
ああ、それ俺も気になるな。
なんかイイ案ないの?

384 :???^?y?p:2001/06/22(金) 20:49 ID:MEheHnco
>>366
ばっちりうまくいきました、ありがとうございます。

385 :眠い。:2001/06/22(金) 21:35 ID:MEheHnco
DBへの入力フォームを使っているのですが、
PHP4では問題なく日本語が入るのにPHP3国際化版
で使うと、例えば"あいう"が勝手に"シスシオシヌシニ"に
なってしまうのです。もちろん"charset"はeuc-jp
にしてあるのですが。

どうすれば文字化けしないようになるのでしょうか?

386 :名無しさん@お腹いっぱい。:2001/06/22(金) 21:53 ID:QfivNl3k
jstring って NT & Apache に組み込めますか〜?

PHP を覚えようと思って WIndowsNT4.0 に Apache、PHP4、MySQL を
入れてます。で、今は入出力時の SJIS <-> EUC 変換に
jcode.php を使ってるのですが、PHP4.0.6 で jstring が組み込まれる
んだったら jstring を使いたいな〜と。。。

387 :名無しさん@お腹いっぱい。:2001/06/22(金) 22:00 ID:???

やってみれば?

388 :386:2001/06/22(金) 22:34 ID:???
>>387
いえ、既に出来ませんでした〜。
jstring を組み込めなかったので jcode 使ってます。
いろいろサイト探索したんですけど情報が無くて。。。
jstring の Windows 用バイナリなんか無いですよね。
てか、やってる人いるのかな〜。

389 :antique:2001/06/22(金) 22:35 ID:???
>>386

現時点(4.0.5)では無理(な筈)。

4.0.6でどうなるかは不明。

390 :386:2001/06/22(金) 22:56 ID:???
>>389
ちょとスッキリしました〜。
4.0.6 に期待!

ところで下1桁のバージョンアップの間隔って短いですか〜?
あ、いや、いつ出るのかなと。
昨日からPHP勉強始めたのでピンとこなくて
1年先とか、そんなんじゃないですよね。。。

それとバカな質問かもしれませんが海外のサーバって
jstring は組み込まれてないと考えた方が良い?
逆に国内はほとんど組み込まれてるとか。。。

391 :ねたろ:2001/06/23(土) 00:04 ID:I6yaTfIE
>>390
4.0.4から4.0.5は半年

392 :名無しさん@お腹いっぱい。:2001/06/23(土) 00:13 ID:???
俺、4.0.6 使ってるけど。。。

393 :antique:2001/06/23(土) 00:19 ID:???
WEB+DB PRESSによると「まもなく」らしい。
つか記事は既にPHP4.0.6が有るかのような書き方だし。

待ちきれないなら
http://snaps.php.net:8000/

394 :Error401:2001/06/23(土) 21:56 ID:WcK6Rl5Y
4.0.6がリリースされましたね。
http://jp2.php.net/

うーむ、これからApache 1.3.20 + SSL + PHP 4.0.5をサーバにインストール
しようとしてたんだが・・・。

395 :名無しさん@お腹いっぱい。:2001/06/23(土) 21:56 ID:???
凄く初歩な質問とは思うんですが、さっぱり分からないので…。
アクセスカウンタをIPアドレスの重複があったら数えないようにしたい(リロードを無効にしたい)の
ですが、何故かローカルアドレス(127.0.0.1)しか表示されません。
解決策はありませんか?教えてください。

396 :名無しさん@お腹いっぱい。:2001/06/23(土) 22:47 ID:???
それだけでは俺にもサパーリ。┐(´ー`)┌

397 :名無しさん@お腹いっぱい。:2001/06/23(土) 23:01 ID:tHZzk4jg
ここのように掲示版の1ページ目を静的なファイル(html)にする件について。
以前掲示版に投稿があったときに lynxをexecしてhtmlファイルを生成していたのですが、ヴァーチャルホストのレンタル鯖に移転したのでlynxが使えなくなりました。
ちなみにphpのコマンドライン版も使用不可でした。
他にいい手はありますか

398 :名無しさん@お腹いっぱい。:2001/06/23(土) 23:47 ID:???
>>394
Change Logみたが、 jstring組み込みは見送られたようですな。

399 :電動ナナシ:2001/06/24(日) 00:08 ID:???
>>397
ここはいっちょ perl と連携するしかないね。
index.html 相当の PHP ページを呼び出して保存するスクリプトを利用するとか。

Socket 叩いて localhost の port80 開いて読み出した内容をそのまんま
ファイルに保存するという手段もあるだろうけど。

400 :Error401:2001/06/24(日) 00:12 ID:Ey7Cmqac
mbstringとjstringって違うものだったのか(汗

ちょこっと試したらApacheは起動しないわ、PostgreSQLには津ながらないわで、
じっくり検証する必要がありそうな予感です。

401 :電動ナナシ:2001/06/24(日) 00:13 ID:???
>>398
> Added Japanese multibyte string functions support. (Rui)
というのがあるし、PHP-4.0.6 のソースには mbstring というモジュールが
追加されている。多分これが jstring に相当するんじゃないのかな。

Windows 環境での jstring サポートだけ php-4.0.7 までおあずけって
ことみたいだね。

402 :電動ナナシ:2001/06/24(日) 00:16 ID:???
>>400
Apache for Win32 1.3.20 な環境で PostgreSQL 7.1 への接続に成功。
Linux 環境では明日か明後日に評価予定。

そっちはどんな環境?

403 :395:2001/06/24(日) 00:18 ID:???
どっかのHPでみて改造したものです。
$filename = "foo";

$file = fopen($filename,"r+");
$count = fgets($file,64);
$lastIP = fgets($file,256);
$IP = getenv("REMOTE_ADDR");

$count = chop($count);
if($lastIP != $IP)
     $count = $count + 1;

print("$count");
print("<br>lastIP=$lastIP");
print("<br>IP=$IP");

ftruncate($file,0);
rewind($file);
fwrite($file, $count);
fwrite($file, "\n");
fwrite($file, $IP);
fclose($file);

このスクリプトで、IPアドレスがローカルしか表示されません。
ブラウザの問題でしょうか…?

404 :Error401:2001/06/24(日) 00:40 ID:Ey7Cmqac
>>402
TurboLinux Server 6.1
Apache 1.3.20
openssl 0.9.6a
Apache-SSL 1.44 (Apache 1.3.19用)
PostgreSQL 7.1.2
です。

./configure --with-pgsql=/usr/local/pgsql --with-apxs=/usr/local/apache/bin/apxs
--with-openssl=/usr/local/ssl --enable-mbstring --enable-mbstr-enc-trans

とやったらApacheは起動するがPostgreSQLにはPEARで繋がらず。
--with-oci8を加えると、Apacheも起動せず。

まぁ、テスト用のごちゃごちゃの環境なのであまり気にしないでください。
今OSからクリーンインストール中(ってWindowsみたいだな(笑)

405 :名無しさん@お腹いっぱい。:2001/06/24(日) 02:03 ID:.r4D07rI
>>403
F2sなんちゃう?F2sならHTTP_X_FORWARDED_FORだよ

406 :Error401:2001/06/24(日) 08:31 ID:Ey7Cmqac
ふいー、もろもろインストール完了。
さっそく、PostgreSQLへの接続を試してみる。コードはこれ。
$db = DB::connect("pgsql://localhost/test");

・・・繋がらない・・・

FATAL 1: user "password=" does not exist
というエラーが発生していることに気づく。
うぬ、DSNが悪いのか?と思い修正してみる。

$db = DB::connect("pgsql://nobody@localhost/test");

・・・繋がった。

PHP4.0.5ではhttpdを動かしているユーザで接続しに行ってるようだ。

うーむ、これは仕様変更なんでしょうか?
それとも、どこかに設定があるのかなぁ?
しかし眠いので家に帰ったりする。

407 :Error401:2001/06/24(日) 08:48 ID:Ey7Cmqac
うぬ、帰る前にちょっとソースを見たらわかった。

DB.phpのparseDSNで
$parsed = array(
...
'username' => false,
...
);
とやり、pgsql.phpで

if (isset($dsninfo['username'])) {
$connstr .= ' user=' . $dsninfo['username']; // (*)
}
としている。

実験すると(マニュアル見ろよ)、isset()は対象の値がfalseでもtrueになる
らしい。だから(*)は必ず実行されてしまう。

・・・ということでした。

408 :Error401:2001/06/24(日) 08:55 ID:Ey7Cmqac
ということで、マニュアルを見て、さらに実験。

isset()は変数の存在チェック。
empty()は変数がセットされているかどうかのチェック。

<?php
$a = false;
echo isset($a);
echo empty($a);
?>

結果は「11」。
ということは、
if (isset($dsninfo['username'])) {
は、
if (!empty($dsninfo['username'])) {
とすればいいね。

うーむ、こういうちょっとした所に時間を取られるから、PEARって敬遠されるのかも。
じゃ、帰る。

409 :Error401:2001/06/24(日) 09:03 ID:Ey7Cmqac
ちょっと気になったので(早く帰れ)、PEARのCVS HEADを取ってきてみる。

件の個所はisset()のままだ。

うーむ、俺の使い方が悪いのか、設定が悪いのか、それともバグなのか・・・。

410 :名無しさん@お腹いっぱい。:2001/06/24(日) 10:48 ID:YuSz4H3E
Win2000 + Apche1.3.19 + PHP4.0.6 で

<?php
echo $hoge;
?>

・・・とだけ書いたものを

http://localhost/hoge.php?hoge=fuga

として実行しても、$hogeに値が入りません。
(ブラウザに、なんにも表示されない。)

「echo $hoge;」を「phpinfo();」として、実行してみると
QUERY_STRING とか HTTP_GET_VARS["hoge"] などに、値は入ってます。

原因に心当たりのある方は、教えてください。

>>369
自分のとこだと、DB関係なくても、そうなることがあります。

411 :名無しさん@お腹いっぱい。:2001/06/24(日) 13:24 ID:bWNntLFo
MySQLのDB読みに行ってて、その間にブラウザをバックグラウンドにしないと
タイムアウトになるって現象、確認した人居ますか?

412 :電動ナナシ:2001/06/24(日) 16:09 ID:???
>>410
php.ini で Register_Globals が Off になっているから。

>>411
確認したことはない(バグで無限ループを作ってしまった場合くらい?)。

どんなスクリプトで発生するのか分からない以上コメントのしようがない
と思うのだが。

413 :電動ナナシ:2001/06/24(日) 16:20 ID:???
>>408
本当だ。oci8.php や mysql.php を見る限り、
if ($dsninfo['username']) {
 // hogehoge
} else {
 // セットされて無いぞゴラァ
}
という風にするつもりだったようだね。

414 :Error401:2001/06/24(日) 16:41 ID:???
>>413
あ、そうか。そうすればいいんだ。
やっぱり、徹夜はいけないね。思考能力が鈍る(笑

415 :403:2001/06/24(日) 19:29 ID:???
>>405さん
治りました!有難うございました。ちなみにf2sではないです。

416 :410:2001/06/24(日) 22:56 ID:KyxruLvY
>>412
ありがとうございます〜! うまくいきました。

以前に、http://www.php4win.de/ にあったインストーラーを使うと
register_globals は、デフォルトが Off になっていたのでした。
本などには、さも当然のように、「項目名と同名の変数に値が入る。」って書いてあるので
まさか、設定が存在するとは、気づきませんでした。

417 :名無しさん@お腹いっぱい。:2001/06/25(月) 00:33 ID:f4nW7jKg
$tmp 内の「%」から始まる行を全て削除したいのですが、
どのような正規表現になるのでしょうか?

418 :名無しさん@お腹いっぱい。:2001/06/25(月) 02:32 ID:???
http://127.0.0.1/1.html
http://127.0.0.1/2.php
http://127.0.0.1/3.php
がありまして、1.htmlには、2.phpへのリンクが張ってあります。
まず、そのリンクをクリック。

2.phpは、
<?
header("Location: http://127.0.0.1/3.php");
?>
これだけです。

そして、3.phpで、よくあるアクセス解析をします。

この時、HTTP_REFERER にはhttp://127.0.0.1/1.html
が入るのですが、http://127.0.0.1/2.php が入るように
する方法はないものでしょうか?
HTTP_REFERER を偽造したいわけではなく、素直に直前のものが入るように
したいだけなのですが。

419 :名無しさん@お腹いっぱい。:2001/06/25(月) 06:05 ID:NUpNurAI
>>399
レスありがとうございます。下のようにやったら出来ました。

// opens bbs file thru 80
$fp = fopen("http://hoge.com/bbs.php3?bbs=1","r");
// opens and locks destination file
$dfp = fopen("./data/1.html","w");
flock($dfp,"2");
// puts on new file line by line
while (!feof($fp)) {
 $buffer = fgets($fp, 4096);
 fputs($dfp,$buffer);
}
// unlocks and closes files
flock($dfp,"3");
fclose($fp);
fclose($dfp);

420 :名無しさん@お腹いっぱい。:2001/06/25(月) 06:36 ID:8zsiOQoQ
>>418
全く試してないからアレだけど…
Locationで飛ばさないで、HTMLの Refreshあたりで飛ばすのはどう?

421 :名無しさん@お腹いっぱい。:2001/06/25(月) 08:45 ID:???
>>420
それは HTTP_REFERER を「無効にする」技として使われてる。
ブラウザにもよるんだろうが、大抵は HTTP_REFERER を
空にするらしい。

422 :Error401:2001/06/25(月) 10:58 ID:lAmDpIkw
>>404
自己レス。
> --with-oci8を加えると、Apacheも起動せず。

これは、Apacheをconfigureするときに、-lpthreadをつけてなかったためでした。
Web+DB PRESSを読んでて思い出しました。あぁ、最近記憶力が・・・。

ところで、PHP4.0.6にしたら、phpinfo()で表示されるはずのPHPのロゴ画像が
表示されなくなったんですけど、みなさんの所はどうですか?

関係あるかどうかわかりませんが、いじったphp.iniの項目を書きます。
output_handler = mb_output_handler;
mbstring.detect_order = AUTO
mbstring.internal_encoding = EUC-JP
mbstring.http_output = EUC
mbstring.http_input = AUTO

configureは以下のオプションをつけて実行。
./configure
--with-pgsql=/usr/local/pgsql
-with-apxs=/usr/local/apache/bin/apxs
--with-openssl=/usr/local/ssl
--enable-mbstring
--enable-mbstr-euc-trans
--with-oracle=/u01/app/oracle/product/8.1.6
--with-oci8=/u01/app/oracle/product/8.1.6
--enable-trans-sid
--enable-sigchild

423 :418:2001/06/25(月) 13:31 ID:???
>>420
Refreshで試してみましたが、421さんの言われるとおり
HTTP_REFERER は空になりました。
無理なんでしょうかね

424 :電動ナナシ:2001/06/25(月) 14:16 ID:???
>>422
output_handler = mb_output_handler;
これを有効にするとロゴがだめになるね。バイナリとテキストを区別せずに
変換してしまっているとかかな?

425 :名無しさん@お腹いっぱい。:2001/06/25(月) 14:44 ID:???
>>423
1.htmlのリンクからきた人だけ別処理するしかないんじゃないか?

426 :Error401:2001/06/25(月) 16:28 ID:???
>>424
> output_handler = mb_output_handler;

うぬ、これが原因だったのか。うーむ。

427 :Error401:2001/06/25(月) 17:23 ID:???
動作確認が出来たので、実機のテスト機(今までやってたのは、テスト機のテスト機)に
PHP4.0.6+mbregexをインストールしてみました。
phpinfo()してみると・・・ロゴが表示されてる。謎だ・・・。

428 :名無しさん@お腹いっぱい。:2001/06/25(月) 22:27 ID:???
>>419
それって、遅くないですか。
めがびみたいに、変数に全部つっこんで、書き出す方がよくないですか。

429 :名無しさん@お腹いっぱい。:2001/06/26(火) 04:05 ID:Rztmdmp6
tok2で、PHPの mail関数使ってメール送れた人って居ます?

もっとも単純化したサンプルでテストしても、
送られてこないんだけど…。
もし成功者がいたら、ソースキボン。

# phpinfoで見ると、sendmailパスは入ってるんだけど…
# あれが嘘?

430 :名無しさん@お腹いっぱい。:2001/06/26(火) 05:41 ID:???
<?php
mail( "***@********", "subjectsubject", "ascii_only\nascii_only\nascii_only\n", "From: hoge@hoge.com\nReply-to: foo@foo.com\nX-Mailer: PHP/".phpversion() );
echo "<html><body>\nOK!<br>\n</body></html>\n";
?>

このコードで送れないって事は、ダメなんだろうなぁ。
まぁ良いけど…。

431 :名無しさん@お腹いっぱい。:2001/06/26(火) 16:38 ID:???
[PHP-users 278]から。

>ぼくとしては、Apache+perlとか、Apache+rubyはアプリケーションサーバーにな
>りうると思います。

>そのとき、上記のサイボウズOfficeの例だと、システムの中で、cbof40ja.exeを
>インストールしたマシンが、「アプリケーションサーバー」になります。
>Webアプリケーションシステムの中でのサーバー、つまり「アプリケーションサー
>バー」になると思います。

そうかなぁ?思いっきりはずしているような気がする・・・。
どっかに「アプリケーションサーバスレ」があったのだが、見つからない。

MLでレスすると荒れるかもしれないのでしない(藁

432 :名無しさん@お腹いっぱい。:2001/06/27(水) 12:13 ID:c2ANRhTs
PHP4でPerlのuse strictみたいに、変数の宣言を強制すること
って出来ませんか?
変数のスペルミスをデバッグするのは辛いです。

433 :Error401:2001/06/27(水) 12:46 ID:2vjnwCDU
>>432
> PHP4でPerlのuse strictみたいに、変数の宣言を強制すること
> って出来ませんか?

出来ません。

> 変数のスペルミスをデバッグするのは辛いです。

php.iniのerror_reportingでE_NOTICEを有効にしておけばある程度は防げるかと。

434 :名無しさん@お腹いっぱい。:2001/06/27(水) 22:01 ID:0dBIrHQE
PHP3の質問です。
<?php
 exec("tar xf abc.tar");
?>
このような処理を行いたいのですが、ファイルが展開されません。
なぜでしょうか?
abc.tar と そのディレクトリは、 nobody権限にしております。
よろしくお願いします。

435 : :2001/06/27(水) 23:48 ID:.AU9Z/rA
PHPイィあげ!

436 :名無しさん@お腹いっぱい。:2001/06/27(水) 23:56 ID:TXkcwEzY
connection_timeout の使い方が分かりません。
マニュアルによると
int connection_timeout(void);
とのことですが、具体的にはどう使うのでしょうか?

宜しくお願いします。

437 :電動ナナシ:2001/06/28(木) 03:07 ID:???
>>436
PHP 4.0.5 から廃止されたみたいだし気にしなくていいんじゃない?

きちんとした説明がほしければこちら。
http://www.php.net/manual/en/features.connection-handling.php

ちなみに
> スクリプトを終了させるためにクライアントとの接続を切断するかどうかを
> 決めることが出来ます

> クライアントの接続の切断を、スクリプトを中断させる原因として用いるか
> どうかを決めることができます。
だと思う。

438 :電動ナナシ:2001/06/28(木) 03:08 ID:???
おっと、日本語のページはこっちね。
http://www.php.net/manual/ja/features.connection-handling.php

439 :名無しさん@お腹いっぱい。:2001/06/28(木) 10:34 ID:ucUrq.A6
そこそこの規模でデータベースと連携したPHPプログラムでソース公開
されたものってどこかにないですか?

440 :名無しさん@お腹いっぱい。:2001/06/28(木) 11:12 ID:???
ごめ。あったよ。

441 : :2001/06/28(木) 11:22 ID:???
>>434
それは、無理です。

442 :NANASISAN:2001/06/28(木) 18:09 ID:???
>>441
うそつけ!

443 :名無しさん@お腹いっぱい。:2001/06/29(金) 02:30 ID:???
>>419
flockの方法が微妙に違っている気がするのだが

444 :名無しさん@お腹いっぱい。:2001/06/29(金) 09:51 ID:Uk1KO0LU
ある処理が20秒以内に完了しなければ抜け出したいのですが、
「処理が始まって何秒経っている」というのは分かりますでしょうか?

445 :NANASISAN:2001/06/29(金) 10:24 ID:???
わかる

446 :名無しさん@お腹いっぱい。:2001/06/29(金) 13:10 ID:???
>>444
$begin = time();

while (time() < ($begin + 20)) {
  ..........
}

447 :名無しさん@お腹いっぱい。:2001/06/29(金) 14:28 ID:q2Iv8qck
>>444
その処理というのがPHPで記述されたループとかなら、>>446のように時間を調べれば済むけど、DBの検索とかで逝ったっきり戻って来ないのなら、調べようがないのでは。

448 :名無しさん@お腹いっぱい。:2001/06/29(金) 18:34 ID:oq4Ig75E
いままでphp3.0.18を使ってたんだけど、
4.0.6にupgradeしたくなりました。

php3のアンインストールってどうやってやるのでしょーか?

449 :名無しさん@お腹いっぱい。:2001/06/29(金) 18:47 ID:???
>>448
「スタート」⇒「設定」⇒「コントロールパネル」⇒「アプリケーションの追加と削除」

450 :448:2001/06/29(金) 18:58 ID:oq4Ig75E
>>449
ゴメン。OSはFreeBSD 4.2なんですわ。

451 :電動ナナシ:2001/06/29(金) 20:12 ID:???
>>448
DSO なら /hoge/libphp3.so を削除し、httpd.conf から
AddType application/x-httpd-php3 .****
AddType application/x-httpd-php3-source .****
な行をすべて削除し、Apache 再起動。

Apache 埋め込みなら apache の再 make を行い、
AddType application/x-httpd-php3 .****
AddType application/x-httpd-php3-source .****
な行をすべてを削除し、Apache 再起動。

452 :448:2001/06/30(土) 00:00 ID:3K0XqkKw
>>451
ありがとう!
AddTypeの他にLoadModuleとAddModuleの行を消したら
apacheをgraceful出来ました。

453 :名無しさん@お腹いっぱい。:2001/06/30(土) 01:08 ID:dvDjOjVg
system() で Script を実行する際に
値を2つ以上渡したいのですが、
どのような感じで記述するのでしょうか?

454 :電動ナナシ:2001/06/30(土) 13:10 ID:???
>>453
system("script hoge hage");
変数を渡すなら system("script $hoge $hage");
値の個数が不定ならループをまわして空白をはさんで連結する。

455 :453:2001/06/30(土) 17:45 ID:???
>>454 電動ナナシさん

HTTP_SERVER_VARS["argv"] に入ってくるのですね。
ありがとうございました。

456 :質問:2001/07/05(木) 08:30 ID:3RSnVQik
Windows版 php4 で phplib 使えますか?
導入するにはどのようにしたらよいのですか?

457 :マニュアル:2001/07/05(木) 16:04 ID:7LxvDI6k
PHPの日本語マニュアルがHTMLじゃなく、
PDFになってるとこ、誰か知らない?

458 :飛ばんな:2001/07/05(木) 16:09 ID:fhMv8ZJI
えっとmingってモジュールが4.0.5から標準装備されたって書いてあったんですが
こんふぃぎゃ〜のときに指定しなくても自動ではいるのでしょうか?

459 :名無しさん@お腹いっぱい。:2001/07/05(木) 16:44 ID:9qQ4s6Dg
国際化されてるかどうかって
phpinfoとかで見れるのでしょうか。

海外のホスティングサーバーで
PHPが国際化されてるかどうかを
申し込み前に確認する方法などありましたら
教えてください。

460 :電動ナナシ:2001/07/05(木) 17:39 ID:???
>>459
Module として組み込まれているなら HTTP Header を見るという手も
あるだろう。CGI 版や 4.0.x では使えないが。

やっぱり管理者に問い合わせるしかないねえ。
普通 phpinfo() の内容をそのまま見せるような真似はしないと思うし。

461 :名無しさん@お腹いっぱい。:2001/07/05(木) 18:17 ID:9qQ4s6Dg
電動ナナシさんありがとうございます・・・
どうやらここは男らしく
管理者さんにメールしてみるのが確実そうですね

海外サーバーのサービス内容には
何度か騙されたことがあったので、
実に不安なのでした

情報仕入れたらまたphp鯖スレにでも書きにきます

462 :名無しさん@お腹いっぱい。:2001/07/05(木) 18:20 ID:???
>>460
$PHP_AUTH_PASS とかも丸見えになっちゃうし。

463 :初級ぷろぐらま:2001/07/05(木) 18:38 ID:vv3sbEEs
php4で複数画像をアップロードさせたいのですがどのようにすれば良いでしょうか。
注意点として、アップロードするファイルは画像のみにしたいのですが。
一応、今考えているのはフォームでpic[$i]を渡したあと
>?php
for($i=0; $pic[$i]; $i++)
if(is_uploaded_file($pic[$i]))
if($pic_type[$i] == "image/gif");
copy($pic[$i], "$file_updata_dir/image$i.gif");
echo ("<img src=\"$file_updata_dir/image$i.gif\">");
?<
のような処理なのですが、これでは扱う画像の種類を増やしたときに処理が煩雑になってしまう気がします。
ほかにうまいやり方があれば教えていただけないでしょうか。

464 :初級ぷろぐらま:2001/07/05(木) 18:39 ID:vv3sbEEs
不等号逆に書いてしまった・・・(--;
すいません。反省。

465 :電動ナナシ:2001/07/05(木) 22:10 ID:???
こんな感じかな。Class を作るほどのことはないと思ったので、とりあえず
関数を使う形で書いたが、別に Class を使ってもよい。

もし mediatype を追加する場合、"type_主タイプ_副タイプ" という関数を
追加すればよい。例えば "image/bmp" に対応するなら、"type_image_bmp()"
という関数を定義すればよい。

きちんとチェックしていないのでバグとかあるかも。

<?php
$file_updata_dir = ".";

function type_image_gif($pict, $i) {
 global $file_updata_dir;
 copy($pict, \"$file_updata_dir/image$i.gif\");
 echo ("<img src=\"$file_updata_dir/image$i.gif\"><br>\r");
}

function type_image_jpeg($pict, $i) {
 global $file_updata_dir;
 copy($pict, \"$file_updata_dir/image$i.jpg\");
 echo ("<img src=\"$file_updata_dir/image$i.jpg\"><br>\r");
}

// For test
$pic_type = array();
$pic_type[0] = "image/gif";
$pic_type[1] = "image/jpeg";
$pic_type[2] = "image/png";
$pic_type[3] = "text/html";

for($i=0; $pic_type[$i]; $i++) {
 $funcname = "type_" . strtr($pic_type[$i], "/", "_");
 if (function_exists($funcname)) {
  $funcname($pic[$i], $i);
 } else {
  echo "Unknown file type: $pic_type[$i]<br>\r";
 }
}
?>

466 :12:2001/07/06(金) 00:37 ID:XtSdIVt6
アクセス解析で使いたいのですが、
PHPで解像度を取得することは、できないのでしょうか。?

467 :名無しさん@お腹いっぱい。:2001/07/06(金) 01:00 ID:???
〜〜
copy($pic[$i], "$file_update_dir/$pic_name[$i]");
$img_type = getiimagesize("$file_updata_dir/$pic_name[$i]");
switch($img_type[2]){
case 0:
die("画像しかダメよーん");
break;
case 1:
rename("$file_updata_dir/$pic_name[$i]", "$file_updata_dir/image[$i].gif");
echo ("<img src=\"$file_updata_dir/image$i.gif\"><br>\r");
break;
case 2:
以下略

image$i.jpgとかしたら上書きされちゃうと思うんだが

468 :名無しさん@お腹いっぱい。:2001/07/06(金) 01:10 ID:???
>>466
PHPでは無理。JavaScriptからもらうしかない

http://bizit.nikkeibp.co.jp/it/fresh/news/2001/04/02/statit.html

469 :名無しさん@お腹いっぱい。:2001/07/06(金) 11:23 ID:vwJLwdjI
PHPをコマンドラインで動かすコンパイルオプションを教えてください。
忘れてしまったさ・・・

470 :電動ナナシ:2001/07/06(金) 12:38 ID:???
CGI 用にコンパイルすればいいんじゃない?

471 :名無しさん@お腹いっぱい。:2001/07/06(金) 13:12 ID:???
その方法を教えてください(w

472 :名無しさん@お腹いっぱい。:2001/07/06(金) 14:00 ID:???
--enable-force-cgi-redirect

ものぐさしないでマニュアル見れ
http://www.php.net:8000/manual/ja/html/security.html#security.cgi
http://www.php.net:8000/manual/ja/html/install.configure.html#install.configure.enable-force-cgi-redirect

473 :初級ぷろぐらま:2001/07/06(金) 16:14 ID:bxX75Ncc
>>465
ありがとうございます。
早速試してみます。

>>467
なるほど。
そういうやり方もあるんですね。
少し考えてみます。
画像の名前については、今回は$iで簡略化しましたが実際には通し番号
か取得日時をファイル名にして管理しようと考えています。
ご指摘ありがとうございました。

474 :名無しさん@お腹いっぱい。:2001/07/06(金) 16:47 ID:XtSdIVt6
>>468
JavaScript切ってる人が多いみたいなんで
何かあるんじゃないかと思ったんですが、やっぱりダメですか。
ありがとうございました。

475 :名無しさん@お腹いっぱい。:2001/07/06(金) 16:52 ID:???
サーバに解像度を送ればOK
あくまでもPHPは、サーバ側の処理でし

476 :474:2001/07/06(金) 17:55 ID:XtSdIVt6
>>475
>サーバに解像度を送ればOK
もう少し詳しく教えていただけませんでしょうか。?
お願いします。

477 :飛ばんな:2001/07/06(金) 20:57 ID:T/4m6ri6
うぃさきほどはどうも
やっとまともにすべてうまくいきました。
うぃ
MING・・・やってやるでぇみてろよぉがんばるぞぉ

478 :名無しさん@お腹いっぱい。:2001/07/06(金) 22:09 ID:???
他人の解像度見て何が楽しい?

479 :飛ばんな:2001/07/09(月) 15:44 ID:Gvim121U
さっそくMINGでつまってしまった。MINGはJPEGとDBLだかの形式しか画像を読みこむ
ことができないらしいのですがPNGを使いたい場合DBLに変換してから使えとかいてあるみたいなんですが
そもそもDBLってなんですか?変換ライブラリもみつかりません。
もっかT(;_;)Tオテアゲェー

480 :飛ばんな:2001/07/09(月) 16:34 ID:Gvim121U
>479
png2dblというTOOLがMINGの中にあるのを発見
適当にコンパイル
・・・・で?・・・・(・・;)

481 :名無しさん@お腹いっぱい。:2001/07/09(月) 17:07 ID:V6CzbqY2
phpはImodeやEzweb等の携帯端末でみれるんですか?
拡張子phpはリンクにならないみたいですけど。

482 :名無しさん@お腹いっぱい。:2001/07/09(月) 17:22 ID:???
ハァ?

483 :>>476=474:2001/07/09(月) 20:26 ID:???
解像度の自己申告は、どうですか?
または、諦めたほうがいいと思いますよ。

484 :ひで:2001/07/10(火) 01:40 ID:XjbYyZYE
>>480
結局自己解決しました。
png2dblはmingのオリジナルバイナリについてくるTOOLです。
utilディレクトリーにあるのでmakeします。
できたファイルを適当にコピーします。
そして
png2dbl 読み込みパス.png 書き出しパス.dbl
とします。これでdblファイルが作成されます。
あとはmingでdblファイルを読み込んでつかいましょう。
あ〜疲れた。

485 :名無しさん@お腹いっぱい。:2001/07/10(火) 19:22 ID:7GXX5a22
ベンチマークはどのようにすれば

486 :名無しさん@お腹いっぱい。:2001/07/10(火) 22:50 ID:???
>>485
(;´Д`)ハァ?

487 :初期不良:2001/07/11(水) 01:37 ID:gNdf5gQg
>>344
以前こんな事やってたけど、
もしかしてさ、eval で一発?eval って初めて使ったんだけど。
だれか教えてくれてもいいじゃん(T_T)

$str に含まれる文字列 '$hoge' をその値に置換したい場合は
eval("\$str=\"$str\"");

php コードを含む HTML ファイルの body タグ内だけを持ってきたい時は
ファイル全体の文字列を $file とすると
$file = spliti("</?body[^>]*>", $file);
eval("?>$file[1]<?");

とかできるのね。
define とかも役に立つかな。

eval を使えば HTML として編集できる php コードを
つぎはぎするのが楽になりそう。

488 :初期不良:2001/07/11(水) 01:54 ID:???
ぐぁ
eval("\$str=\"$str\"");
は $str 内の " に注意しないとダメか。
じゃあヒアドキュメント。
eval("\$str= <<<HERE\n$str\nHERE;\n");

php のヒアドキュメントって最後に \n 必要なのね。

489 :初期不良:2001/07/11(水) 02:02 ID:???
>php のヒアドキュメントって最後に \n 必要なのね。

って perl モナー

490 :名無しさん@お腹いっぱい。:2001/07/11(水) 05:25 ID:???
>>489
<<<HERE
hoge
hoge
hoge

HERE;

491 :初期不良:2001/07/11(水) 13:51 ID:gNdf5gQg
>>490
ん?なんすか?書いてる意味が分からない。

492 :rissen-truchi:2001/07/11(水) 14:15 ID:hhs/YcqI
非常に情けない質問なんだろうけど、どなたか教えて下さい。

PHPからPostgresqlに接続してdbにWebからデータ($data[1〜3])を書き込み
たいんだけど、こんなんじゃ駄目なんですよね?
pg_exec("insert into テーブル名 values($data[1],$data[2],$data[3])");

3冊の本を見比べながら悩んでるんですけど、ズバリこれっていうのも
ないし(mysql接続だとそれっぽいものがあったんですけど)、ネットで
検索しても見つからないし。
ちなみに作るのはただのアンケートなのでsql使う必要もないんですけど、
PHPのみでテキストファイルにcsvで保存する方法とかもあるんでしょうか?

ああ…初心者丸出し…。

493 :osiete:2001/07/11(水) 15:34 ID:???
おしえてくださぁぃ!
パールオンリーでCGIいじってるんですけど
PHPってやっぱいいの?
あと書き方説明してるサイトとかない??
CGI→PHP変換ツールなんてないよね?あたりまえか・・
PHP・・・なにげにいいかも・・・・

494 :osiete:2001/07/11(水) 15:36 ID:???
あ >>1にかいてた・
すいません・逝ってきます

495 :osiete:2001/07/11(水) 15:49 ID:???
全然わかんねーょ オレにはむじぃーYO!パールで我慢するYO!
やっぱ本かわないといけないのかYO!

496 :osiete:2001/07/11(水) 15:55 ID:???
PealからPHPにした人のスクリプトくらべてみて勉強するYO!
ムダレススマソ。

497 :名無しさん@お腹いっぱい。:2001/07/11(水) 15:55 ID:ovp7jwtY
>>492

http://www.tempest.jp/db/phonebook.html

498 :名無しさん@お腹いっぱい。:2001/07/11(水) 16:11 ID:IWAeimzg
>>493
Perl2Php

http://www.cs.wcupa.edu/~rkline/csc417/Perl2Php/

499 :osiete:2001/07/11(水) 16:24 ID:???
おっマジで?ナイス!!ナイス名無し!!
いってみます ありがとね

500 :名無しさん@お腹いっぱい。:2001/07/11(水) 17:19 ID:???
>>492
テーブルの定義はどうなっている?
$data[n] は常に 1 から 3 までしかないのか?
テーブルに格納して、何をどう集計したいのか?

その辺がわからないことには回答のしようがない。

501 :名無しさん@お腹いっぱい。:2001/07/11(水) 17:50 ID:???
PHPの正規表現を教えてください。
"ABC"または"何も入ってない。"をどう表現するんでしょうか?
if (ereg("ABC|", $なんとか)){
}
print "こんな風にいろいろ試したけど駄目だった";

502 :名無しさん@お腹いっぱい。:2001/07/11(水) 18:00 ID:???
if ($honyarara == 'ABC' || !$honyarara)

じゃいかんの?

503 :ひで:2001/07/11(水) 21:34 ID:uaq5cfN6
>>493
メソッドの受け取りを自動でやってくれます。
いきなり変数の状態でつかえます。
くらいかなぁちがいと言えば・・・parlのほうが自由度は高いけど
PHPのほうがつかいやすいかなぁ

504 :501:2001/07/12(木) 00:46 ID:???
>502
Resサンクス。
「それだと「ABC」もしくは「$honyarara」ではないとき」って
意味じゃないの?
初心者スマソ。 ||とかeregとかPerlの正規表現と微妙に
違うからちょっと困ってるのよね。
まあ、また明日試してみます。

505 :ねたろ:2001/07/12(木) 01:16 ID:cva8br1E
Perlなれてる人はpreg使うのがいいと思う。

506 :501:2001/07/12(木) 11:16 ID:???
>ねたろ
ありがとう。pregなんて俺のもってる
「プロフェッショナルPHPプログラミング」に載ってない。
ドキュンな本を買ってしまった。

507 :名無しさん@お腹いっぱい。:2001/07/12(木) 15:07 ID:???
>>506
その本が出た当時には preg* 関数はなかったからある意味仕方が無い。
出すとしたら "Beginning PHP4" だったと思う。> Impress

508 :501:2001/07/12(木) 16:27 ID:???
も一つ。
PHPのマッチングでeregもしくはpregどちらにおいても
片仮名の「ー」が含まれる単語をマッチさせようとすると
Warning: Compilation failed: missing terminating ] for character class at offset 21 in
のようなエラーが出てしまいます。
解決方法をご存じでしたら教えてください。
Server version 3.23.38-max-debugです。

509 :rissen-truchi:2001/07/12(木) 18:34 ID:3vreGZWs
>>497
リンク先のでズバリでした。
少しいじって動作確認しました。
ありがとうございました。

>>500
アンケートの項目が51あるんで、$dataも[50]まであります。
そこまで書くのも気が引けましたので。
$data[1]から$data[50]まで並んでいて何とも見た目が
カッコ悪い事になっていますが、とりあえず今回は動けば
良いのでこのままです。

web上からの書き込みが出来たんでpgaccessでもインストール
しようと思ったら、/usr/binに既に入っていたみたいで
2重インストールの結果動作しなくなってしまいました…。
仕方ないのでデータ編集用のPHPスプリクトも書かないと…。

510 :rissen-truchi:2001/07/12(木) 18:40 ID:???
嗚呼、タイプミスでした。
でもgoogleでスプリクトで検索したら2800件出たよ。

511 :ロックマン:2001/07/13(金) 14:11 ID:6a1YxCyk
追記オープン時、1行80字程度なら、ファイルのロックって
しなくてもOKなんでしょうか?
ログ管理用に "a" で開いてすぐに書き込んで閉じる、ような状況です

PHPだと
$a = "xxxx 1111 2222\n";
$fp = open( "log.txt", "a" );
fwrite( $fp, $a );
close( $fp );

こんなの
HTTPのログみたいな使い方なんで、ちょっとくらい壊れても平気かと(汗

512 :ロックマン:2001/07/13(金) 14:12 ID:???
>>508
Shift-JIS のもんだいじゃないでしょうか?
\ー とかくとか、 EUCで書くとか

513 :ロックマン:2001/07/13(金) 14:13 ID:???
>>511
fopen と fclose だったろうか(汗

514 :教えて君:2001/07/13(金) 19:48 ID:xp1kDj12
PHP4.0.6 で GD の文字列描画使いたいんですけど、
configure のパラメータ教えてください。
あと GD の Makefile の内容も。

フォント系疎いので、FreeType1/2 とか libttf とか
T1lib とか何のこっちゃよくわかんないんです。

そのあたり書いてあるサイトでもいいです。

515 :名無しさん:2001/07/14(土) 16:03 ID:???
$hoge=aa;

define('hoge', aa);
では、どちらがお勧めでしょうか?

516 :E_ERROR:2001/07/14(土) 19:11 ID:HJGOqKR.
>>508
マルチバイト文字へのPHPの対応がまだって話とちゃいます?
たしか、まだのはず。
4.0.6でもまだ全てではない筈([PHP-users 694] 参照)。

>>515
ベンチとかして見れば違いは出てきそうですけど、内部的にはどうなんでしょうね?
ソースは読めないので分かりませんが。
でも、その程度なら、可読性・分かりやすさを優先した方が良いかも。

517 :教えて君:2001/07/14(土) 22:52 ID:LOUm3X7Y
>>515
定数という意味だけでなく、グローバルに使いたいなら断然 define()
いちいち

function
func()
{
global $hoge
}

とやらなくていいので。
そうでなければどっちゃでもいいでしょう。

ちなみに僕は必ず先頭で

define(MYSELF, $PHP_SELF);

としたりしてます。

518 :515:2001/07/15(日) 02:05 ID:???
>>516,>>517
ありがとうございました。
たしかに いちいち global $hoge は面倒なんですよね。

519 :501:2001/07/17(火) 09:07 ID:???
>>516
([PHP-users 694] 参照)。
↑って何ですか?

520 :516じゃないけど:2001/07/17(火) 09:24 ID:???
PHP-users メーリングリストの 694番目の投稿の事。
http://ns1.php.gr.jp/pipermail/php-users/2001-July/000701.html

PHP関連のメーリングリスト
http://ns1.php.gr.jp/ml.html

521 :名無しさん@お腹いっぱい。:2001/07/18(水) 00:33 ID:0etvM2jk
mySQLとPHPでトランザクションってどーやんの?

522 :名無しさん@お腹いっぱい。:2001/07/18(水) 23:48 ID:/L71tA9s
ぉーぃ

523 :名無しさん@お腹いっぱい。:2001/07/19(木) 16:33 ID:???
MySQLにトランザクションの機能はなかったと思うけど…
ロックもけっこう気を使う必要があったような。

524 :名無しさん@お腹いっぱい。:2001/07/19(木) 16:48 ID:???
トランザクション有るよ。

525 :523:2001/07/19(木) 17:08 ID:???
ほんとだ。ゴメソ。
ttp://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Reference.html#COMMIT

526 :電動ナナシ:2001/07/19(木) 18:08 ID:???
>>521
PHP で特にすることはない。SQL 文を発行する前に "begin" して
終わったら "commit" または "rollback" を発行するだけ。
http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Reference.html#COMMIT

なお、Transaction サポートの恩恵を得るためには、テーブルを作成する
ときに TYPE=BDB か TYPE=InnoDB オプションを指定することが必要。
普通にオプションなしで作ってしまった場合には、テーブルの作り直しが
必要なので注意。
http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Reference.html#CREATE_TABLE

527 :521:2001/07/20(金) 00:26 ID:???
みなさんサンキューです
精進します・・・( ´∀`)

528 :わ、:2001/07/20(金) 03:37 ID:O.8zSDuM
age

529 :名無しさん@お腹いっぱい。:2001/07/20(金) 19:57 ID:wVCDVsI.
http://www2.to/05F

http://www2.to/03F

http://www2.to/01F

http://www2.to/02F

http://www2.to/04F

530 :ねたろ:2001/07/21(土) 01:46 ID:pakIXXRA
>>517
__FILE__ではだめなの?

531 :名無しさん@お腹いっぱい。:2001/07/22(日) 02:51 ID:omUKsDB6
php4.0.6とpostgres7.1.2をインストールしたところ、ウェブにアクセスすると、
下のエラーがでてしまいます。
Syntax error on line 49 of /usr/local/etc/httpd/conf/httpd.conf:
Cannot load /usr/home/x31/usr/local/etc/httpd/modules/libphp4.so
into server: Shared object "libpq.so.2" not found

なお、httpd.confのphp,postgres関係は、以下のとおりです。
LoadModule php4_module /usr/home/x31/usr/local/etc/httpd/modules/libphp4.so

LoadModule php4_module modules/mod_php4-4.0.6-module-pgsql.so
LoadModule php4_module modules/mod_php4-4.0.6-module-pgsql-imap.so
LoadModule php4_module modules/mod_php4-4.0.6-module-pgsql-ftp-imap-freetype-gd.so
LoadModule php4_module modules/mod_php4-4.0.6-module-pgsql-mcrypt-freetype-gd.so
LoadModule php4_module modules/mod_php4-4.0.6-module-pgsql-mcrypt-ftp-imap-freetype-gd-xml.so
LoadModule php4_module modules/mod_php4-4.0.6-module-pgsql-mcrypt-ftp-imap.so

ClearModuleList
AddModule mod_php4.c
どしたらよいのでしょうか?
postgresは、/usr/local/pgsqlに 入っているのですが。。。

532 :電動ナナシ:2001/07/22(日) 10:03 ID:???
httpd.conf に以下の行を定義
LoadFile /usr/local/pgsql/lib/libpq.so

/etc/ld.so.conf に以下の行を定義し、ldconfig を実行
/usr/local/pgsql/lib

533 :531:2001/07/22(日) 21:32 ID:???
.chsrcを書き換えてなかったので、postgresがちゃんと認識されてなかったようです。
すんまそん。
ところで、
AddModule mod_php4.c
を入れなくても、php4もpostgresも正常に動いているのですが、なぜなのでしょう?

534 :名無しさん@お腹いっぱい。:2001/07/23(月) 03:42 ID:xOk2bt2U
php初心者なのですが、
phpで組むときの、ディレクトリの構造って、どんなのにしたら便利(というか管理が楽)
なんでしょうか?
images include template config etc...。
htmlのときと大してかわらないですか?

535 :教えて君:2001/07/23(月) 05:40 ID:VSd5TUcM
>>534
とりあえずあとでまとめて tar しやすいように近所に掘るとしても

./images ../include ../template ../config

やろ( . の数に注意)
images 以外は見えないとこに置くべし

536 :名無しさん@お腹いっぱい。:2001/07/23(月) 05:55 ID:???
さもないとサクセスの二の舞に

537 :名無しさん@お腹いっぱい。:2001/07/23(月) 06:00 ID:xOk2bt2U
images include template config はほんの例だとして、
みなさんは、どんなディレクトリで分けてますか?

538 :名無しさん@お腹いっぱい。:2001/07/23(月) 06:23 ID:???
imgs incl tmpl cfg

539 :教えて君:2001/07/23(月) 08:53 ID:VSd5TUcM
>>537
最近は
./image ../inc ../ihtml
かな

540 :電動ナナシ:2001/07/23(月) 09:01 ID:???
「開始から終了までの一連のページの流れ」ごとにディレクトリを作成。
共通に利用するページ(エラー告知、トップページ等)は common とか
share とか作ってそこに格納。Image や Template も上記基準に従って
分類。

ASP でよくやるディレクトリの分け方にかなり近い(ASP だと上記一連の
ページの流れをアプリケーションとして定義し、アプリケーションごとに
ディレクトリを掘るという分け方をよくやる)。

一つのディレクトリの中に多数のファイルがあると、どのファイルが何に
関係しているかわかりにくくなる(その結果、修正・削除すると思わぬ
ところで意図しない障害に出くわしたりする)のでそうしている。

541 :ナナシサソ:2001/07/23(月) 09:01 ID:???
>>536
サクセスってディレクトリの中身が見えてて漏れたの?
何がマズってたのか、詳細きぼーん。

542 :名無しさん@お腹いっぱい。:2001/07/23(月) 15:32 ID:3cQ3is6o
Apache1.3.20
PHP-3.0.18-i18n-ja2
sybase Adaptive Server Enterprise 11.0.3
なのですが
PHPでsybaseにアクセスする時に、Apacheのエラーログに
[notice] child pid 993 exit signal Segmentation fault (11)
と吐かれるんですが、どうすれば吐かれなくなりますか?
Apacheが落ちたり等ではなく、ずっとPHPファイルを読み込みっぱなしで
表示されません。

↓のような簡単なPHPとsybaseの連携スクリプトなら大丈夫なのですが。。
+------------------------------------------------+
<?php
$conn = sybase_connect("","hoge","hogehoge");
$sel = sybase_select_db(hogedb,$conn);
$sql = "select * from hogetable";
$res = sybase_query($sql,$conn);
$obj = sybase_result($res,0,hogecolumn);
echo "$obj";
?>
+------------------------------------------------+
require等を使ってるような複雑なPHPファイルが表示されないのです。
すでに稼動しているサイトからソースをコピーして来たので
スクリプトの記述が間違っているというわけではありません。


http://www.pat.hi-ho.ne.jp/dimension/php/trouble.shtml#segment
症状等が違いますが↑を参考にしてみましたが改善されません。

よろしくお願いします…。

543 :電動ナナシ:2001/07/23(月) 16:19 ID:???
>>542
この辺見たら?
http://www.nendai.nagoya-u.ac.jp/~kato/FreeBSD/sig11.html
http://www.numtech.co.jp/documents/LifeWithSolaris/Solaris0113.htm

544 :542:2001/07/23(月) 16:25 ID:3cQ3is6o
>>543
ありがとうございます。見てみます。

545 :名無しさん@お腹いっぱい。:2001/07/23(月) 22:01 ID:???
>>541
/cgi-binにindexすら置いておらず丸見え
はっきり言ってアホ

546 :名無しさん@お腹いっぱい。:2001/07/24(火) 10:36 ID:???
PHPのOracle関数(ora_parse()等)で通るSQL文の最大長が知りたいのですが。
8kぐらい?

547 :名無しさん@お腹いっぱい。:2001/07/24(火) 14:18 ID:vvOEpIvw
function の途中で "Fatal error" が起きた場合に
別処理をしたいのですが、"Fatal error" は戻り値などで
分かるものなのでしょうか?
それとも、必ず "Fatal error" と表示されるのでしょうか?

548 :電動ナナシ:2001/07/24(火) 16:19 ID:???
>>547
Fatal Error が出た時点で処理を中断するから、そもそも別処理は無理。
@ や error_reporting() を使えばメッセージ表示の抑制はできるけど。

549 :名無しさん@お腹いっぱい。:2001/07/25(水) 02:51 ID:???
---ML から引用---
> PHP4.0.6では、PHPファイルと、内部コードは、合わせないとなりません
> また、内部コードをSJISにすることはできません
> (\が2バイト目にこない文字だけつかうなら大丈夫だけど)

'PHPファイル' と '内部コード' とは何を指すのでしょうか?

また、SJIS で記述した場合はどうなるのでしょうか?

550 :教えて君:2001/07/25(水) 05:06 ID:/ngu5PCE
>>549
WEB+DB Press Vol.3 読みなはれ

551 :名無しさん@お腹いっぱい。:2001/07/25(水) 11:48 ID:???
>>548
例外を捕まえられるようになれば嬉しいんだけどね〜
VBやRubyでさえできるのに…

552 :名無しさん@お腹いっぱい。:2001/07/26(木) 17:15 ID:???
PHPの\B=通常の\bってことありません?
\bの意味で\B使ったら上手くいったんですけど・・・。

553 :Thanks:2001/07/27(金) 12:32 ID:Mtq49UWA
こんにちは。ワタシハCGI初心者デス。
今、掲示板のような情報登録&検索システムを作ろうと思っています。
http://world.gokinjo.net/
↑こんなかんじのです。

情報を登録してもらう件数が、1000件程度なら、Perlのみで作ればいいのかなと思ってます。(=DBは使わない)
しかし、1万件以上の登録数になったら、PHP+DBでないと検索が遅くなってしまうのかなと心配しています。

今、オライリーのプログラミングPerlを17ページまで読んだだけですが、できればPerlで作りたいと思っています。
もし、PHP+DBを使う場合は、Perlに比べてどのような優位性がありますか?
よく知らないのですが、Java+DBとPHP+DBではどんな違いがありますか?
(=プログラム作成や改変の容易性、動作の速さ、コスト等)

(他の板に書いたら、板違いとのことで、ここに書かせていただきました。。。)

554 :名無しさん@お腹いっぱい。:2001/07/27(金) 17:00 ID:uC6ed62c
>>553
PerlとPHP、Javaを比べると、PHP,Javaの方がサーバの負荷が低いです。
でもJavaはブラウザを選ぶので、不特定多数のユーザが利用するなら
PHPがお勧めです。

555 :名無しさん@お腹いっぱい。:2001/07/27(金) 18:07 ID:TfpoiEN6
>>553
今後の拡張を考えるなら、何かしらのDBを置いておいた方が
吉かも。
言語に関しては、規模によるけど、それほど大きな規模でなければ
好みの問題になるのかな。
Perl・PHP・Javaなら、どれでもフリーで環境構築できるしね。

Perlに慣れているなら、Perl+DBで良いかと。

>>554
>でもJavaはブラウザを選ぶので
なぜ?サーバ側で動くから関係ないよね。
アプレットと勘違いしてない?

556 :名無しさん@お腹いっぱい。:2001/07/28(土) 10:32 ID:VMQSoJQc
CGI版のPHPにコマンドラインから引数を渡すことってできないんすか?

557 :名無しさん@お腹いっぱい。:2001/07/28(土) 10:45 ID:sgB6IwE.
できるでしょ

558 :電動ナナシ:2001/07/28(土) 19:39 ID:???
>>556
>>357 参照

559 :名無しさん@お腹いっぱい。:2001/07/29(日) 12:04 ID:???
PHP書く上でセキュリティー面で気をつける事って何がありますか?
はじめてCGIやるのでよく分からないんですが、
perlだとJPNICをハックした時に使われたとかいうやつが
があるじゃないですか?
それの対処法は「ユーザーからの不正な入力排除する処理ををする。」
と解釈したんですがそれはPHPでも起こるんでしょうか?
UNIXとかLINUXとかが分からないので本質的なものが理解できなくて
わからん。

560 :教えて君:2001/07/29(日) 16:48 ID:emkJF2Ac
>>559
PHP 勉強する前に
UNIXとかLINUXとか勉強しなはれ

そういうこと聞いてる時点でいくら気をつけても無駄だと思うよ

561 :名無しさん@お腹いっぱい。:2001/07/29(日) 17:35 ID:???
ハンドルの割にいいこと言うな

562 :名無しさん@お腹いっぱい。:2001/07/29(日) 19:47 ID:a3gXH7sI
30秒制限て無いですか?外す方法は?

563 :名無しさん@お腹いっぱい。:2001/07/29(日) 23:10 ID:qtl7W5xk
>>559
セキュリティとかで気をつけるのは、
掲示板とかでGETで書き込めないようにするとか?
includeするファイル名を外部から直接渡さないとか?
http://www.securereality.com.au/studyinscarlet.txt

564 :名無しさん@お腹いっぱい。:2001/07/29(日) 23:27 ID:BpCjvsHM
>>559
touch index.html

565 :Thanks:2001/07/30(月) 15:21 ID:n55Ttkok
553です。DBには、MySQLとかPSQLが一般的なようですが、InterbaseっていうDBもフリーで使えるものとしては良い方ですか?
(Interbaseが使えるレンタルサーバーがあったもので。。。)
http://www.inprise.com/devsupport/interbase/opensource/

566 :名無しさん@お腹いっぱい。:2001/07/30(月) 18:29 ID:???
>>559
http://www.japu.org/cgi/security/

567 :ドメイン名がみつかりません:2001/07/31(火) 04:06 ID:fBm.6Z4Y
>>559
PHP=CGIということを書くと敏感に反応されるぞ。

568 :名無しさん@お腹いっぱい。:2001/08/01(水) 14:57 ID:???
例えばフォームによる会員登録ページを作成して、フォーム内
に氏名 ($name)とパスワード($password)という項目を作成した
場合、データベースに登録する前にこれら2つの項目がちゃんと
入力されているのか?、また入力されていた場合に指定の正規
表現であるのかどうかをチェックしたいと思います。

この場合、
if ($name != "") {
print ("名前がありません。");
{
elseif (名前の正規表現をチェック) {
print ("名前の入力が正しくありません。");
}
elseif ($password != "") {
print ("パスワードがありません。");
}
elseif (パスワードの正規表現をチェック) {
print ("パスワードの入力が正しくありません。");
}
みたいな処理でいいのでしょうか?。

この例のようにフォームの欄が2つならこれくらいの項目を書く
のは楽ですが、もし項目があと10、20と増えてチェックをしてい
かなければならないようば場合も同じようにスクリプトを書いて
いかなければならないものなのでしょうか?

569 :名無しさん@お腹いっぱい。:2001/08/01(水) 15:13 ID:XIFRUU8I
>568
perl互換の正規表現関数でパターンと文字列に配列を使ったのをみたことあるよ。

570 :教えて君:2001/08/01(水) 15:44 ID:T8OlEVZk
>>568
ちゅーか入力項目が10も20もある時点で客は去っていくと思われ

571 :電動ナナシ:2001/08/01(水) 20:46 ID:8IuXT3SQ
>>568
モジュールに分割せよ。アプリケーションを作っていく上で、変更が入り
やすい部分(例えば認証方法とか)とそうでない部分(処理の大まかな
流れとか)とに分けるのは基本中の基本。これ以上は「アプリケーションの
設計」とかをテーマにした書籍にあたると吉。

モジュールって何かって話なら、
・チェック用関数を定義した、include 可能なファイル
・チェック関連のメソッドを保持している、include 可能な Class 定義ファイル
くらいのことだと思ってほしい。

572 :名無しさん@お腹いっぱい。:2001/08/01(水) 23:54 ID:???
あるファイルを逆にして、それを書き戻す場合に
・ファイル全体を配列に読んで、それを逆にしたものを戻す
・全体を読みながら行頭アドレスを配列に保存
 配列の後ろから1行読んでtmpfile()で作った所に書く
 tmpfile()で作った所の先頭からファイルに書き戻す
このくらいしか思いつかないんですが、いい方法はないですか?

573 :名無しさん@お腹いっぱい。:2001/08/02(木) 00:27 ID:DguDE1y6
>>570
禿同!

574 :教えて君:2001/08/02(木) 00:52 ID:B.cUN3ZE
>>572
何? 掲示板とかチャットでも作ってんの? それによるんちゃうん?

575 :572:2001/08/02(木) 02:10 ID:???
>>574
掲示板を作ってます
それで、上の場合はメモリ量が
下の場合は作業時間がやばいなと思ったんです

576 :電動ナナシ:2001/08/02(木) 02:19 ID:VM7b3lbg
>>572
ファイルに保存するという前提なのか?

それなら、
・保存は正順、読み出しは逆順 -> 配列方式
・保存は逆順、読み出しは正順 -> tmpfile 方式
という関係になると思う。>>572 以外にもやり方はあるが、基本的には
>>572 のバリエーションになると思われる。

で、
・保存の回数が非常に多いとか、保存処理に負荷がかかる
 -> 保存処理はなるべくシンプルに
 -> 正順で保存し、読み出し時に工夫
 -> 正順パターン
 -> (゚д゚)ウマー
・保存回数が読み出し回数に比べてかなり少ないとか、保存処理の負荷より
 読み出し処理の方が負荷がかかる
 -> あらかじめ逆順で保存し、読み出し時の処理の負荷を軽減する
 -> 逆順パターン
 -> (゚д゚)ウマー
という関係になると思うが?

577 :教えて君:2001/08/02(木) 02:20 ID:???
>>575
せっかくの PHP なんやから RDBMS と絡めてみたら?
掲示板程度だったら mySQL あたりでええんちゃう?
一発やで

578 :困ってます。:2001/08/02(木) 19:41 ID:o1n3hnSU
phpでfor文等を使うと思うのですが
分からないので教えてください。

以下のテーブルがあるとします。

tableAAA
colX colY
---- ----
1 A
2 B
3 B
4 C
5 B


tableBBB
colX colQ
---- ----
1 BI
2 AG
2 CD
3 SR
4 YE
5 WU
5 AO

tableAAAでcolYが「B」の行を削除する事によってcolXが「2,3,5」が削除されます。
そして、tableBBBでcolXが「2,3,5」の行を削除したいのですが
PHPではどのように書けばよいのでしょうか?

PHP3.0.6で、データベースはsybaseを使っています。
よろしくお願いします。

579 :教えて君:2001/08/02(木) 20:19 ID:???
>>578
ずれр
ひょっとしてPHPの質問ちゃうんちゃうん...

サブクエリー使えば SQL だけで解決するんやないの?

580 :困ってます。:2001/08/02(木) 20:33 ID:o1n3hnSU
PHPで、ボタン一発で「B」の行削除 & tableBBBの「2,3,5の行」の行削除
ってやりたいんです。。

581 :電動ナナシ:2001/08/03(金) 00:44 ID:Oa5aY4k6
>>578
SQL 的解法:
Table AAA の ColX を Table BBB の ColX の外部キーにし、削除が
CASCADE するように定義する。例えば、PostgreSQL なら
CREATE TABLE bbb (
 colx int2,
 varchar coly,
 CONSTRAINT fk_aaa FOREIGN KEY (colx) REFERENCES aaa(colx) ON DELETE CASCADE
);
とする。

別解:
pg_Exec("BEGIN");
pg_Exec("DELETE FROM bbb WHERE colx IN (SELECT colx FROM aaa WHERE coly = '" . ${Key} . "')");
pg_Exec("DELETE FROM aaa WHERE coly = " . ${key} . ";");
pg_Exec("COMMIT");

582 :電動ナナシ:2001/08/03(金) 00:48 ID:???
ああ、未修正のまま書いてしまった
CREATE TABLE bbb (
 colx int2,
 coly text,
 CONSTRAINT fk_aaa FOREIGN KEY (colx) REFERENCES aaa(colx) ON DELETE CASCADE
);

583 :困ってます。:2001/08/03(金) 11:14 ID:UwPOu2zo
電動ナナシさん、レスありがとうございます。
うちはSYBASEなんですが、同じような事が出来ると思うので
これからがんばってみます。

584 :困ってます。:2001/08/03(金) 11:15 ID:???
教えて君さんもありがとうございます。

585 :教えて君:2001/08/03(金) 11:35 ID:???
>>584
俺、別に何もしてないで
だと情報量 0 なので
>>581 >電動さん
別解の方やけど、なんで一行ずつ pg_exec() するのん? もったいなくない?

586 :コメント無しさん:2001/08/03(金) 13:45 ID:DhQExyss
>>585
581じゃないけど、結局エラー処理がはさまってrollbackしたりするから
まとめてpg_execしないほうがいいんじゃない?

587 :電動ナナシ:2001/08/03(金) 13:56 ID:???
>>585
単純に SQL 文を書こうと思ったんだけど、何となく PHP スレだから
PHP のコードの方がいいかなと思って pg_Exec をつけただけ。
特に意味は無いよ。

588 :電動ナナシ:2001/08/03(金) 13:59 ID:???
>>586
そうそう。少なくとも COMMIT だけは除外しないと。
本気で書くのだったら commit の前に pg_Exec の戻り値を拾って
エラーだったら rollback という手順が必要だよね。

589 :困ってます。:2001/08/03(金) 15:04 ID:UwPOu2zo
578で質問させてもらって、581の別解の考え方でやろうと思うのですが
今度はPHPの書き方でつまずいています。。

SQL文が1文だけの時は、以下のように書いてきましたが

<?
:
:
$CONN=sybase_connect("SERVER","USER","PASS");
$SQL="SELECT column FROM table WHERE column = 'hoge'";
$RES=sybase_query($SQL,$CONN);
:
:
?>

BEGIN
DELETE FROM bbb WHERE colx IN (SELECT colx FROM aaa WHERE coly = '" . ${Key} . "
DELETE FROM aaa WHERE coly = " . ${key} . "
COMMIT

このようなトランザクションとか複数のSQL文を実行させるためには
PHPはどのように記述すれば良いのでしょうか?
よろしくお願いします。

590 :568:2001/08/03(金) 18:40 ID:aNOrs4Vo
>>569
>>570
>>571
皆さん、ありがとうございます。

>電動ナナシ様
当方、プログラミングはHTML以外でPHPが始めてなんです。
もし宜しければお書きいただいております「アプリケーショ
ンの設計」関連で初心者を対象とした良い書籍などを教えて
いただけませんでしょうか。

591 :教えて君:2001/08/03(金) 22:26 ID:???
>>589
どうなるかわからんけど試しにちょっと書いてみようかとか思わん?

>$SQL="SELECT column FROM table WHERE column = 'hoge'";

の中をそのまま置き換えればええだけ。

あと、>>588
COMMIT も含んでええんちゃうん?
エラーが発生した時点でそのトランザクション成立してないわけやし。
あ、でも RDBMS によってはマズいやつもあんのかな?

592 :電動ナナシ:2001/08/04(土) 00:22 ID:yWM3EPUw
>>590
自分はオブジェクト指向から入った人間なので、テーマがオブジェクト
指向分析・設計になってしまうけど、
「オブジェクト指向とコンポーネントによるソフトウェア工学」
 http://www.ogis-ri.co.jp/otc/hiroba/OoBook/BookRanking/UMLBooks/UsingUML.html
とか
「憂鬱なプログラマのためのオブジェクト指向開発講座」
 http://www.seshop.com/bm_detail.asp?sku=56190
とかがよかったと思う。ただ後者については C++ の基礎知識がないと
読むのが面倒かもしれない。

英文を読めるなら
"The CRC Card Book"
 http://cseng.aw.com/book/0,3828,0201895358,00.html
もいいと思う。翻訳が出るという噂もあるが、いつ出るかは不明。

593 :電動ナナシ:2001/08/04(土) 00:27 ID:yWM3EPUw
>>591
begin して処理が中断されたときに勝手に commit するような実装は
まずないと思うけど、なるべく後始末を明示的にきちんとやる習慣を
つけた方がよいと思ってああ書いた。それにほかの人がコードを見た
ときに何をしているかを明らかにするという効果もあるだろう。

きちんと分かっている人どうしでなら省略してもいいだろうね。

594 :名無しさん@お腹いっぱい。:2001/08/04(土) 01:12 ID:h7D7YGic
●php特有の話じゃないかもしれないですが、echoとprintの違いってなんですか?

●ヒアドキュメントで格納した変数を表示しようとしたら、
printだといけて、echoだとエラーになりました。上記と関係あるんかな?

595 :名無しさん@お腹いっぱい。:2001/08/04(土) 02:07 ID:???
http://www.php.net/manual/ja/function.echo.php

ここに書いてあることがすべて

596 :コメント無しさん:2001/08/04(土) 02:37 ID:5S9xJi7Q
>>590
プログラム知らない人間にそれは無謀と思われ。

597 :コメント無しさん:2001/08/04(土) 02:48 ID:5S9xJi7Q
まちがえた。
>>592ダタヨ。

>>590
とりあえず、ソフトウェア設計初心者向けの本はあってもプログラム
の知識が一通りあることが暗黙の了解。
プログラムがソフトウェア作成の1工程にすぎない&もっとも重要な
工程であることを意識しつつ、まずはプログラムをがしがし組んで見
るのが良いと思うよ。
>>592の本の中では「憂鬱な〜」が一番平易な表現で読みやすいと思う。
C++の知識が無くてもCの知識で充分なはず。
というか、Cの知識しかない人向けだったと思うが。
とはいえプログラムの知識がなくて読めるオブジェクト指向の本はこれ
だけだと思うよ。

598 :コメント無しさん:2001/08/04(土) 06:17 ID:5S9xJi7Q
>>594
ステートメントと関数の違い

599 :名無しさん@お腹いっぱい。:2001/08/04(土) 16:12 ID:h7D7YGic
関数のなかでヒアドキュメントを使うと
expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
といわれてしまうのですが、なぜですか?

600 :599:2001/08/04(土) 16:40 ID:???
ちなみに4.0.6

601 :電動ナナシ:2001/08/04(土) 17:49 ID:yWM3EPUw
>>599
これで動いたけど?そういう話ではない?

<html>
<head><title>Test</title></head>
<body>
<?php
function heredoc($str) {
 echo <<<EOT
 <b>
 TEST OF HERE DOCUMENT IN FUNCTION<br>
 $str
 </b>
EOT;
}
heredoc("hoge");
?>
</body></html>

602 :電動ナナシ:2001/08/04(土) 17:59 ID:yWM3EPUw
>>597
やっぱり敷居が高い?
モジュール化、凝集度、結合度って概念を理解してほしいなって思った
んだけどね。

プログラミング言語の知識なしに読める本なら、これもいいかもしれない。
「オブジェクト指向プログラミング入門」Timothy Budd 著
 http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4795297088/
 http://www.google.com/url?sa=U&start=4&q=http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/bookrank/30.htm&e=642
ただ版元品切れかもなあ。大き目の本屋にいけば在庫があるはず。

603 :599:2001/08/04(土) 18:12 ID:h7D7YGic
すいません、関数の内外の問題ではないみたい。

●エラーのでるスクリプト:
<html>
<head><title>Test</title></head>
<body>
<?php
echo <<<EOT
<b>
TEST OF HERE DOCUMENT IN FUNCTION<br>
</b>
EOT;
?>
</body></html>

Parse error: parse error in /。。。。/test-here.php on line 11
(11行目は、</body></html>の行)

●↑で、ヒアドキュメントをやめたら動いた例<html>
<head><title>Test</title></head>
<body>
<?php
echo
"<b> ".
"TEST OF HERE DOCUMENT IN FUNCTION<br> ".
"</b>";
?>
</body></html>

・・・ヒアドキュメントを可能/不可能にする設定なんてありましたっけ?みつからないのですが。。。
ちなみに、phpinfoでちゃんと、バージョンは4.0.6でした。

604 :コメント無しさん:2001/08/04(土) 18:19 ID:5S9xJi7Q
>>602
まずモジュール1個強がまともに作れないと。
分割もなにも無いと思う。

漏れのプログラムってだらだら長くて見にくいな〜とまず思わなければ
実感できないんじゃない?

605 :電動ナナシ:2001/08/04(土) 19:45 ID:???
>>604
まあそうだよね。それじゃ >>568 さんがそういうことを実感した頃に
また改めて質問してもらうことにしよう。

つうことで、まずはガシガシコードを書いてみなさいな。>>568

606 :電動ナナシ:2001/08/04(土) 19:50 ID:yWM3EPUw
>>603
EOT; の行の先頭に空白とか入っているんじゃない?
EOT; はその行の先頭にないと機能しないよ。

607 :599=603:2001/08/04(土) 20:16 ID:???
>>603
いやぁ、どうみてもなにもはいっていないのですが。。。
おかしいな。。。

608 :名無しさん@お腹いっぱい。:2001/08/04(土) 21:28 ID:???
Version は?

609 :名無しさん@お腹いっぱい。:2001/08/05(日) 18:07 ID:???
「コードコンプリート」 ISBN4-7561-0210-7
STEVE McCONNELL著、アスキー刊
厚くて高いけどオススメ

610 :電動ナナシ:2001/08/06(月) 00:44 ID:???
>>607
改行コードは?

611 :568:2001/08/06(月) 12:04 ID:sqMOPgc.
皆様、お勧め書籍の件ありがとうございます。
604さんのおっしゃる通りかもしれません。

まだ自分でこれだ!っていうスタイルもないのに、楽することを考えて
おりました。
実際に色々なプログラムを作成してみて、初めてこのプログラムを何と
かできないかなぁ〜、が正しい姿でしょうね。

こんどはプログラム自体で判らないことがありましたら、また改めて質
問させていただきます。

612 :電動ナナシ:2001/08/06(月) 16:17 ID:???
>>609,>>611
「プログラム書法」B.W.Kernighan 他著
 http://kyoritsu-pub.topica.ne.jp/bookhtml/0306/000603.html
も手元に置いておくといいんじゃないかな。よいコードを書くにはどうすれば
よいのかという点に焦点を当てた本。古いけど、読みやすいし、初心者には
いいんじゃないかと思う。

613 :名無しさん@お腹いっぱい。:2001/08/06(月) 21:55 ID:jVbx6/lY
Win98SE + Apache 1.3.20 + PHP 4.0.5 で社内向けの
システムの開発をしています。

Apacheが動いている状態で、ExcelやPDFのファイルをクリックしても
関連付けされたアプリが立ちあがらなくなってしまいました。
(正確には、5分後ぐらいに立ちあがる)

PHP 3.0.18-i18n-jaだとこのような現象はなかったのですが、
なんとか回避する方法はないでしょうか?

それとも素直に Linux や FreeBSD にするか、PHP3 に
戻すしかないのでしょうか。

httpd.confに以下は記述してあり、PHP自体は問題なく動いています。
LoadModule php4_module C:/php4/sapi/php4apache.dll
ScriptAlias /php4/ "C:/php4/"
AddType application/x-httpd-php4 .php
AddHandler cgi-script .cgi .pl
Action application/x-httpd-php4 "/php4/php.exe"

マニュアル読んで、半日検索してみたのですが解決策不明…
よろしくお願いします。

614 :電動ナナシ:2001/08/07(火) 01:36 ID:hmQtM6Yc
>>613
どういうシチュエーションなのかよく分からないのだが。

・Apache を起動していると、エクスプローラ等で普通に Excel ファイルなどを
 ダブルクリックして起動させるのに時間がかかる。Apache を終了させると
 すぐに立ち上がる

・HTML ページ上に Excel や PDF ファイルに対するリンクがあるが、その
 リンクをクリックしても数分間応答がない。

後者の場合、リンク右クリックで「対象をファイルに保存」するとどうなる?

615 :教えて君:2001/08/07(火) 02:22 ID:xDDaQDl.
PEAR の Integrated Template クラスで {変数名} とかって書けるけど
配列の時ってどうやるか誰か知ってる?

{hoge[0]}

なんてやっても認識してくれないみたいなんやけど...
ソースちらっと見ただけではようわからんかった...

616 :ナナ萌え(゚д゚)ウマー:2001/08/07(火) 02:43 ID:???


617 :教えて君:2001/08/07(火) 03:10 ID:xDDaQDl.
>>616
えーと... これって俺のに対するレスだよな?
ありがたいけど違うみたいっちゅーか
ソースもうちょっと見てみたらどうもやっぱり無理っぽいような
気がすんのは俺だけ?

foreach ($this->variableCache as $name => $value) {
$regs[] = "@" . $this->openingDelimiter . $name . $this->closing
Delimiter . "@";
$values[] = $value;
}

ここと違う?

618 :613:2001/08/07(火) 08:42 ID:sBm9S5Ck
>>614
レスありがとうございます。相談したケースは前者です。

後者を試してみたら、リンクから起動も「対象をファイルに保存」も
普通の速度でできたんですが…

619 :名無しさん@お腹いっぱい。:2001/08/07(火) 10:16 ID:B/Zo5TSw
日本語と英数文字を区別する関数ってありますかね?

620 :JAPU@エアコン直った...:2001/08/07(火) 11:39 ID:???
区別するって、日本語 (ここではASCII以外という意味) が含まれているかそうじゃないかってこと?
たとえば、EUC-JP ならこんなかんじで、

sub iskanji
{
return shift =~ /[\x8e\x8f\xa0-\xfe]/;
}

ASCII 以外の文字が含まれていれば真を返します。

621 :JAPU:2001/08/07(火) 12:30 ID:???
正確には EUC-JP の JISX 0201 Kana, 0212, 0208 が含まれていれば、だけど。

622 :名無しさん@お腹いっぱい。:2001/08/07(火) 13:48 ID:???
ここは PHP スレです。

623 :名無しさん@お腹いっぱい。:2001/08/07(火) 15:06 ID:Ny4LYuIY
if(eregi("[:alnum:]",$esumoji))
{
print_r $esumoji;
}
else{
echo "(゚д゚)マイウー";
}

624 :名無しさん@お腹いっぱい。:2001/08/07(火) 16:59 ID:???
JAPUたんPHP出来るのか?(藁

625 :JAPU:2001/08/07(火) 19:01 ID:???
PHPスレッドだったのねスマヌ...
氏んできます。

626 :電動ナナシ:2001/08/07(火) 19:17 ID:???
>>622,>>624
せっかくの知識を生かさない手はないと思う。

Perl から PHP に翻訳可能なコードだったらどんどん出してもらって
いいと思う。翻訳可能かどうかはこっちが判断することにして、もし
翻訳不能なら、これは翻訳できないってフィードバックを返せばいいのでは
ないかな。そのうえでコミュニケーション不能って判断になるのだったら
それはそれで仕方が無い。

627 :名無しさん@お腹いっぱい。:2001/08/07(火) 19:56 ID:???
>>626
良い事言うね。

628 :Untitled:2001/08/07(火) 20:28 ID:???
 最近PHPの開発ばっかやってたので、=~のperl正規表現が懐かしかったり(笑)

629 :名無しさん@お腹いっぱい。:2001/08/09(木) 18:16 ID:TsBLqvp.
PHPLIBを使ってユーザー認証してるHPを作ってるんだけど、
i-modeに対応させようとi-mode用のHPも作ろうと試行錯誤してます。

PostgreSQLとphpを連動させてるんで、phpファイルなどの文字コードは
当然EUC-JPなんで、i-mode用のHPはファイルの出力の前にバッファリングして、
バッファの内容を一度変数に入れ、その変数をSJISにコンバートして出力してます。

で、フォームなどから入力されたデータは、$HTTP_POST_VARS、$HTTP_GET_VARSの
データを分解して、SJISからEUC-JPにコンバートしてデータを渡すようにしてます。


で、何故かi-mode端末からログインできません。
ユーザー認証が失敗した画面になります。

ちなみに、パソコンからは問題なくログインできます。

認証のIDやパスワードは英数字を使っているんで、文字コードの問題としても
通りそうなもんなんだけど。

ちなみに、ID、ユーザー名を空、つまりnull(という表現で合っているのか?)で
あらかじめ登録しておいて、認証画面の際に何も入力しないでログインボタンを押しても
行けるようにやってみたけど、やはりi-mode端末からはダメ。

考えられる原因があれば教えてください。

630 :微笑:2001/08/09(木) 19:08 ID:???
__
         〃 _`__
     ,,-=-、、l{,_'´..._ `ヽ、、
   〃. ',.´二W´- ‐-`\ \ヽ、___
   _{l,'.'´      、 ヽ ヽ ヽ彡k、ヽ\
  .//`/   i l.    \ 、ヽ `、 i彡}ヽ`' ´ ▲女優,アイドル、脱がしました▲
. /| / i {  |l {\ {ヽ、_!..ヽ」_/} .}./ |__〉、
 \l.{. l.ヾ _.ゝ_土. ゝ -'fT;;ヽ,| lテ}| ||__〉
   /iヽゝヽ/{~);;:l     {:..''ノ'ノノ|{ノ |_!!女優,女子高生のエッチ画像ばかりを厳選収集!スクール水着,女優,画像ばかり。
  .|_|l」ヽ. ヽ ゞ‐'   、   ̄`ノレヽソ|  
     (.ソ.ゝ     --    /' {=}ノ ◆アイドル画像秘宝館◆
     (=| l へ、      /ノノ((.)). http://www.futomomo.com/netidol/idolhappy/maki/ 
     ((!)ヾヽヽ` ;.- ' ´ |'' ''"'´◆アイドラー◆
         `~^``/'l    ゜>\_ http://www.futomomo.com/netidol/idoler/megu/
     , -‐〃"´ |___/   >- 、 ◆セーラー服◆
   / ./〃    |=/    〃/  \ http://www.futomomo.com/netidol/sailor/miku/
  /   | ||, ‐-、_,...!、/_ ,..、 .〃/      ヽ ◆人妻◆
  〈   / -ー.{ { {.=  ヽ、|| l      | http://www.futomomo.com/netidol/waif/mai/
  |   ヽ  /| |\   / i 〉        | ◆スイート倶楽部◆
  〈  ∧ l_/./ |  | \ _/  /       / http://www.futomomo.com/netidol/sweetclub/miyuki/

asfvbgbh

631 :名無しさん@お腹いっぱい。:2001/08/10(金) 02:13 ID:???
sage

632 :名無しさん@お腹いっぱい。:2001/08/10(金) 15:20 ID:mgFNCq6A
PHPってライセンス体系はどうなってるんでしょう?

633 :名無しさん@お腹いっぱい。:2001/08/10(金) 15:46 ID:DFraO..k
PHP3+GD+freetypeで日本語出力しているのですが、
フォントのディセンダ、アセンダは求められます
でしょうか?

634 :名無しさん@お腹いっぱい。:2001/08/11(土) 14:39 ID:???
PHPとは特に関係ないのですが、今こんなのやってます。

クライアント(ActiveX)からサーバ(PHP)にファイル名をEUC変換
してPOSTする。
クライアントからサーバにPOSTしてさっきアップしたファイル名を取得する。
取得方法はPHPの吐いたHTMLを見て<FILENAME>xxx</FILENAME>
の部分のxxxを取り出しEUC→SJIS変換

ここでアップするファイル名が全角のdで終わる場合、なんか↓のように
「<」が見えなくなってしまいます。
<FILENAME>〜EUC文字〜/FILENAME>

ほんとウンコな質問ですみません。

635 :634:2001/08/11(土) 14:48 ID:???
今思ったけど、これってPHPの吐いたHTMLを一度SJIS変換してから
みればいい。。。(のかな?)

636 :名無しさん@お腹いっぱい。:2001/08/16(木) 15:21 ID:WXA1sEiA
昨日からあれこれ試しているのですがうまくできないので教えてください。

PHPで作っているFORMからatコマンドで予約をしようと考えています。
実際はメールニュースの配信予約をしようと考えています。

以下はテストで作っているスクリプトの一部です。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 配信予約
$command = "/bin/ls -l /tmp |at 1500 2001-08-16";
$command = escapeshellcmd($command);
exec("$command") or Error("配信予約に失敗しました。");

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
※Function Error()は別途作っています。

コマンドラインから
$ /bin/ls -l /tmp |at 1500 2001-08-16
と入力すると
warning: commands will be executed using /bin/sh
job 15 at 2001-08-16 15:00
というようにワーニングは出るものの登録されます。

$ atq
でも表示されるのですが、ウェブから実行しても登録されません。
exec()関数の使い方が間違っているのでしょうか?

637 :名無しさん@お腹いっぱい。:2001/08/16(木) 16:32 ID:???
シェル(コマンドライン)とWebではユーザーが違うと思われ。
登録の確認はWebのユーザー (nobodyとか。サーバーの設定によって違う)でやってる?

638 :電動ナナシ:2001/08/16(木) 16:36 ID:byTTeF5o
>>636
exec() する前の $command の内容を見てみな。

$command = escapeshellcmd($command);
echo "\$command is '" . $command . "'<br>\r";
exec("$command") or Error("配信予約に失敗しました。");

639 :636:2001/08/16(木) 17:31 ID:WXA1sEiA
>>637
ユーザの確認はしました。最初忘れてましたけど(^^;
ご指摘ありがとうございます。

>>638
電動ナナシさん

$command = escapeshellcmd($command);
を消したらうまくいきました。パイプが\回避されてるのがダメだったみたいです。
どうもありがとうございます。

640 :電動ナナシ:2001/08/16(木) 20:23 ID:byTTeF5o
>>632
PHP3 までは GPL、PHP4 からは PHP ライセンス + Zend ライセンス
詳しくは以下を参照。
http://www.php.net/license/

>>633
無理そうだなあ。
# Ascent, Descent の意味は以下の通りでいいんだよね?
 http://www.aceprocess.com/pro_tips2.html

>>634
なぜファイル名を 2 バイト文字で保存する必要が?

641 :さる:2001/08/17(金) 04:31 ID:???
$var = Null; (<php4の関数)
と同じことをphp3で実現するにはどうすればいいのでしょうか?

642 :電動ナナシ:2001/08/17(金) 05:56 ID:YqYraPdc
unset($var);

643 :629:2001/08/17(金) 10:27 ID:yJr7QHdU
自己レス。
原因は「local.inc」中の「Example_Sesson」クラスの「$fallback_mode」を
「"post"」にしていたから、みたい。
なんで「"post"」にしてたかっていうと、URLにセッションのID(?)みたいなのが
表示されるのがイヤだったからなんだけど。

でも今度は認証かけてある各ページに行く度にログイン画面になるし。
これもi-mode端末のみの現象なんだけど。

なんでだろうなぁ。

644 :名無しさん@お腹いっぱい。:2001/08/17(金) 22:58 ID:h5Ic9dxw
>>640
え?フリーじゃないってこと?よくわかんないや

645 :名無しさん@お腹いっぱい。:2001/08/18(土) 00:37 ID:???
>>644
そういう分からない人の為にわざわざURI書いてくれてんのに、
よくそんな発言出来るよな・・・。(;´д`)シンジラレネーヨ

646 :名無しさん@お腹いっぱい。:2001/08/18(土) 08:25 ID:???
こめんなさい
英語も読めないしGPLやZendの意味もわからない僕がPHPを
始めようとすること自体間違いだったのかもしれないです
ライセンスに関する日本語ドキュメントどこにも無いんですよね、、、
ということで失せます

647 :電動ナナシ:2001/08/18(土) 17:38 ID:0Aevniqc
>>646
まあ基本的にフリーだが、一部制限つきということだ。
FAQ より引用。

Q. なぜ PHP4 は PHP3 がそうであったように GNU Public License (GPL) の
もとで二重ライセンスとしなかったのでしょうか?

A. GPL はライセンスされたコードに対し、何が可能で何が不可能かについて
 厳しい制約を強制します。PHP の開発者は、PHP をできるかぎり普及させる
 助けとするために、より緩やかなライセンス(Apache スタイルの)のもとで
 PHP をリリースすることを決断しました。

Q. 端的に言って、PHP ライセンスは何を意味しているのでしょうか?

A. (注意: この回答はいかなる意味においても PHP ライセンスを変更するもの
 ではなく、ライセンスが意味するところについて概要を提供することを
 意図しています) 本質的には、PHP ライセンスは、商用・非商用に関わらず、
 あなたが望むように利用し配布し修正する権利を与えるものです。あなたは
 ユーザーに対してあなたの配布物が PHP を含んでいることを明確にする
 必要があります。

648 :電動ナナシ:2001/08/18(土) 17:39 ID:0Aevniqc
Q. Zend ライセンスには Zend 込みで販売するものについて料金を請求
 してはいけないと書いています。これは私が構築した PHP スクリプトや
 ウェブサイトを販売できないということを意味するのでしょうか。

A, いいえ、まったく違います。この条項は Zend Scripting Engine ライブラリを
 用いて作成したソフトウェアのことを言っており、このライブラリを利用した
 PHP が実行するスクリプトは該当しません。あなたは、PHP ないし Zend ライセンスを
 気にすることなく、自由に、あなたが書いた PHP ソースコードをフリーまたは
 商用で配布できます。あなたは望むだけあなたの商用アプリケーションに PHP
 全体をパッケージすることができます。Zend Scripting Engine ライブラリを
 直接利用する商用アプリケーションを作ることができないということです。

Q. それで、Zend ライセンスのポイントは何ですか?いつそれを考慮すべき
 なのでしょうか?

A. あなたは以下の二つの場合に Zend ライセンスを意識するべきです。
 まず最初に、Zend Scripting Engine ライブラリにパッチを当てて公表
 する場合です。Zend ライセンスは Zend Technologies, Ltd. がこれらの
 パッチを使用料を払うことなく(詳しくはライセンス本文を参照)使うことを
 許可しています。次に、このライセンスは、商用アプリケーションを構築する
 ために Zend scirpting engine を商用で利用することを禁じています。
 もし Zend scripting engine を商用で利用したい場合には(例えば、
 あなたが書いているワープロのマクロ言語として)、ライセンスの情報を
 Zend Technologies, Ltd. に問い合わせなければなりません。

649 :名無しさん@お腹いっぱい。:2001/08/19(日) 12:48 ID:???
PHPって便利ですねぇ。

650 :名無しさん@お腹いっぱい。:2001/08/20(月) 15:37 ID:YTYQxxuA
IE上でJavaScriptのescape()を使用してエンコードした
文字列(UNICODE)をPHP3でデコードするには、どのよう
にしたらよいでしょうか。

@IEのJavaScriptのescape()を使用して文字列「ほげ」をエンコード
した結果 →「%u307B%u3052」

APHP3のi18n_internal_encoding()の結果 → 「EUC-JP」

B@をi18n_discover_encoding()で調べた結果 → 「ASCII」

i18n_convert()を使っていろいろ試しましたが、どうもうまく
いきません。解決策をご存知の方教えてください。

651 :名無しさん@お腹いっぱい。:2001/08/21(火) 12:12 ID:rddG09uE
>>650
PHPの過去のメーリングリストをあさって解決しました。
解決方法は勝手に転載してよいのか分からなかったので、
知りたい方は、とりあえず知らせてください。

652 :みやた:2001/08/21(火) 15:19 ID:jSRLzhwM
php3&Oracle8です。

フォームから書籍の出版日の年、月、日を
ユーザに入力してもらい、
($publish_year,$publish_month,$publish_day)
それを登録する以下のphpがあります。

=======================================
//出版日を8ケタ化
$publish_date = sprintf("%04d%02d%02d",
$publish_year,
$publish_month,
$publish_day);

//登録
$SQL = " INSERT INTO BOOK_MASTER(PU_DATE)
" VALUES(TO_DATE(:book_publish_date, 'YYYYMMDD'));\n".

OCIBindByName($rs, ":BOOK_PUBLISH_DATE", &$publish_date, -1);
=======================================


ここで、もし 出版日ナシのフラグ「$no_publish」がTRUEなら、
TO_DATE(:book_publish_date, 'YYYYMMDD')の代わりにNULLを入れたいのですが、
通常、どうするのがスマートなのでしょう?

$publish_date = sprintf のあとに、
unset($publish_date);
として見たのですが、
OCIBindByName bitelength is 0 in ...
の警告がでてしまうもので。(insert自体はうまくいっているようなのですが)

構文を組み替えてもかまいません。

==================

他人が作ったものを、
事情により普段Oracleなどいじらない私がいじっているもので、
かなりお恥ずかしい話で恐縮です。

653 :名無しさん@お腹いっぱい。:2001/08/21(火) 17:09 ID:Ttfz/Erw
PHPでランダムな英数文字5桁を取得したい場合
どうしたらよいのでしょうか?
rand()だと数字のみなので・・・。
例えば、「7fg47」のような感じです。

654 :名無しさん@お腹いっぱい。:2001/08/21(火) 18:03 ID:???
>>653
PHPの質問じゃないな
関数自分で作れば?

655 :質問:2001/08/21(火) 18:18 ID:R2s3AHtI
入力フォームでカタカナの「ソ」が混じっていると、「ソ\\\」
のようになってしまいます。これを回避するにはどうしたらよいのでしょうか?

656 :電動ナナシ:2001/08/21(火) 21:05 ID:1TWjFS4w
>>652
$publish_date が空なら、INSERT 文の実行を行わないか、日付の挿入を
行わない INSERT 文を発行する。どちらにするかは、日付以外に挿入する
値の有無に依存する。

例)
if ($no_publish) {
  $SQL = "INSERT INTO bookmaster(hoge, publishdate)
   VALUES ($hoge, TO_DATE(:bookpublishdate, 'YYYYMMDD'))";
  OCIBindByName(....
} else {
  # publishdate が DEFAULT NULL なら hoge だけ INSERT
  $SQL = "INSERT INTO bookmaster(hoge, publishdate)
   VALUES ($hoge, NULL)";
}

>>655
stripslashes();

657 :質問:2001/08/21(火) 21:15 ID:???
>>656

解決しました。ありがとうございましたm(_ _)m

658 :652:2001/08/21(火) 21:31 ID:???
なるほど、そうするものなのですね。
ありがとうございます。
感謝いたします。

659 :電動ナナシ:2001/08/21(火) 21:35 ID:1TWjFS4w
>>653
<?
function getRandomString($length) {
$result = "";
# Base Strings
$base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$baselength = strlen($base) - 1;
for ($i = 0; $i < $length; $i++) {
$pos = rand(0, $baselength);
$result .= substr($base, $pos, 1);
}
return $result;
}

$randomString = getRandomString(5);
echo "\$randstr -> [" . $randomString . "]<br>\r";
?>

660 :電動ナナシ:2001/08/21(火) 21:38 ID:1TWjFS4w
>>652
"_" 記号は SQL では 1 文字のワイルドカードを意味するから
(正規表現でいえば "." に相当)、あまり使わないほうがいいと思う。

661 :653:2001/08/22(水) 13:09 ID:dChLBg7w
>>659
大変参考になりました。
ありがとうございました。

662 :名無しさん@お腹いっぱい:2001/08/22(水) 17:44 ID:ym3V.COk
さっき、間違って違う板で質問してしまったのですが

PHPにて正規表現でチェックを行いたいのです。
まずは、メールアドレスなどのチェック(半角英数字&記号のチェック)です。
あとは、全角文字のチェック。カタカナチェック。です。
一応半角数字はチェックできるのですが・・・
誰か教えていただければ光栄です。宜しくお願いします。

663 :テストさん:2001/08/22(水) 22:14 ID:???
>>659
PHPマヌアルからの引用だけど

$token = md5( uniqid( rand() ) ); // 推測が困難であり、より優れている。
$randval = substr($token, 0, 5);

じゃだめなん?
この例は、極めて予測困難な 32 文字のID(128ビット16進数)を 作成します。
らしいし。短くてきれいだし。

664 :電動ナナシ:2001/08/22(水) 22:23 ID:???
>>663
それも考えたんだけど、先頭 5 文字がどのくらいランダムに分布するか
分からなかったので(単なる勉強不足)今回はあえて別解を考えてみた。

665 :名無しさん@お腹いっぱい。:2001/08/22(水) 23:11 ID:???
>>662
んぐらい自分で調べろよ。
うざい。

666 :教えて君:2001/08/22(水) 23:12 ID:???
>>664
そうじゃな、こちらの方が例えば 0 と O とか I と l が
紛らわしいので使いたくない向きにもよろしそうじゃしな。

ところで最近の若者は mt_rand() なんぞは使わんもんなんじゃろか?

667 :テストさん:2001/08/23(木) 00:10 ID:???
>>666
> ところで最近の若者は mt_rand() なんぞは

PHPマヌアルからの引用だけど、って言ってんだろ
この盆暗

668 :教えて君:2001/08/23(木) 01:11 ID:???
>>667
あぅ、煽られてしまった
逝ってくる

669 :名無しさん@お腹いっぱい:2001/08/23(木) 15:47 ID:cRebnFX2
正規表現で
FとM以外はダメだよって言うソースの書き方って
if(ereg("[^F|M]{1}",$in_Hensu)){
echo "error";
exit;
}
だよね?それとも書き方違う?

670 :new:2001/08/23(木) 16:16 ID:MmYN4CjY
いきなり質問ですいません。

php3って配列に要素を追加することは出来ないのですか?

perlでいうpushみたいな感じ。

php4ではarray_pushがあるそうですが。
今の環境では3しか使えないので・・・。

671 :名無しさん@お腹いっぱい:2001/08/23(木) 16:27 ID:cRebnFX2
>>670
なかったら自分でfuction作れ
作ったソースを俺に教えろ!

672 :名無しさん@お腹いっぱい。:2001/08/23(木) 18:56 ID:GljfP/6M
ファイルアップロードのスクリプトを書いて、
ある鯖では動いて、もう一つの鯖では
「open_basedir restriction in effect. File is in wrong directory…(省略」
と、文句を言われ、「/tmp/****」からコピーできません。調べてみるとセーフモードというものに引っかかってるみたいなんです。
この鯖でアップロードは無理なのでしょうか?

673 :名無しさん@お腹いっぱい:2001/08/23(木) 19:55 ID:cRebnFX2
4桁指定で0〜9以下の数字しか記入できない
正規表現の表し方ってどうやるの?
if (!ereg ("[0-9]{4}", $Hensu)){
echo "error";
}
だと5桁以降は、何を書いてもエラーにならない
だから、
if (!ereg ("[0-9]{4}[^.]", $Hensu)){
echo "error";
}
にしたんだけど 全然ダメ・・・・
だれかマジ教えてよ。正規表現むずかしい

674 :672:2001/08/23(木) 20:18 ID:GljfP/6M
if (!ereg ("[0-9]{4}$", $Hensu))
じゃないのかな?

675 :673:2001/08/23(木) 20:29 ID:cRebnFX2
>>674
自分も試しにやったけどダメだったんだよね。
でもアドバイスありがとう

676 :674:2001/08/23(木) 21:05 ID:GljfP/6M
if (!ereg ("^[0-9]{4}$", $Hensu))
文頭のやつ忘れてた。
これでもダメかな?

677 :673:2001/08/23(木) 21:28 ID:cRebnFX2
>>676
で・・・できたよ!!!(喜)
でも、これと同じく
1桁以上5桁以下指定で0〜9以下の数字しか記入できない
正規表現でやったんだけど無理だった・・
if (!ereg ("^[0-9]{1,5}$", $Hensu)){

すげーくやしいっ!!

678 :echo"名無しさん";:2001/08/23(木) 23:51 ID:???
>>670
$array[] = $var;
マニアルにあるこれじゃなくて?

>>672
所有者が違うからだね。
copy("a.php","b.php");かrenameするとアップロードできるかも

679 :名無しさん@お腹いっぱい。:2001/08/23(木) 23:58 ID:cvwLP0ME
>>670-671
こんな感じ?
function _array_push($array, $value){
$array[count($array)+1] = $value;
return $array;
}

680 :名無しさん@お腹いっぱい。:2001/08/24(金) 00:01 ID:FYzqPGzM
>>678
あ・・そんなのでできたのか。
鬱だ逝ってきます。。。

681 :E_ERROR:2001/08/24(金) 01:11 ID:???
>>677 =673
どんな風に無理だったのですか?
『00001』の様に零が付くのが問題?
もしそうだったらその判定前に
$Hensu=sprintf("%d",$Hensu);
として零を削ってあげると良いかも。
ただ『00000』とかは『0』になりますけど。

682 :名無しさん@お腹いっぱい。:2001/08/24(金) 01:17 ID:???
>>673
PHPはわかんないけど・・・。
Perlで書くとこんな感じじゃ駄目?

$webprog =~ s/\D//gi;
if($webprog and lengh $webprog <= 5){
 #数字で一桁以上五桁以下
}else{
 #それ以外
}

683 :名無しさん@お腹いっぱい。:2001/08/24(金) 01:20 ID:???
PHPスレですから・・・

684 :E_ERROR:2001/08/24(金) 02:15 ID:???
寝ぼけてました。
$var2=sprintf("%d",$var1);
だと$var1に数字以外の物が有ると$var2には値が出力されません
(4.0.6(Win32)で確認)。
よって判定をこの後にすることが或る意味、無意味になります。
それさえ踏まえれば使えるかな?後は五桁以下である事を判定すれば
良いのですし。
…あまり誉められたコーディングでは無いとは思いますが。

685 :電動ナナシ:2001/08/24(金) 02:40 ID:???
先頭の 0 を削るなら、
$var = $var + 0;
でいいと思うけど。

ちなみに文字列に 0 を足すと、先頭から順に数字だけが抽出される。
例えば以下のような感じ。PHP^4.0.6 for Win32 で確認。
$var = "x12345"; $var = $var + 0; // $var は 0
$var = "012345"; $var = $var + 0; // $var は 12345
$var = "12345x"; $var = $var + 0; // $var は 12345
$var = "123x45"; $var = $var + 0; // $var は 123

686 :E_ERROR:2001/08/24(金) 05:00 ID:???
>>685 (=電動ナナシさん)
成る程、マニュアルに載ってるこれ
http://www.php.net/manual/ja/language.types.string.php
ですよね?勉強になりました。
しかし奥が深いです、PHPマニュアル…。

// でも更新が頻繁なのは嬉しいけど…面倒(苦笑 <=贅沢者

ところで頭の零を削るなら
$var2 = (int) $var;
って方法もありますね。
結果は電動ナナシさんのとかなり似てますが。
$var = "x12345"; $var2 = (int) $var; // $var2 は NULL
$var = "012345"; $var2 = (int) $var; // $var2 は 12345
$var = "12345x"; $var2 = (int) $var; // $var2 は 12345
$var = "123x45"; $var2 = (int) $var; // $var2 は 123

// int への型キャストのデフォは10進であることを利用
// Codeの展開を考えると利用し辛そうですが

687 :名無しさん@お腹いっぱい。 :2001/08/24(金) 09:42 ID:BsoJVBdw
>>682
正規表現じゃな〜いじゃん♪

688 :672:2001/08/24(金) 10:46 ID:zxBSBd8M
>>678
あの…、よくわからないのですがもう少し詳しくご説明頂けませんか?
お手数ですがよろしくお願いします。

689 :名無しさん@お腹いっぱい。:2001/08/24(金) 11:55 ID:daCgTec.
PHPで今週の頭の日付を取得ってどうやるんですかね。

690 :電動ナナシ:2001/08/24(金) 13:14 ID:alNuUBUQ
>>686
ああ、そっちの方がいいかな。

>>689
<?php
$now = time();
$today = getdate($now);
// ↓ 週の先頭の日付を計算
$firstDayOfThisWeek = $now - $today["wday"] * 86400;
echo "First Date of this week is \"" .
  date("Y-M-d (l)", $firstDayOfThisWeek) . "\"<br>\r";
?>

# 一度月間カレンダーを作ってみた方がいいんじゃないかと思うが。

691 :名無しさん@お腹いっぱい。:2001/08/24(金) 17:44 ID:fC1LCBVo
ttp://php.s3.to/

ここってハックされちゃったんですか?
中国って遊ぶ所が少なそうだから、PCやネットなんか覚えると
ハマっちゃうんだろうな

692 :名無しさん@お腹いっぱい。:2001/08/24(金) 18:17 ID:???
>>691
日本人の仕業じゃないかな。
あそこの管理人はセキュリティ意識が無さすぎた。

693 :名無しさん@お腹いっぱい。:01/08/27 10:51 ID:zDtQUNGM
PHP Version 3.0.18-i18n-ja-2って、2バイト文字サポートされてないんでしょうか?
フォームからの入力で送信した文字列データを単純にプレーンテキストに落としたんですが
2バイト文字は全て文字化けしてしまってる様なんですが…

694 :名無しさん@お腹いっぱい。:01/08/28 00:04 ID:igLWKZBA
cookieにメールアドレスを書き込みたいんですけど、
簡単な暗号化の方法を教えてもらえないでしょうか?

指定したキーで簡単に複合化できるものないですか?

695 :助けてわかんない:01/08/28 01:48 ID:0MY67l12
PHPと言うかプログラム自体最近始めたばっかの
超超初心者なんですけど昨日今日総合のカウンタ
が全然わかんないです。誰かサンプルソース書いて下さい。
検索したけど見つからなかったんで。

696 :名無しさん@お腹いっぱい。:01/08/28 04:59 ID:18vpKowI
>>694
文字コードを少しずらしてやるとか。
ルールを指定して並べ替えるとか。

697 :E_ERROR:01/08/28 05:06 ID:.gNJSO/.
>>694 さん
Mycrypt関数(http://www.php.net/manual/ja/ref.mcrypt.php)
を使うか、
若しくは出来合いの奴を
http://php.resourceindex.com/Functions_and_Classes/
http://www.hotscripts.com/PHP/Scripts_and_Programs/
この辺で探すと良いかも。

>>695 (助けてわかんないさん)
上の後者2つのURIに有るんで参考にしてみると良いですね。
取り合えず、というのでしたら
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/
で簡単な解説あるので良いかも。

698 :E_ERROR:01/08/28 05:13 ID:.gNJSO/.
ereg_replace("Mycrypt","Mcrypt",>>697);
あう〜…。

699 :名無しさん@お腹いっぱい。:01/08/28 07:36 ID:JnQA54xw

各大学の学生ポータルたん萌え〜

早稲田 ―http://waseda-links.com
ICU ―http://icunavi.com
立教 ―http://ri-style.com
東邦 ―http://www.h2.dion.ne.jp/~jn1
東洋 ―http://toyowave.com
中央 ―http://chuo.pos.to

↑マターリパラダイース(・∀・)イイ!
 

700 :名無しさん@お腹いっぱい。:01/08/29 04:33 ID:zqod.sPs
ID隠せなくナタノ?

701 :名無しさん@お腹いっぱい。:01/08/29 12:34 ID:Hz0wel/E
Perlのファイルロックは信頼性がないということだったので、
自前でファイルロックの仕組みを組んで解決していましたが、
PHPのファイルロックの信頼性はどれほどでしょうか。

702 :名無しさん@お腹いっぱい。:01/08/29 12:38 ID:r10mk.nk
>Perlのファイルロックは信頼性がないということだったので、
何処でそんなデマ聞いた?

703 :名無しさん@お腹いっぱい。:01/08/29 12:42 ID:Hz0wel/E
>>702
いくつかの書籍にそう書いてあるが

704 :703:01/08/29 13:09 ID:Hz0wel/E
Perlのファイルロックについてですが・・・。
ここにもありました。現在は解決されているようです(たぶん)
http://tohoho.wakusei.ne.jp/lng/199807/98070060.htm

705 :名無しさん@お腹いっぱい。:01/08/29 16:37 ID:9EJfCa2E
[14] Re: Re: 足跡♪ 投稿者:あげまん  投稿日:2001/01/14(Sun) 22:09
> mkdir()でロックすると環境を選ばない感じで好きなんです。

人様のスクリプト&考えにケチつけるつもりじゃありませんが、、
flockが使える環境ならぜったいこちらを使うべきだと思いますが・・・

http://www.wakusei.ne.jp/twn/wwwlng.cgi?print+199903/99030145.txt

とほほさん、びーかすさんの発言、参考になります。。

symlink, mkdir, flockはいずれも、ロックを『かける』ことに関して
は完璧。OSがちゃんと排他制御してくれる。

symlinkとmkdirの違いは、mkdirだと、Windowsでも利用できるという
ことくらいしかない。信頼度は同じ。

ただし、symlink, mkdirはロックを『はずす』時に問題があり、ロッ
ク中にプロセスが異常終了したりすると、ロックファイルが残ったま
まになる。

その点、flockはロックを『はずす』時も完璧で、たとえプロセスが異
常終了しても、OSがストールしても、ロックが残ることは有り得ない。
信頼性ではsymlink, mkdirよりもflockの方が高い。ただしflockは、
UNIXでもサポートしていないOSがある。


# PHPだとマヌアル見るかぎりWindowsもサポートしてるみたい、、わからんけど。

> ファイルをロックするというより、処理全体をロックする感じにできますし。

$lock = fopen('lock.txt', 'w') or error('ロックファイルを作成できませんでした。');
flock($lock, 2) or error('ロックできませんでした。');

〜処理〜

fclose($lock);

じゃだめですか?

706 :名無しさん@お腹いっぱい。:01/08/29 16:52 ID:9WjD.Pdc
http://tohoho.wakusei.ne.jp/lng/199903/99030145.htm

707 :703:01/08/30 09:29 ID:/FKRYfJU
# PHPだとマヌアル見るかぎりWindowsもサポートしてるみたい、、わからんけど。
http://php.ssi.bg/manual/ja/function.flock.php
Win環境のことはよくわからんが、ここの「警告」の部分を読むと
IISのISAPI環境下ではflockは使えないようだ。

708 :名無しさん@お腹いっぱい。:01/08/30 10:09 ID:3TFNK/cI
>>707
下の User Contributed Notes にはwin98でflockが効かない
っていうメッセージがありますね。
phpは使ったこと無いけど実際どうなんでしょ?

709 :703:01/08/30 12:12 ID:/FKRYfJU
>>708
Win98ということはIISか、Apacheだろうな。
707でも書いたけど、抜粋すると
>ほとんどのオーペレーティングシステムで flock()
>はプロセスレベルで実装されています。 ISAPIのよ
>うなマルチスレッド型のサーバーAPIを使用している
>場合、同 じサーバーインスタンスの並列スレッドで
>実行されている他のPHPスク リプトに対してファイル
>を保護する際に flock() を使用することはできません。

IISでもApacheでもISAPI環境下では使えないということだと
思うけど? スクリプトとして使えばOKということか?
Winのことはあんまりなのでスマソ。
個人的にはLinuxで使っているんで関係ないです。

710 :名無しさん@お腹いっぱい。:01/08/30 12:19 ID:UyczCLUM
>>709
Win98ならIISじゃねーだろ

711 :名無しさん@お腹いっぱい。:01/08/30 12:37 ID:Um1Da8Sw
ウィソで鮪たててるやつなんかflock必要なほどアクセスなんかないでろう

712 :[:01/08/30 12:58 ID:nQguzC6Q
[

713 :名無しさん@お腹いっぱい。:01/08/31 14:05 ID:OPUkQPbU
ある数値を小数点第2位で四捨五入するには
どうしたらいいでしょうか?

714 :名無しさん@お腹いっぱい。:01/08/31 14:43 ID:oeZCoe02
>>713
マニュアルぐらい見ましょう。
http://www.php.net/manual/ja/function.round.php

715 :名無しさん@お腹いっぱい。:01/08/31 19:03 ID:OPUkQPbU
>>714
感謝!!
基本を忘れ、ずっと参考書見てました。

716 :超ドキュソ:01/09/01 00:10 ID:CoQXeBb6
perlで言うeqやneって何?文字列比較演算子ね。
超わかんない。

717 :名無しさん@お腹いっぱい。:01/09/01 00:17 ID:JGsm/JSs
http://iseek.himawaribank.co.jp/
のようなレンタル日記のスクリプト配布されてませんか?

718 :名無しさん@お腹いっぱい。:01/09/01 00:23 ID:yUhB/70g
>>716
==
!=

>>717
こういうレンタル系のPHPスクリプトは殆ど配布されていません。
自分で作りましょう。

719 :名無しさん@お腹いっぱい。:01/09/01 00:29 ID:j2NtyKS.
マンモス本はクソ。マニュアル最高

720 :超ドキュソ:01/09/01 00:29 ID:CoQXeBb6
>>718
あ、== != でヨカタの?
なんか文字列にしたらうまくいかなかったからさ。

721 :名無しさん@お腹いっぱい。:01/09/01 00:41 ID:tdXlcdvA
>>719
というか、マンモス本ってマニュアルに書いてあることと何が違うの? マル写しじゃん!

722 :名無しさん@お腹いっぱい。:01/09/01 17:55 ID:hQ/Rc1cw
>>721
マル写しではありません。
マニュアルの一部抜粋です。

723 :名無しさん@お腹いっぱい。:01/09/01 21:10 ID:tdXlcdvA
>>722
マニュアル>マンモス本

ってことで sage

724 : :01/09/04 00:52 ID:v.Yb6HDE
PHP has encountered an Access Violation at 0C2CBBFB

このエラーって何ですか?

725 :724:01/09/04 03:15 ID:v.Yb6HDE
自己解決
flockの記述がおかしかったみたい

726 :ほえほえ ◆fxJvLsyA :01/09/04 10:32 ID:y0UKZUiw
今本を見ながらPHPを勉強中なんですが、本に書いてあったソースを写して実行してみたんですがうまくいきませんません。
<?php
$failname="log.txt";
if($sousin){
$hozonfail=$failname.".bak";
if(copy($kakikofail,$hozonfail)){
$fp=fopen($failname,"W");
if(flock($fp,2)){
fputs($fp,$naiyou);
flock($fp,3);
}else{
echo "error";
exit;
}
fclose($fp);
}else{
echo "error";
exit;
} }
?>
<html> <head>
<title><?php echo $failname; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post">
<textarea name="naiyou" rows="30" cols"30">
<? require($failname); ?>
</textarea>
<input type="submit" name"sousin" value="更新">
</form> </body> </html>

これなんですが解りますでしょうか。
カキコして送信するとlog.txtの内容が書き換わると言う奴なんですが。。。

727 :名無しさん@お腹いっぱい。:01/09/04 11:20 ID:h3PWA/eg
うまくいきませんません、じゃわかりませんません。

エラー終了なら
copy($kakikofail,$hozonfail) or die("コピーエラー");
としたほうがよい

728 :名無しさん@お腹いっぱい。:01/09/04 11:44 ID:eE6ftGCA
関数には値渡しがデフォルトですけど、
配列を渡したい場合にはどうしたらいいんでしょう?
参照渡しでどうにかできるのかしら。

729 :名無しさん@お腹いっぱい。:01/09/04 11:45 ID:NMYjZ6nA
つかなんでfileがfailなのか教えてくれ そこまでローマ字にするべきなのか?

730 :名無しさん@お腹いっぱい。:01/09/04 11:46 ID:sfyz3S5.
1.HTMLの記述ミス(2箇所)
2.変数の定義
3.fopenの引数

以上3箇所の間違いがあります。

あと、failというのは故意にfileとしてないの?

故意じゃないなら、PHPはエラーが英語で返ってくるので、fileをfailと
間違わない程度に英語を勉強した方が良いでしょう。
わざとfailにしているならスマソ。

fail : 失敗する ・・・・・合ってるのかも(w

731 :730:01/09/04 11:48 ID:sfyz3S5.
微妙に被った。

732 :名無しさん@お腹いっぱい。:01/09/04 14:35 ID:eE6ftGCA
728ですけど何にも考えずに

function($hoge[]){
}

で良かったんですね。ウトゥだ...。

733 ::01/09/04 23:53 ID:v.Yb6HDE
srandの意味がわかりません。
randだけではいけないのですか?

734 :電動ナナシ:01/09/05 00:41 ID:Dl24b5Kw
>>733
rand() は、シードと呼ばれるある数字をもとに、計算した結果を返す。
計算内容は最初から決まっているので、シードが分かってしまうと結果と
なる乱数が分かってしまう。これでは都合が悪い場合がありうる。特に
暗号化処理などで乱数を使う場合には非常に都合が悪い。

シードは通常現在時刻とされることが多いので(PHP が何を使っているか
は特に調べていない)、時刻がわかると計算結果がわかってしまう可能性も
高い。そこでシードを自由に定義できるようにしたのがこの srand() 関数。

ということで必要に応じて使うのがよい。ポイントは、rand() の結果が
予測されてまずいことがあるか?である。なおシードの与え方が下手糞だと
かえって予測しやすくなる可能性もあるので注意。

<?php
// seed が一定なら、rand() の結果も一定であることを示す
function seedTest($seed) {
 srand($seed);
 return rand();
}
for ($i = 0; $i <= 10; $i++) {
 srand($i);
 $rand[$i] = rand();
}
for ($i = 0; $i < 10000; $i++) {
 $x = $i % 10;
 $currentRandom = seedTest($x);
 $diff[$x] += abs($rand[$x] - $currentRandom);
}
for ($i = 0; $i <= 10; $i++) {
 echo "total amount of diffrences is " . $diff[$x] . "<br>\r";
}
?>
結果はすべて 0 になる。つまり seed が一緒なら rand() の結果も一緒。

735 :電動ナナシ:01/09/05 00:43 ID:Dl24b5Kw
for ループの条件判定 $i <= 10 は $i < 10 でいい。打つ出し脳。

736 ::01/09/05 03:01 ID:BfAYMTkY
>>734
srandの意味理解できました。
なんか2ちゃんなのにそこまで丁寧に教えてくれるとは
思ってもみなかったです。
どうもありがとうございました。

737 :名無しさん@XEmacs:01/09/05 10:42 ID:/1y1O2Rw

クラスと通常の関数で呼び出しのコストに差がありますか?

738 :名無しさん@お腹いっぱい。:01/09/05 17:48 ID:eOOIHzsk
'./configure' '--enable-memory-limit''--with-pgsql=/usr/local/pgsql--with-apxs=/usr/local/apache/bin/apxs' '--enable-mbstring' '--enable-mbstr-enc-trans' '--without-mysql' '--with-gdbm''--with-gd=shared' '--with-zlib' '--enable-shared-pdflib'
(from phpinfo())
すんません,こんなconfigureしたらcgi版としてインストール去れちゃったんですけど・・・

739 :電動ナナシ:01/09/05 17:55 ID:Dl24b5Kw
>>738
'--with-pgsql=/usr/local/pgsql--with-apxs=/usr/local/apache/bin/apxs' が
一つの指示子として理解されているからだろ?

--with-apxs の前にスペースがないだけじゃないのか?。

740 :電動ナナシ:01/09/05 18:08 ID:Dl24b5Kw
>>737
自分で実験してみりゃいいじゃん。
例えば同じ処理内容の関数とメソッドを 1000 回呼び出して
それにかかった時間を比較するとかさ。

741 :名無しさん@お腹いっぱい。:01/09/05 21:59 ID:vJu84N5c
urlencodeとrawurlencodeと何が違うのでしょうか?
書籍やマニュアルを読みましたが分かりませんでした。

742 :a'x:01/09/05 22:32 ID:ORI0WPw6
>>741
嘘つくな。マニュアルにしっかりと明記されている。
http://www.php.net/manual/ja/function.urlencode.php

743 :電動ナナシ:01/09/06 02:28 ID:WeJ1j8Ik
>>737
実験してみたが、倍近く時間がかかるな。

744 :名無しさん@お腹いっぱい。:01/09/06 12:02 ID:S15PyfDM
GIF、PNG、JPGが一括して扱えるGDライブラリが出回っているようですが、ひょっとし
て既出でしょうか。

http://php.weblogs.com/php_gd

745 :素人:01/09/06 13:55 ID:tXlMtLNg
超素人な質問でごめんなさい。
flockは読み込みだけのときもした方が良いのでしょうか?
読み込みだけならflockしない方が処理が早いとかあるのでしょうか?

746 :名無しさん@お腹いっぱい。:01/09/06 14:07 ID:TE3IkoNg
>flockは読み込みだけのときもした方が良いのでしょうか?
しましょう。

何か処理をする以上しないよりは当然遅くなりますが、
flock程度なら長時間ロックを開放しない操作とぶつかったりしない限り
人間の脳では「遅い」と体感できません。

747 :素人:01/09/06 14:37 ID:tXlMtLNg
>>746
こんな素人な質問にも答えて頂いてありがとうございました。

748 :737:01/09/06 14:58 ID:zPRXqX4E
>電動ナナシさん
おわ, みのがすところだった. 確かに自分でやってみる
事が大切でしたね. すみませぬ. で,

http://www.geocities.co.jp/SiliconValley-Cupertino/6571/ClassAndFuncton.html

こんな感じでヘタレコード書いてやってみました.

FreeBSD 4.4-RC PHP 4.0.4

関数: 0.0011969804763794
クラス: 0.0021640062332153

ってことで確かに2倍近いですね. 普段やたらとクラスを
組んじゃう方なんで, ちょっと改めねば.

749 :名無しさん@お腹いっぱい。:01/09/06 15:06 ID:cGMUUJcs
>>748
クラスの計測で new も計測に含まれてるのは不公平だと思った。

750 :電動ナナシ:01/09/06 15:12 ID:WeJ1j8Ik
>>748
> class StopWatch { ...
ワラタ。考えることは皆同じだなあ。

ただ echo を使うのはどうだろうか。echo のスループットを測っているのか、
Function/Method の呼出オーバーヘッドを測っているのか分からなくなる
からね。自分は return 0; でやっていた。

あと確かにオーバーヘッドは 2 倍近いが、1 万回呼び出しても 1 秒
足らずで済むということは、それほど気にしなくてよいという風にも
解釈できると思う。もちろんアクセス数次第でもあるが。

ちなみに Instance 生成のコストも加えると(ループのたびにインスタンス
生成すると)関数呼出の 4 倍近い時間がかかる。しかしそれでも 1 万回
やって 1 秒かからないことを意味するので、クラスの利用を控えるべき
という結論にはならないと思う。

751 :737:01/09/06 15:35 ID:zPRXqX4E
>>749
>>750
ありがとうございますです.いろいろつっこまれるのを覚悟の上で
晒したんで勉強になります(w

もし宜しかったらもう一点だけ良いですか?

あのソースで MAX 1000, SURPLUS 100 にして
計測を交互に2回おこなうと,

関: 0.010907053947449
ク: 0.065219044685364
関: 0.077257037162781
ク: 0.079015016555786

と,あんまり結果が変わらなくなっちゃうんですけど
やっぱり echo とかの関係なんでしょうかね? いまいち
仕組みが理解しきれてないす.

たしかにコンマ以下の話なんで余り神経質になるのも
どうかと思いますが, 実際数値化しちゃうとどうも
気になっちゃいますね ^^;

752 :電動ナナシ:01/09/06 16:29 ID:WeJ1j8Ik
>>751
echo のせいじゃないの?
return 0; のケースと比較してみたら?

753 :737:01/09/06 17:11 ID:zPRXqX4E
> 電動ナナシさん
やっぱりそうなんですかね.ループの回数少ないときと
なんとなし振る舞いが違うみたいなんで気になってしまい
ました.

次は echo の振る舞いの勉強にでも逝ってきます.
いろいろありがとうございました.

754 :名無しさん@お腹いっぱい。:01/09/07 11:58 ID:OaYNu.EE
PHPの正規表現で16進でカタカナをチェックしたいのですが

mberegを使用すると
if (mbereg("[^ァ-ヶー―]",$strKatakana)) {
  echo "error";
}
でも、環境的にmberegは使用できないもので・・・

if (!ereg("\%XA5[\%XA1-\%XF6]",$strKatakana)) {
   echo "error";
}
と表示したのですが、チェックされませんでした。
16進で比較するときは、変数をbin2hexで16進に変えないと
いけないのでしょうか?それとも、正規表現が誤っているのでしょうか?

誰か教えてくれ〜〜ぇぇ!!

755 :754:01/09/07 15:25 ID:OaYNu.EE
if (!preg_match("/(?:\xA5[\xA1-\xF6])/",$strKatakana)) {
   echo "error";
}
preg_matchって先頭の文字しか見ないの????
よくわからん・・・まじ誰かおしえてちょ!!!

756 :a'x:01/09/07 16:39 ID:???
if (!preg_match("/^(?:\xA5[\xA1-\xF6])+$/",$strKatakana)) {
   echo "error";
}
てしてみ

757 :a'x:01/09/07 17:07 ID:???
ごめん勘違いした。

> preg_matchって先頭の文字しか見ないの????

そんなことは有りません。

758 :754:01/09/07 18:16 ID:OaYNu.EE
>>756-757
えっ?!
if (!preg_match("/^(?:\xA5[\xA1-\xF6])+$/",$strKatakana)) {
   echo "error";
}
でOKだったよ。

何を勘違いしたんだ????

759 :a'x:01/09/07 20:48 ID:???
>preg_matchって先頭の文字しか見ないの????

いや「先頭」じゃなくても含まれていればOKだから、
それを聞きたいのだと勘違いした。

760 :名無しさん@お腹いっぱい。:01/09/07 21:18 ID:nRQyk2nw
教えて欲しいのですが。

82A0 ⇒ あ に変換するやり方がわからないですが
お願いします。

761 :名無しさん@お腹いっぱい。:01/09/07 21:30 ID:???
s/82A0/あ/;

762 :名無しさん@お腹いっぱい。:01/09/07 21:37 ID:???
あ、PHPスレか、まったく・・・
俺としたことが、ネタで失敗するとは。

$after = str_replace('82A0','あ',$before);

763 :760:01/09/07 22:10 ID:nRQyk2nw
>>762さん
スイマセン、言葉が足りませんでした。
PHP勉強中で、bin2hexで16進数にしたものを
元に戻すやり方がわからないのですが、教えていただけますか。

764 :761,762:01/09/07 22:32 ID:???
マニュアルのコメント欄にいっぱい書いてあるじゃん。
function hex2bin($data) {
$len = strlen($data);
return pack("H" . $len, $data);
}

765 :760:01/09/07 22:55 ID:???
ごめんなさい。(T-T)

766 :ナナシソンケイ:01/09/08 11:39 ID:???
電動ナナシさんておいくつですか?

767 :名無しさん@お腹いっぱい。:01/09/08 22:14 ID:5y4JfV.o
>766
聞いてどうするんですか?

768 :名無しさん@お腹いっぱい。:01/09/08 23:23 ID:4CVLgBKA
PHPで、クラスをDSOか何かの実行形式にコンパイルして、それをphpスクリプトから動的にロードすることってできる?

769 :名無しさん@お腹いっぱい。:01/09/09 00:43 ID:DP/tAPD2
WinNT4_Apache1.3.2出PHP4.0.6やりはじめます。がDBはPostageかMySQLどっちがいいのか迷ってる。どっちがいいんやろ

770 :名無しさん@お腹いっぱい。:01/09/09 00:50 ID:???
Apache のバージョン上げれ。

771 :名無しさん@お腹いっぱい。:01/09/09 00:51 ID:DP/tAPD2
なる

772 :名無しさん@お腹いっぱい。:01/09/09 02:12 ID:jgYLpC4M
dl("***.so");
で出来ると思うけど、Cで書くんじゃないの?
Zendナンタラもってるの?

773 :名無しさん@お腹いっぱい。:01/09/09 09:13 ID:YjZ3tK1U
mail()でblatjを使うにはどのように設定したらいいですか?

774 :電動ナナシ:01/09/09 11:34 ID:XOY93OXw
>>766
いくつに見える?

>>768
http://www.zend.com/store/products/zend-encoder.php

>>769
MySQL なら Win32 できちんと動作するが PostgreSQL は Cygwin でなんとか
動き始めたってレベルだからなあ、とりあえず MySQL だろ。

775 :電動ナナシ:01/09/09 11:39 ID:???
>>769
補足: PostgreSQL for Win32 が置いてあるところ
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
http://www.s34.co.jp/~luster/pgsql/

776 :名無しさん@お腹いっぱい。:01/09/09 12:10 ID:???
>>774
30代前半!

777 :ちゅ:01/09/09 15:40 ID:APXP5ulo
i-mode絵文字って、そのままデータベースに記録しても大丈夫なもんでしょうか?

Oracleを使う予定なんですが、、、

778 :ちたん:01/09/09 21:05 ID:l1z5H3So
ribbonってパーミッション変更できねーの?

779 :名無しさん@お腹いっぱい。:01/09/10 09:15 ID:???
>>778
あほか。ribbonに聞けよ。

780 :ちたん:01/09/10 14:23 ID:NewyOZz.
>>779
昨日の夜にメールしたよバーロ

781 :名無しさん@お腹いっぱい。:01/09/10 14:29 ID:???
>>780

ならちっとは待てや、ヴォケ。

782 :名無しさん@お腹いっぱい。:01/09/10 21:44 ID:XxwdMWNk
MySQLで、テーブルの中身を全部表示したいんですが、
やっぱりselectしてHTMLで吐く必要があるんでしょうか?
テーブルの中身を全て出力するような関数はあるんでしょうか?
一通り見てみたんですが難しくて分からないです…。

783 :自宅:01/09/11 01:37 ID:6viQoEfI
php4.0.6のconfigureで、
checing for Apache modure support via DSO through APXS...Killed
ld.so.1 /usr/local/bin/perl:fatal:libgdbm.so.2:open failed:No such file or directory
Killed


のエラーメッセージが出ます。詳しい方教えてください。
Apacheは1.3.20です。

784 :名無しさん@お腹いっぱい。:01/09/11 08:58 ID:???
ApacheがDSOサポートするようインストールされていない

or

PHPのconfigureオプションの "--with-apxs=" のapxsへのパスが間違っている


...だと思う。(たぶん)

785 :名無しさん@お腹いっぱい。:01/09/11 18:44 ID:tVWPLvf2
php4でfgetcsvを使いたいのですが、デリミタに2文字以上の記号を使うことはできるのでしょうか。
$data = fgetcsv($fp, 10000, "*+*");
こんな感じなんですが、実際にこれで試してみると

名無しさん*+*お腹いっぱい*+*phper

のようなデータが

名無しさん
+*お腹いっぱい
+*phper

のように取得されてしまうのですが・・・

786 :ちたん:01/09/11 22:14 ID:zV9WZGCY
ribbonから応答ない。

787 :ちたん:01/09/11 22:14 ID:zV9WZGCY
つか他にribbonに置いてる人どうなの?

788 :名無しさん@お腹いっぱい。:01/09/11 23:15 ID:???
管理人は千葉にいる?
http://gochagocha.hypermart.net/news.html

>>
うちでは
名無しさん
+
お腹いっぱい
+
phper
こうなった。2文字はダメみたい

789 :名無しさん@お腹いっぱい。:01/09/12 09:50 ID:???
>>787
ribbon放置。マジレス。

790 :785:01/09/13 13:38 ID:RxgTwEGs
>>788
やっぱダメですか・・・
2文字以上使えたほうが便利だと思うんですけどねえ。
ちなみに千葉ではないですよ。
あと、*+*で試したときの結果は>>788の通りです。
>>785は間違いですね。申し訳ない。

791 :785:01/09/13 13:41 ID:RxgTwEGs
ん?
>>788の「千葉」は俺のことじゃないのかな?(^^;
しかしなぜこのスレに・・・

792 :PHPビギナー:01/09/14 05:53 ID:???
現在、マンモス本を参考にして、ウェブショッピングのサイトを構築しています。
DBからデータを取ってくるとこまではできたのですが、ショッピングカートの
スクリプトがよくわかりません。参考になる書籍やサイトがあれば教えてください。

環境は
Apache+PHP4.0+PostgreSQL
です。

*プロフェッショナル PHP プログラミング (インプレス)に
ショッピングカートの例が載っているようですが、
PHP4で書かれているものなのでしょうか?

793 :名無しさん@お腹いっぱい。:01/09/15 00:01 ID:Mx2VGXIg
htmlからphpを呼び出して結果を出力させたいのですが、
テキストを返す場合にはどのようにすれば良いのでしょうか?
具体的には、htmlのタグから呼び出す形のカウンタを考えています。
画像の場合には
<img src="count.php?pic=normal">
から

header("Content-type: image/gif");
readfile("count.gif");

で成功したのですが、画像ではなくテキストを返すときにはどのようにすれば良いのでしょうか。
どなたかよろしくお願いいたします。

ところで、ここ数日電動ナナシさんの姿が見えないんですが、
まさか時期的にアメリカで・・・ってことはないですよね?
不謹慎な発言で申し訳ないんですが。

794 :名無しさん@お腹いっぱい。:01/09/15 00:04 ID:???
echo $count;

795 :793:01/09/15 00:11 ID:Mx2VGXIg
>>794
それやってみたんですが、imgタグからじゃだめですよね?
htmlの側には何を記述すればいいんでしょうか?

796 :教えて君:01/09/15 00:14 ID:???
>>795
君ちょっと冷静になった方がいいよ

797 :793:01/09/15 00:41 ID:Mx2VGXIg
>>796
一応冷静なつもりなんですが・・・
興奮する理由もありませんし。
でもとりあえずしばらく頭冷やしに逝ってきます。

798 :名無しさん@お腹いっぱい。:01/09/15 01:32 ID:6vm7gPGI
通常のphpとcgi版phpを共存させることはできますか?
ちなみに、cgi版の方は、
あるメールアドレス宛にメールが送られると、
そのメール本文に記述されたコマンドに従い、
phpでソケット通信を行うことをしたいです。
#ただし、個人用として

799 :教えて君:01/09/15 01:40 ID:???
>>798
できるよ





でも Perl とか Ruby とかで組んだ方が効率的と思われ

800 :電動ナナシ:01/09/15 02:15 ID:41dU1HoU
>>782
全件 SELECT して HTML, CSV, Text, XML などの形式で出力という方法と、
mysqldump などのツールを system/exec などで呼び出してファイルに
吐き出させそのファイルをダウンロードするという方法が考えられる。

>>792
プロフェッショナル PHP は PHP3 がベース。ただし PHP4 でも動作すると
思われる。

>>793
<img> 要素でテキストを吐くとはどういう意味?
テキストを吐くなら例えば <p><?php echo $count;?></p> ではないか?

> 時期的にアメリカで・・・
んなわけない。バカみたいに忙しかっただけ(現在進行形)。

801 :793:01/09/15 02:40 ID:xSOUSWy6
>>800
お帰りなさいませ。
なるほど、「imgでテキストを吐く」って意味で捉えられてたんですね。
説明が下手糞で申し訳ないです。
そーじゃなくて、「phpの使えないWebサーバーから外部のphpを呼び出して実行するには」ってことです。
画像ならimgタグで対処できるんですが、テキストの場合にはどうするのかと。

802 :教えて君:01/09/15 02:44 ID:???
>>801
PHP がダメでも Perl とかで書くとか。
どうしても HTML にしたかったら IFRAME にせんとしゃーないんじゃないの?

803 :名無しさん@お腹いっぱい。:01/09/15 03:18 ID:gil3KVDk
PHP には内部リダイレクトのような機能はないのでしょうか?
たとえば、
Servletの RequestDispatcher::forward や
mod_perlの $r->internal_redirect()
のような機能をさがしてるんですが・・・

804 :名無しさん@お腹いっぱい。:01/09/15 03:19 ID:zzcqTWls
<script src="http://PHPの使える鮪/count.js" type="text/javascript"></script>

805 :電動ナナシ:01/09/15 03:26 ID:41dU1HoU
>>803
include("redirected.php");

806 :名無しさん@お腹いっぱい。:01/09/15 03:41 ID:???
>>805
なるほど。ありがとうございます。

807 :名無しさん@お腹いっぱい。:01/09/15 16:31 ID:/i3svf82
>>ショッピングカート
http://www.ajnet.ne.jp/~fujiko/php/kaimono_kago.hpml
http://www.pat.hi-ho.ne.jp/dimension/php/sample_session.shtml
php4ならセッションだ

808 :PHPビギナー:01/09/15 16:51 ID:fB0zxQ.2
>>807
セッションだってのはわかってたのですが、
どう扱っていいか困っていました。
教えていただいたところを参考にさせてもらいます。
大感謝です。ありがとうございました。

809 :名無しさん@お腹いっぱい。:01/09/16 02:49 ID:fYyKhX.6
print "<li>nl2br(htmlspecialchars($row[cattitle]))</li>";
とすると、nl2br(htmlspecialchars の文字がそのまま表示されてしまいます。
nl2br(htmlspecialcharsを実行した結果を表示させたいのですが、
どうあがいても、""のなかにこれらは使えないのでしょうか?
print "<li>".nl2br(htmlspecialchars($row[cattitle]))."</li>";
とするしかない?
#ちなみにphp4.0.6です

810 :電動ナナシ:01/09/16 03:04 ID:/x6e5ZPc
>>809
使えなくて当然だと思うが?素直に連結を使え。

もし勝手に関数として処理されたら、画面上に "nl2br" という文字列を
表示したい場合にどうなると思う?

811 :782:01/09/16 20:10 ID:FLAOJ45g
>>800
有難うございます。やはり全件SELECTか・・・。ガンバろ。

812 :教えて君:01/09/16 21:20 ID:???
>>810
わかった!
頭に \ をつけるんだ!

print "<P>\nl2br(\$text)=nl2br($text)</P>";

813 :名無しさん@お腹いっぱい。:01/09/16 22:05 ID:NAhTKKTI
http://php.codebase.org/
入れない(;_;)
入り口はどこだら

814 :名無しさん@お腹いっぱい。:01/09/18 18:53 ID:YStyq7Vw
頻出問題で申し訳ないんですが、
POSTやGETで渡ってくる値について、イタズラ防止のために
どんな手を使ってますか?

例えばHTMLタグの除去なんかでも、閉じてないタグってのが面倒で。

$string = strip_tags($string);
$string=ereg_replace("<","",$string);
$string=ereg_replace(">","",$string);

直球勝負だとこうなるけど、例えば$string = '<br' のとき
$string= 'br'になってなんかカコワルイ

もちろん渡ってきた値によってチェックの方法が変わるのは
当然ですけど、みんなが普段やっている事を教えて欲しいです。

815 :教えて君:01/09/18 19:46 ID:???
>>814
htmlspecialchars()

816 :名無しさん@お腹いっぱい。:01/09/18 23:10 ID:OhWz5MBs
>>813 ららら今日も入れない〜

817 :名無しさん@お腹いっぱい。:01/09/22 18:51 ID:P.C6IyNM
Unicode に変換するライブラリはありませんか?
日本語と韓国語を同一ページに表示させたいのです。。。

818 :名無しさん@お腹いっぱい。:01/09/22 20:40 ID:???
CGIの負荷ってどうやって測定したらよいの?
なにか測ってくれるものとかない?CPUとかディスクアクセスの負荷とか

819 :名無しさん@お腹いっぱい。:01/09/22 20:51 ID:???
>>818
require_once('Benchmark/Timer.php');

820 :名無しさん@お腹いっぱい。:01/09/22 21:54 ID:cRExCwDU
>819
818じゃないけど初めてみた。
調べたけどわかないっす。良ければ教えていただけないでしょうか。

821 :819じゃないが:01/09/23 00:38 ID:???
>>820
何が分からんのかしらんが
http://phpdocu.sourceforge.net/peardocs/Benchmark_Timer.html

822 :名無しさん@お腹いっぱい。:01/09/23 00:55 ID:4CXFxSrk
gettextつきでコンパイルされていないPHPでgettextを使う方法
をご存知でしたら、ぜひ教えてくだされ。
moファイルを擬似的に読み込んで使う方法でも助かります。

823 :-:01/09/23 01:05 ID:DSlKrv6s
その画像ならココ
http://members.tripod.co.jp/bingo852/

824 :名無しさん@お腹いっぱい。:01/09/25 06:29 ID:7/QmGq2M
Oracle8iとphp3です。

出版物一覧があり、これを出版日順(PUBLISH_DATEが新しいほど上)にソートし、出版物一覧を表示させたいです。
ところが、なかに、出版日がNULLのレコードがあり、一覧の中でもっとも下に表示させたいのですが、
ORDER BY PUBLISH_DATE DESC とすると、一番上にきてしまいます。

これを、もっとも下にするにはどうすればいいでしょうか?
#手段はSQLを工夫するのでも、PHPで工夫するのでもかまいません。
#ただ、出版日をNULLでなく、3000-01-01にするとかはナシで。

825 :名無しさん@お腹いっぱい。:01/09/25 08:45 ID:???
>>824
新しいほど上なら3000-01-01なんかにしたら
一番上に来ますが。

826 :電動ナナシ:01/09/25 09:54 ID:fMa3qjrs
>>824
非 NULL な列をソートして、それに NULL な列を union で追加する、
つまり

(SELECT ... FROM pub WHERE publish_date IS NOT NULL ORDER BY publish_date DESC)
UNION ALL
SELECT ... FROM pub WHERE publish_date IS NULL;

ではどうだろう?
Oracle のマニュアルが手元にないから、構文が違っているかもしれないが。
# PostgreSQL では動いた。

827 :電動ナナシ:01/09/25 11:58 ID:fMa3qjrs
>>824
SELECT ...
 DECODE(publish_date, NULL, TO_DATE('1900-01-01', 'YYYY-MM-DD'), publish_date) "pubdate" ...
FROM pub WHERE ... ORDER BY <列番号> DESC;
ならどうかな。"1900-01-01" という日付自体出てほしくないなら、
>>826 に書いたような方法になると思う。

828 :あわわわ:01/09/25 19:31 ID:wjpcATe2
ユーザ定義関数を無効にする事って出来ないのでしょうか?

829 :電動マンコ:01/09/26 00:09 ID:???
>>824
SELECT ...
 DECODE(publish_date, NULL, TO_DATE('1900-01-01', 'YYYY-MM-DD'), publish_date) "pubdate" ...
FROM pub WHERE ... ORDER BY <列番号> DESC;
ならどうかな。"1900-01-01" という日付自体出てほしくないなら、
>>826 に書いたような方法になると思う。

830 : :01/09/26 02:58 ID:oQYf099Q
なんだこのスレは 単なるクズの集まりじゃねーか。 お前らこんな空間
に依存してて満足なのか?すごいねー。 よっぽど現実世界にご不満があ
るのですね(ワラ 貴様らが立てたクソスレに、こんな時間だっていうのに
死体にたかる蛆のようにレスがついていきやがる。 ほんと多いんだね
〜暇人って、とかまじまじと思ったよ。
どうせお前らは学校からも社会からもつまはじかれる 基地害かブサイク
なんだろ?文体や文字だけの台詞回しで
恰好付けてないで正直に言えよ!!俺が認めてやるからさ(ワラワラ 普通平
均以上のルックスの持ち主なら、こんな時間に ネットなんてやらずに、
しかもこんな駄掲示板来ずに ツレと遊んだり彼女や彼氏と寝てるぜ?
いっとくが、『おまえもな』とか 馬鹿の一つ覚えみたいな返事するん
じゃねーぞ それくらい常人の半分くらいしかない脳絞って考えれば
わかるだろ。俺は二度とこんな所こないし まぁ俺が言いたいのは

『おまえらの人生終わってるから今すぐ消えてください』 ってこと
でーーーーーす♪てへっ!

831 :名無しさん@お腹いっぱい。:01/09/26 03:19 ID:???
こりゃまた懐かしいコピペだね…。

832 :あわわわ:01/09/26 14:10 ID:3JbOB13A
無理なのかな('-`)

833 :名無しさん@お腹いっぱい。:01/09/26 15:52 ID:???
(´`)

834 :postgresで:01/09/27 05:33 ID:UdkWWoXs
ブール型の変数が
pg_resultで
't'とか'f'のstringになって返ってきます
if (!pg_result(.....)) とかできません。
intで返ってこさせるにはどうすればいいんでしょう?

835 :名無しさん@お腹いっぱい。:01/09/27 07:39 ID:???
こんな時間に何やってんだよ、だいたい朝っぱらから
オナニーしてる自分が格好悪いと思わねえのかよ。
少しは自分が人間であることを自覚して動物的本能に
沿った行動ばっかりしてる奴はとっとと首でも吊って氏ねよ

836 :名無しさん@お腹いっぱい。:01/09/27 13:51 ID:vLhkAkJY
質問でっす
最近PHP始めたモンですが、ファイルをDLする前にワンクッション置きたいのです
GET /.../targetfile
の変わりに
GET /.../dl.php?file=targetfile
としてdl.phpからtargetfileを送り込むようにしたいんですが
どうしたら良いもんでしょう?

837 :名無しさん@お腹いっぱい。:01/09/27 14:13 ID:???
1. Location ヘッダで飛ばす。
2. HTMLを出力して <meta http-equiv="Refresh" content="...."> で飛ばす。
3. ダウンロードさせたいファイルを読み込んで、ダウンロードるような Content-Typeで出力。
ダウンロード時のファイル名はContent-Dispositionヘッダで指定。

838 :誤字脱字:01/09/27 14:15 ID:???
ダウンロードるような→ダウンロードするような

839 :名無しさん@お腹いっぱい。:01/09/27 15:48 ID:vLhkAkJY
>837
おお、こりゃどうも
最終的にやりたいのはtargetのファイル名が日本語なんで
自前でコード変換したかったのよ
いろんなブラウザで試したけどかなり挙動が違うのとIEみたいに
UTF8で円コードされると大変
やっぱしHTTP&HTMLの仕様から勉強しとかんと駄目かな

840 :名無しさん@お腹いっぱい。:01/09/27 17:02 ID:???
Jフォンから、写真添付メールを送ると、
そのまま掲示板に掲載することのできるCGIはありませんか?

841 :名無しさん@お腹いっぱい。:01/09/27 17:12 ID:???
>>840
スレ違い・マルチポストうざい。

842 :名無しさん@お腹いっぱい。:01/09/28 01:59 ID:aKsWtSRQ
いつの間にかUNIX timestamp が10進法で10桁になっていました。

843 :名無しさん@お腹いっぱい。:01/09/28 02:20 ID:???
2chにいて今ごろ気が付くやつ

844 :1:01/09/28 02:47 ID:cpdlLQHw
その画像ならココ
http://www.f2.dion.ne.jp/~impact14/その画像ならココ
http://www.f2.dion.ne.jp/~impact14/

845 :名無しさん@お腹いっぱい。:01/09/28 04:54 ID:M1pC8nxQ
http://chosuke1.hoops.ne.jp/aniota.html

846 :名無しさん@お腹いっぱい。:01/09/28 11:29 ID:NAO7pL3E
質問です。
falseと0とヌルを区別して判定する事はできるのですか?

847 :名無しさん@お腹いっぱい。:01/09/28 14:51 ID:JrfXQnTk
身元バレてしまうけど質問です。
http://delta.r7office.net/customize/wintips/
で「表示をカスタマイズ」を実行した後、nextやprevをクリックすると
人によって「Fatal error: Allowed memory size of 8388608 bytes exhausted...」
なるエラーが出るみたいです(全員という訳ではない)。
しかもエラー出る人はリロードすれば直るのが大半。
Pragmaでキャッシュクリアしてるんですが原因不明です。

848 :PHP:01/09/28 22:46 ID:pG3W2who
何でこんなに下がったの?ってことで age

849 :名無しさん@お腹いっぱい。:01/09/28 23:47 ID:01qfCc5k
>>846
phpでは区別してないはず。

850 :った:01/09/29 12:42 ID:???
った

851 :名無しさん@お腹いっぱい。:01/10/04 09:35 ID:uHZM4LKI
phpを初歩から勉強したいのですがわかりやすいページありますでしょうか。
php 初心者 で検索しても解説本ばっかりヒットしてしまいます。

852 :名無しさん@お腹いっぱい。:01/10/04 09:36 ID:???
PHPってやっぱすげーな。
Perlの数倍は処理が早いしな。

853 :名無しさん@お腹いっぱい。:01/10/04 10:14 ID:???
オープンソース・ソフトウェアってどういう意味でしょうか。
ソフト自体のプログラムソースが公開されているっていう意味ですか?
それって意味あるんですか?そんなの初心者が見たところでちんぷんかんぷん
だと思うんですが。

854 :気合い入った初心者:01/10/04 10:37 ID:???
perlよりもPHPの方が速度面で優れている事はわかりました。
ですが何故cgiスクリプト配布サイトではperlで作っている
とこがほとんどなんでしょうか?
シェアもperlの方が上なんですよね?

855 :教えて君:01/10/04 10:44 ID:???
>>852
mod_perl にしたら?

856 :教えて君:01/10/04 10:44 ID:???
>>853
わかる人にはわかるから問題ナシ

857 :教えて君:01/10/04 10:46 ID:???
>>854
PHP 使えるプロバイダがないから

あとメモリ喰う

858 :名無しさん@お腹いっぱい。:01/10/04 10:51 ID:???
>>853
初心者が見る必要ねぇよ。隠したら上級者も見れんだろボケ

859 :気合い入った初心者:01/10/04 10:56 ID:???
>>857
どうしてプロバイダはPHPに対応させないんですか?

860 :名無しさん@お腹いっぱい。:01/10/04 11:15 ID:???
インストール時場合によっては、Apacheもインストールしなおさんといかん事があるから。
suexecに対応していないから、素人が作るとDB等のパスワードが漏れる可能性があるから。
昔はセキュリティ面のバグが結構あったから。
Perlに比べ頻繁にバージョンアップするから。
要望が少ないから。

861 :名無しさん@お腹いっぱい。:01/10/04 11:27 ID:???
perlが遅いという人はmod_perlを使ってみてください
mod_perlがメモリー食うという人はspeedy_cgiを使ってみてください。

862 :名無しさん@お腹いっぱい。:01/10/04 12:46 ID:???
>>861
スレ違い。このスレはPHPスレなんだから

Perl CGIが遅い→PHPを使ってみよう

で良いんだよ

863 :気合い入った初心者:01/10/04 13:12 ID:???
PHP4はDL出来ました。
Apacheはどこで手に入れればいいんでしょうか

864 :気合い入った初心者:01/10/04 13:14 ID:???
ごめんなさい、やっぱりありました。
Widowsで動かしたいんですが、
php-4.0.6-Win32.zip
apache_1.3.20.tar.gz
でいいんですよね?

865 :名無しさん@お腹いっぱい。:01/10/04 13:20 ID:???
CygwinじゃないならApacheもWin用にすれ。
*.msiって拡張子のね。

866 :気合い入った初心者:01/10/04 13:29 ID:???
>>865
ぼ、僕に言ってるんでしょうか。
http://www.apache.or.jp/dist/httpd/
ここを探しても*.msiってファイルはないようなんですが。。

867 :名無しさん@お腹いっぱい。:01/10/04 13:41 ID:???
binariesの中では。
http://httpd.apache.org/dist/httpd/binaries/win32/

868 :気合い入った初心者:01/10/04 13:42 ID:???
ご、ごめんんさい。ありました。
apache_1.3.20-win32-no_src-r2.msi
これでいいんですよね?

869 :気合い入った初心者:01/10/04 13:44 ID:???
このインストレーション パッケージは Windows インストーラ
サービスでインストールできません。
新しいバージョンの Windowsインストーラを含むWindowsサービスパックを
インストールする必要があります。

ダブルクリックするとこんなメッセージが出てしまいますが。。。

870 :名無しさん@お腹いっぱい。:01/10/04 13:50 ID:???
PHP、Perl、ASP、Ruby、JSP、Tcl、C言語
の中ではどの言語でCGI組んだら一番速い?
それとこの中で一番処理が遅いのはどれ?

871 :教えて君:01/10/04 13:53 ID:???
>>870
チョッピリスレ違いだが、
それはアンタがそれぞれの言語の癖を熟知してて
最速のアルゴリズムでプログラムを組めるという前提でいいんだな?

872 :気合い入った初心者:01/10/04 14:04 ID:???
僕win98なんですけどそれは関係ないですよね?

873 :名無しさん@お腹いっぱい。:01/10/04 15:01 ID:???
昔、これみてWin98にPHP4のテスト環境入れたなぁ。
最初はこのとおりにやってもいいんじゃないかと。
http://www.spencernetwork.com/CommonGatewayInterface/WinApacheServer/

874 :名無しさん@お腹いっぱい。:01/10/04 15:09 ID:???
とりあえず動けばいいっていうのなら
http://prdownloads.sourceforge.net/phptriad/phptriadsetup2-11.exe
こういうものがあるよ。
Apache1.3.12+PHP4.0.5だから必要なら自分で
バージョンアップしないとダメだけど。

まあ、実行するだけでテスト環境はできるんで。

875 :名無しさん@お腹いっぱい。:01/10/04 15:54 ID:???
>>873-874
どうもご親切にありがとうございます。
もう少しやってみます。

876 :名無しさん@お腹いっぱい。:01/10/04 16:03 ID:???
msi形式のインストールファイルを使う機会は
これからますます広まってくと思うなあ。
Windowsユーザなら、MSインストーラの最新バージョンは
入れておいたほうがいいんじゃないか。

#しかし>>864-869はお役所の窓口を
#たらいまわしされてるみたいでちょっとワラタよ。

877 :気合い入った初心者:01/10/04 16:17 ID:???
なんとか色々やって動くようになりました。
ところで拡張子なんですが、現在はphp3になっています。
どうしてPHP4を入れたのに3なんでしょうか。

あともう一つ。
echo "<font size=\"5\">あいうえお</font>\n";
echo ("<font size=\"5\">あいうえお</font>\n");

()があるのとないのと表示結果同じなんですけど
何か違うんでしょうか?

878 :1:01/10/04 16:43 ID:ipU3GGMs
http://www5.justnet.ne.jp/%7Ettp/

879 :名無しさん@お腹いっぱい。:01/10/04 16:48 ID:???
>>877
動いてるのはPHP4だけど拡張子が.php3じゃないと動かないってこと?
それならhttpd.confいじるだけだと思うけど。

括弧の有無は関係ないと思われ。
自分はつけてない。

880 :気合い入った初心者:01/10/04 16:50 ID:???
>>879
そうです、インストールしたのはPHP4なんですけど
拡張子はphp3じゃないと動かないですね。
これって別に気にしなくても平気ですか?

括弧の有無は関係なかったんですね。
じゃ、無しの方がいいですね。

881 :名無しさん@お腹いっぱい。:01/10/04 16:54 ID:???
>>880
このくらい自分で調べた方が・・。

httpd.conf開いて
AddType application/x-httpd-php .php
にする。

882 :気合い入った初心者:01/10/04 17:21 ID:???
>>881
ごめんなさい。どうもありがとうございました。

perlでいうと、
$hoge = $query->param('mode1');
こうやってパラメータを受け取りますが、phpだとどうやって
パラメータを受け取るんでしょうか。
何故か手元の本に載っていないんですが。。。

883 :名無しさん@お腹いっぱい。:01/10/04 17:38 ID:???
>882
例えば
<textarea name="hoge">
からデータを受け取ったら$hogeという変数に入る。

Webで検索すれば初心者向きのページもあるので
探してみるのがいいと思うよ。

884 :名無しさん@お腹いっぱい。:01/10/04 17:46 ID:???
>パラメータを受け取るんでしょうか。
>何故か手元の本に載っていないんですが。。。

役にたたなすぎる本だな。

885 :名無しさん@お腹いっぱい。:01/10/04 18:00 ID:???
>>882
その本のタイトル晒しageキボンヌ

886 :名無しさん@お腹いっぱい。:01/10/04 18:54 ID:/cB87EZ.
http://px.a8.net/svt/ejp?a8mat=6JUU4+D3OPU+A0+1NJRXD

887 :名無しさん@お腹いっぱい。:01/10/04 19:05 ID:???
↑押すなよ

888 :名無しさん@お腹いっぱい。:01/10/04 19:52 ID:???
押しちゃった・・・(;;)

889 :名無しさん@お腹いっぱい。:01/10/04 22:36 ID:Wv.x.fIU
>>883
パラメーターを受け取る作業を行わなくても勝手に入るんですか?

<?
$hoge;
?>
ってやっておけばいいだけなんでしょうか。
どうもごめんなさい。初心者向けのHP探して頑張ります。

890 :名無しさん@お腹いっぱい。:01/10/04 23:22 ID:???
最近、ちょっと学生さんにあって、感じたのですが、Javaが有力で、あんまりPHPに興味持っていないようでし
た。(サンプルが偏っていますが、)

実体どうなんでしょうか?

PHPがおじさん言語になりつつあるような危惧をふと覚えました。

学生や若い方の近くおられるひと、感触ありましたら、よろしくお願いします。

891 :名無しさん@お腹いっぱい。:01/10/04 23:43 ID:???
職業的プログラマー志望ならJavaに興味あるんじゃない?
仕事もJava関連増えてきてるし。
PHPはあまり増える傾向が無い(w

遊びプログラマーなら、簡単且つFWPでも使えるトコが結構ある
PHPに興味持ちそうだけど、その前にPerlに入るか。

結局PHPは位置的に中途半端なのかもね。

892 :電動ナナシ:01/10/05 00:41 ID:???
>>890
長尾氏登場か?

893 :おじさん言語:01/10/05 01:22 ID:szxmKTVE
マンモス本は初心者向けの概略としては良いのですが
読み続けるにはリファレンスがヒドイですよね

894 : :01/10/05 10:40 ID:DQvM1FAo
PHP3+PHPLIB+PostgreSQLでサイトを作っているのですが、
何回かに一回PostgreSQLのSELECTで件数が0件になって
しまい、30秒ほど待ってアクセスすると正常に検索される
という現象が起きています。PHPLIBのセッション変数を
多用しているのですが、これがPostgreの問題なのか、PHPLIB
辺りの問題なのか分かりません。どなたか分かる方いないでしょうか。

895 :名無しさん@お腹いっぱい。:01/10/05 10:47 ID:???
その他の 894氏が作ったプログラム部に問題があるに1票。

896 :894:01/10/05 11:09 ID:DQvM1FAo
>>895
なるほど(苦笑
でもプログラム中には時間計算に関する部分はまったく
無いので、30秒ほど待つと正常に動作するというのは
環境の問題のようが気がして、いろいろ調べたのすが、
原因がわかりませんでした。

897 :気合い入った初心者:01/10/05 14:35 ID:???
アパッチサーバーをプログラムから起動しているんですが、
ふたつにあります。
Apache as a serviceとManagement
です。
どちらにもStart serviceっていうのがあるんですが
どっちから起動すればいいんでしょうか。

898 :気合い入った初心者:01/10/05 15:11 ID:???
昨日はうまくいったのに今日やったら
何故かファイルがDLされようとしたり、
ソースが全部そのまま表示されたりしてしまいます。
訳がわからない・・・。

899 :名無しさん@お腹いっぱい。:01/10/05 15:34 ID:???
PHPで掲示板作ってるんだけど、
GZIP圧縮送信を使うにはどう記述すればいいの?

Perlの場合は、

print "Content-type: text/html;charset=x-sjis\n";
print "Content-encoding: gzip\n\n";
open(STDOUT,"| $gzippath -1 -c");

こんな感じだったけど

900 :気合い入った初心者:01/10/05 16:12 ID:???
php.iniを消したら動きました。一体なんだったんでしょうか。

echoとprintってどっち使っても同じですか?

901 :名無しさん@お腹いっぱい。:01/10/05 17:03 ID:???
>899
せっかくだからPHPで掲示板作ってみませんか?スレに書いてたYO!

http://ebi.2ch.net/test/read.cgi/php/982779383/12

902 :気合いだけじゃだめだと悟った初心者:01/10/05 19:43 ID:6xwwz1Q.
えっと、問題が解決されぬままどんどん次へ行ってしまっていますが、、、

$week = array("日","月","火","水","木","金","土");
for ($i=0; $i<sizeof($week); $i++){
echo "<input type=checkbox name=$week>$week";
}

こうした場合なんですが、チェックボックスを2つ以上チェックして
フォーム送信したら、
あとでパラメータを受け取る時
$weekにふたつ以上変数に値が入ってしまいますよね?
"日"と"月"をチェックして送信したら$weekは一体どうなるんでしょうか。
当然チェックされたものを全部表示したい訳で。。。

903 :22:01/10/05 19:45 ID:kfBSfYqc
それは
http://www.max.hi-ho.ne.jp/%7Ehttp/

904 :電動ナナシ:01/10/05 20:25 ID:???
>>902
> "<input type=checkbox name=$week>$week
これって
<input type=checkbox name=hoge value=$week>$week
だろ?問題文の意図からして。

この場合、変数が後から順次上書きされて、最後の変数だけが代入される。
それを避けたければ
<input type="checkbox" name="selecteddayofweek[]" value=...
という風に name 属性値に [] をつけて配列にしろ。

以下はサンプル。
<form name="arraypost" action="arraypost.php" method="post">
<?php
 $week = array("Mon", "Tue", "Wed", "Thr", "Fri", "Sat", "Sun");
 foreach ($week as $wod) {
  echo "\t<input type=\"checkbox\" name=\"aWeek\" value=\"" . $wod . "\">" . $wod . "<br>\r";
  // 配列にした場合
  // echo "\t<input type=\"checkbox\" name=\"aWeek[]\" value=\"" . $wod . "\">" . $wod . "<br>\r";
 }
?>
<input type="submit">
</form>
<?php
if (is_array($aWeek)) {
 foreach ($aWeek as $awod) {
  echo "got '" . $awod . "'<br>\r";
 }
} else {
 echo "got '" . $aWeek . "' only.<br>\r";
}
?>

905 :名無しさん@お腹いっぱい。:01/10/08 21:53 ID:kC/b5JDY
age

906 :みや:01/10/09 04:49 ID:QnntbG8o
Oracle8iとPhp3です。

$rs = OCIParse($conn,
" DECLARE\n".
" customer_id NUMBER(8, 0);\n".
" account NUMBER(8, 0);\n".
" BEGIN\n".
  (中略)
" INSERT INTO MEMBER_MASTER VALUES(\n".
" account, :auth_level,\n".
  (中略)
" :post, :group_free, :profile );\n".
" COMMIT;\n".
" :account := account;\n".
" EXCEPTION\n".
" WHEN OTHERS THEN ROLLBACK;\n".
" END;");
$Account = -1;
OCIBindByName($rs, ":ACCOUNT", &$Account, -1);

・・・ということをやっているのですが、
このあと、
$Accountを参照すると、
「rs@」
(@の部分は特殊コードが入っている模様)

となってしまうのですが、
なぜなのでしょう?

907 :名無しさん@お腹いっぱい。:01/10/09 13:16 ID:???
>902
そもそも、1つだけ選択させるのにチェックボックス使うのが間違い。
ラジオボタンにすれば?これなら1つしか選択を許さないよ。
HTMLを復習されたし。

908 : :01/10/09 13:51 ID:???
>907
いや,>902 は複数選択させたいのかもしれないし…

909 :名無しさん@お腹いっぱい。:01/10/09 19:38 ID:???
>907
そ、、そっか。「チェックされたものを全て表示したい」だもんね。
私は日本語から復習しまっす。

910 :電動ナナシ:01/10/09 19:56 ID:???
そろそろ Part2 か?

911 : :01/10/10 10:52 ID:???
$city = array("$NY","$2ch","$yahoo"); # 配列を配列に格納しているつもりです。

$NY = array("NY-A","NY-B","NY-C");
$2ch = array("2ch-A","2ch-B","2ch-C");
$yahoo = array("yahoo-A","yahoo-B","yahoo-C");

普通 print ("$NY\n");
で、Array が表示されますよね。

だから↓だと、
for($i=0; $i<count($city); $i++){
  print ("<h4>$city[$i]</h4>\n");
}

<h4>Array</h4>
<h4>Array</h4>
<h4>Array</h4>

が表示されるはずですよね?それが期待通りにいかないです。

912 : :01/10/10 11:25 ID:???
PHPでforeachって使えますか?

913 :名無しさん@お腹いっぱい。:01/10/10 11:43 ID:???
使える。

折角マニュアルが日本語であるんだからマニュアルぐらい読めや。

914 :名無しさん@お腹いっぱい。:01/10/10 11:49 ID:???
>>911
代入の順番がおかしいよ。
それだと、$cityに格納した段階では何も値がない。
参照代入するか、

$city = array("$NY","$ch","$yahoo");

$NY = array("NY-A","NY-B","NY-C");
$ch = array("2ch-A","2ch-B","2ch-C");
$yahoo = array("yahoo-A","yahoo-B","yahoo-C");

for($i=0; $i<count($city); $i++)
print("<h4>$city[$i]</h4>\n");

ならうまくいくはず。
ついでに、$2chって変数は不可ね(頭に数値がある)。

>>921
使える。

915 :914:01/10/10 11:52 ID:???
間違えた・・・

$NY = array("NY-A","NY-B","NY-C");
$ch = array("2ch-A","2ch-B","2ch-C");
$yahoo = array("yahoo-A","yahoo-B","yahoo-C");

$city = array("$NY","$ch","$yahoo");

for($i=0; $i<count($city); $i++)
print("<h4>$city[$i]</h4>\n");

だよ・・・
逝ってきます。

916 : :01/10/10 18:47 ID:yOfgWD32
PHPでメールフォームを作る方法を解説したサイトありませんか?

917 :ヽ( ̄▽ ̄)ノ:01/10/11 10:43 ID:j6MsruhY
>>916
sendmail使える鯖で、mail()を使えば簡単に出来ると思います。

918 :名無しさん@お腹いっぱい。:01/10/11 10:59 ID:???
>>916
http://www.php.net/manual/ja/function.mail.php

919 :916:01/10/11 13:53 ID:J.dJ1tTI
>> 917
>> 918
ありがと! やてみます

920 :名無しさん@お腹いっぱい。:01/10/11 15:17 ID:???
PHPで一定時間(24時間とか)経過する度にスクリプトを実行させるようにするには
どう記述すればいいんですか?

921 :教えて君:01/10/11 15:42 ID:???
>>920
いろいろあると思うんだけどなぁ…
もうちょっと頭使ってみたら?

922 : :01/10/11 16:25 ID:J.dJ1tTI
postが送られてきていない状態でもif文が実行されてしまいます。
これはどのように回避すれば良いのでしょうか

<?php
if(isset($HTTP_POST_VARS)){
print "post enable";
}
?>

923 :pong:01/10/11 20:45 ID:BRGBbLQ.
スクリプト中から/bin/pingを実行して、その出力を
リアルタイムで表示させる方法ってありますか?

system関数とかpopen関数を使った場合、pingが終了してから、
結果がまとめて表示されるのですが、これを一発打つごとに
逐次表示させたいのです。何かヒントを頂きたいです。

924 :名無しさん@お腹いっぱい。:01/10/11 21:56 ID:wpdLkiqc
あ ほ や

925 :名無しさん@お腹いっぱい。:01/10/11 23:08 ID:???
>>922
ifが実行されるのはあたりまえです。

926 :>924:01/10/12 00:30 ID:GWCbLVAE
それは>>923に対して??

927 :電動ナナシ:01/10/12 00:36 ID:f.Lts67Y
>>920
cron を使って・・・
・lynx や wget で PHP なページを読む。
・CGI 版(コマンドライン)な php を実行する。

>>923
<?php
$host = "localhost";
$pinging = 10;
$reply = array();
for ($i = 0; $i < $pinging; $i++) {
 $ping = `ping -c 1 $host`;
 eregi("64 bytes[^\n]+", $ping, $reply);
 echo $reply[0] . "<br>\r";
 flush();
 sleep(1);
}
?>
最初の何個かはまとめて表示されるが、まあいいだろ。

928 :923:01/10/12 01:43 ID:GWCbLVAE
>>927 ありがとうございます。flush()が肝だったようです。l
改良してみました

--------------------------------------

<?php

$host = "localhost";
$pinging = 5;


$fp = popen("ping -c $pinging $host","r");

while(! feof($fp)){
$result = fgets($fp,1024);
print "$result<br>";
flush();
}

pclose($fp);
?>

----------------------------------------
より自然な出力が得られます。ありがとうございました

929 :電動ナナシ:01/10/12 06:00 ID:eFqNxbXY
>>922
このコードを見れば何が起きているか分かるだろう。
<?php
function printPostVars($POST_VARS) {
 print "post enable<br>\r";
 print "Size of \$HTTP_POST_VARS is [" . sizeof($POST_VARS) . "]<br>\r";
 foreach ($POST_VARS as $key => $value) {
  echo "[" . $key . "]->[" . $value . "]<br>\r";
 }
}
?>
<form method="post">
 <input type="submit" name="test" value="POST">
</form>
<a href="<?php echo $PHP_SELF ?>">GET</a>
<hr>
<h3>First Test</h3>
<?php
if (isset($HTTP_POST_VARS)) {
 printPostVars($HTTP_POST_VARS);
} else {
 print "post disable";
}
?>
<hr>
<h3>Second Test</h3>
<?php
if (0 < sizeof($HTTP_POST_VARS)) {
 printPostVars($HTTP_POST_VARS);
} else {
 print "post disable";
}
?>

930 :名無しさん@お腹いっぱい。:01/10/12 10:15 ID:???
最近DBをなんとなく覚え、PHP + Postgreを使ったのサイトをやろうかと
思っているのですがDBの作成などは普通TELNETで行うものなのでしょうか?

931 :とある名無し:01/10/12 10:40 ID:???
電動ナナシよ
初心者にえらぶっておもしろいか?
とゆーかいちいち完成済みのコードかきやがって
暇だねーというかお節介っすね

932 :名無しさん@お腹いっぱい。:01/10/12 10:52 ID:???
(´_`).。oO (オイオイ・・・・)

933 :名無しさん@お腹いっぱい。:01/10/12 11:26 ID:???
>>931
何があったかしらんが、めげずに生きなさい。

934 :名無しさん@お腹いっぱい。:01/10/12 11:24 ID:???
>>931
何があったかしらんが、めげずに生きなさい。

935 :名無しさん@お腹いっぱい。:01/10/12 11:26 ID:???
[933:名無しさん@お腹いっぱい。 (01/10/12 11:26 ID:???)]
[934:名無しさん@お腹いっぱい。 (01/10/12 11:24 ID:???)]

タイムスリップ成功!!

936 :名無しさん@お腹いっぱい。:01/10/12 13:53 ID:???
長文だらだら書く奴よりビシッっとソース貼る方がカッコイイにょ
電動は漏れと同じく漢だと思うにょ

937 :名無しさん@お腹いっぱい。:01/10/12 14:11 ID:???
>>931
何があったかしらんが、めげずに生きなさい。

938 :電動ナナソ:01/10/12 14:55 ID:???
                 ┌─┐
                 |も.|
                 |う |
                 │来│
                 │ね│
                 │え .|
                 │よ .|
      バカ    ゴルァ  │ !!.│
                 └─┤    プンプン
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д)
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎−>┘◎

939 :教えて君:01/10/12 15:26 ID:???
>>936
アンタが漢かどうかはともかく、
わざわざ答え教えなくてもいいと思うんだけど。

940 :名無しさん@お腹いっぱい。 :01/10/12 15:46 ID:???
へえ、色んな考えかたが有るんですねえ

教えて君さまの一般的なレス
「君ここで聞く前にやる事有るんじゃ無いの? (以下略)」

電動ナナシさまの一般的なレス
「これで分かるはず」以下ソース

どっちが有用なのかなあ 

941 :名無しさん@お腹いっぱい。:01/10/12 15:55 ID:IiySbKj2
長文ソースだらだら書かれるよりビシッと解答書く方がカッコイイにょ
電動は漏れと同じく朕だと思うにょ

942 :  :01/10/12 16:02 ID:???
>>931は自力で理解するのに一晩掛かった口なんだよ、相手しちゃダメだって
それに電動ナナシは>>930で/**このコードを見れば何が起きているか分かるだろう**/
と言っているよ、別に答えを書いた訳ではない。
電動ナナシの投稿はポインタだけ的確に示した簡潔なのばかりじゃん

>>教えて君
あなたMLに同じようなレス撃てます?、それとスレタイトルくらいは読む様にしようね

俺はむしろ結果書かない質問者にムカツクよ。。

943 :教えて君:01/10/12 16:24 ID:???
>>940
>>942
正直、スマンカッタ

944 :名無しさん@お腹いっぱい。:01/10/12 17:13 ID:???
(・∀・)マァマァ マターリシヨーヨ-
//php人口は少ないんだからさ

945 :( ´∀`):01/10/12 17:35 ID:???
( ´∀`)この板はまじめな人ばかりなのれす  てへてへ

946 :名無しさん@お腹いっぱい。:01/10/12 18:24 ID:???
この板って少数精鋭らしいね。
きっと住人は揃いも揃って一流のハッカーなんだろうね。

947 :名無しさん@お腹いっぱい。 :01/10/12 18:34 ID:???
(´-`).。oO(ハッカーって何だろう?・・・)

948 :電動ナナシ:01/10/12 18:40 ID:???
質問するヤツ、
答えをそのまま書くヤツ、
PHP の仕事がないのでリハビリ代わりにコードを書いて確認するヤツ、
ヒントだけ書くヤツ、
嘘を書くヤツ、
答えを知っているけど笑って ROM しているだけのヤツ(これが多いと思う)、
質問者を煽って遊ぶヤツ、
回答者を煽って遊ぶヤツ、
煽り返して遊ぶヤツ、
吉野家のコピペをするヤツ・・・

いろいろいていいじゃんとか思うのだが。

板のポリシーが「答えをそのまま書かない」ということなら従う。

949 :名無しさん@お腹いっぱい。:01/10/12 19:01 ID:ID88ygPo
余所様のウェブサーバ(php3.0.15_i18n)用にPHPウェブアプリを
作ることになりました。XMLの読み込み、解析を行いたいのですが、
外部のParserを使用せず、PHPだけのライブラリみたいなものを
使いたいんです。
Vectorにphpdomというライブラリがあったんですが、他に
同様のものをご存知ないですか。

950 :名無しさん@お腹いっぱい。:01/10/12 19:02 ID:???
ポリシーなんかネーヨ 好きなように書き殴ろうぜ〜
因みに俺は、これ流行るんじゃねえだろな、とか思ってこっそりやってるクチ
今の所役に立ってない w
php屋ってちょっと年齢設定高めな気がすんだけどその辺どうよ?俺の周りだけか・・
言語の発展に厨房の導入は必須だと思うんだが、稼げるかどうかは別にしてさ
ちゅうか、ここは学生さんが多いのかな? スレ違いスマソ

951 :電動ナナシ:01/10/12 21:00 ID:???
1000 までマターリ雑談でもするかなあ。
質問は新スレ立ててやってもらうことにして。
# つうことで、自分はもうこのスレでは回答しないから。

>>950
PHP の仕事って思ったほどないというのが実感。自分もここ 1 年ほどは
PHP の仕事を受けていない。PHP でプロト作って反応見て、Servlet で
書き直すというパターンならいくつかあったが・・・。

年齢については、COBOL->VB と来ていた人間が、Web App 書くのにあたり
PHP を選んでいるからという事情があるからじゃないかな。前にも書いたが
まずHTML書く -> PHP で一部書き直す -> (゚д゚)ウマー という流れで
とりあえず動くものができてしまう PHP はこういう層にはとっつきやすいと
思う。

言語の発展における厨房導入の必要性は同感。こういった層が入門書や
セミナーの需要を掘り起こして、マーケットとして成立させる要因になると
思う。少数精鋭のエキスパートである Smalltalk マーケットの静かさと
Perl/Java/VB のマーケットを比較すると実感できるのではないかなあ。

952 :名無しさん@お腹いっぱい。:01/10/12 21:14 ID:???
(´-`).。oO(Perlより処理が速いと勘違いして始めたのがキッカケだったなぁ・・・)

953 :教えて君:01/10/12 21:17 ID:???
>>951
># つうことで、自分はもうこのスレでは回答しないから。
これってひょっとして漏れのせい?だとしたらスマソ。逝かないで〜

>>952
漏れも Perl からの乗換え組が多いんじゃないかと思うんだけど違うかな?

954 :電動ナナシ:01/10/12 21:19 ID:???
>>953
違う違う。新しいスレ (Part2?) への移行を促進しようと思っただけ。
気にせんでええよ。

955 :名無しさん@お腹いっぱい。:01/10/12 21:43 ID:???
Part2には、PEARも参考リンクに追加希望してみたり。

956 :教えて君:01/10/12 21:59 ID:???
>>955
PEAR って http://pear.php.net/ のこと?要る?

957 :名無しさん@お腹いっぱい。:01/10/12 22:57 ID:???
Pearのドキュメント
http://phpdocu.sourceforge.net/peardocs/

958 :教えて君:01/10/12 23:21 ID:???
>>957
あ、こんなのあったんだ… φ(.. )メモメモ

959 :名無しさん@お腹いっぱい。:01/10/13 00:04 ID:GuBSZ4QA
俺大学生だよ。
一応文系・・・なのかな?
世間では「文系と理系のハイブリッド学部」とか言われてるところ。
(実際にはほとんどが文系と理系に別れてしまうけど)
phpは趣味と勉強半々くらいの感覚。
C(かなり初歩)から流れてきたんだけど、phpに慣れるとCやJavaに戻れなくなりそう・・・
ちなみに俺の周辺では結構php人口増えてたりします。
厨房・工房はどうなんだろうねえ。

phpって最初にやるにはいい言語なのかな?
とっつきやすいのは確かなんだけど、後から他の言語に移ると最初は
「なんでこんなめんどくさいんだ!?」的な印象しかなくなりそう。

960 :名無しさん@お腹いっぱい。:01/10/13 15:00 ID:???
PHP 遅いジャン・・・

961 :930:01/10/14 00:35 ID:dLsxEAV6
(´-`).。oO(なんでだろう?>>930の質問誰も答えてくれないや)

962 :教えて君:01/10/14 00:55 ID:???
>>961
質問の仕方が悪いんじゃない?

アーマタタタカレル…

963 :教えて君:01/10/14 01:18 ID:???
>>962
ちなみに漏れは psql に1票
phpPgAdmin に0.1票

964 :電動ナナシ:01/10/14 03:35 ID:???
別ホスト上から psql -h hoge.example.com とかよくやるなあ。
TCP/5432 なパケットが通ったら、の話だけど。
まあ、まずは man psql だな。

Win32 でもこんなのあるぞ。
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html

965 :930:01/10/14 12:29 ID:fc26CS7b
電動氏サイコー

966 :教えて君:01/10/14 12:41 ID:???
>>964
便乗質問いいスか?

漏れもリモートでの psql は結構使うんですけど
クライアント(Windows)側の psql が SSL 対応でないので
仕方なく ssh トンネルにしてます。

Windows native 版 psql が SSL 対応になればいいんでしょうけど多分難しいですよね。
ssh 使う以外に何かいい案はないですかね?

クライアントを UNIX系にすれば、というのはとりあえず却下でお願いします _o_

967 :電動ナナシ:01/10/15 00:38 ID:bXugOMlY
>>967
自分は socks5 を使うことが多い。SocksCap (e-Border Client) を使えば
Win32 な環境からでも Socks 経由で透過的にアクセスできるし。

968 :教えて君:01/10/15 02:28 ID:???
>>967
えーと…質問が悪かったかな。
通信経路を暗号化したいってことだったんスけど…
それとも socks5+SSH2 でってことかな?
やったことないんで勘違いだったらスマソ。

969 :電動ナナシ:01/10/15 03:04 ID:???
おお、自分が勘違い。スマソ。
そういう場合には相手ホストに ssh で入って作業することが多いので、
そもそもそういう問題について考えたことがない。

どうしても Win32 で psql 使う必要があるケースってどんなのがある?
ファイル読み込んで処理って話なら、ssh でファイル転送して先方で
実行させるなあ。長時間中断できないようなセッションを維持するのは
あんまり好きではない。

970 :名無しさん@お腹いっぱい。:01/10/15 08:25 ID:oufjl8XN
PHPでLocationって使えますか?

971 :名無しさん@お腹いっぱい。:01/10/15 10:27 ID:???
>>970
Yes

972 :名無しさん@お腹いっぱい。:01/10/15 10:36 ID:???
>>970
折角日本語マニュアルがあるんだからマニュアルぐらい見ようね。
http://www.php.net/manual/ja/function.header.php

973 :教えて君:01/10/15 12:10 ID:???
>>969

>漏れもリモートでの psql は結構使うんですけど

これはちょっとウソ書いてました。あんまり使いません。
お客さんのDBちょっと確認したいときとか、
いちいち ssh で入るのめんどくさいなぁと思って以前ちょっと試した程度でした。

でもよく考えたらスレ違いなのでいいですわ。スマソ。

974 :名無しさん@お腹いっぱい。:01/10/15 12:38 ID:kZ9OPuZi
php書くのに良いエディターってありますか?

975 :名無しさん@お腹いっぱい。:01/10/15 12:49 ID:???
     ∧ ∧____
    /(゚ー゚*)/)/\.。oO(PHPエディター・・・)
   | ̄∪∪ ̄|\/
   |  しぃ  |/

976 :教えて君:01/10/15 17:50 ID:???
PHP3 で日本語の通る CMS って何かあります?
サバーの関係で PHP4 が使えないので nuke とかはダメなんです。

977 :教えて君:01/10/15 17:52 ID:???
>>974
プラットホームは?
まぁ Emacs 系を覚えておけば「ヤパーリJAVA」とかになっても潰しが効くと思われ。
ちなみに漏れは vi (vim)だけどな。

978 :名無しさん@お腹いっぱい。:01/10/16 10:06 ID:5UouTm5O
>>977
win98です。

979 :教えて君:01/10/16 10:27 ID:???
>>976
漏れ、カンチガイしてたかも…
PHP-Nuke って PHP3 でも逝けるみたいですね。
PHP4 必須なのは PostNuke ですね。
他にお勧めの CMS ってありますか?

980 :電動ナナシ:01/10/16 12:34 ID:cE86s8qI
これは?
http://phpslice.org/
ベンチマークで PHPNuke を圧倒していると主張。

あと適当に。
thatphpware: http://www.thatware.org/
ez Publisher: http://developer.ez.no/

その他情報源
http://www.camworld.com/cms/
http://www.idg.co.jp/lwonline/backnumber/200105/20010510_01_column.html

981 :名無しさん@お腹いっぱい。:01/10/16 12:43 ID:???
そろそろ次スレ立てる?

----------------------------------------------------------
PHP質問スレッド Pert 2

レスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。

参考リンク
■本家
http://www.php.net/

■Japan PHP Users Group
http://www.php.gr.jp/

■PHP 日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html

■PHP日本語マニュアル
http://www.asakawa.ne.jp/doc/php/ja/sjis/

■Pearのドキュメント
http://phpdocu.sourceforge.net/peardocs/

■前スレ
http://ebi.2ch.net/test/read.cgi/php/982687820/
----------------------------------------------------------

って感じで良いですかね?
Pearのドキュメントって>>957
http://phpdocu.sourceforge.net/peardocs/
で良いのかな?

982 :名無しさん@お腹いっぱい。:01/10/16 12:44 ID:???
あ、>>1のマニュアル古いから

http://www.php.net/manual/ja/

の方が良いか。

983 :名無しさん@お腹いっぱい。:01/10/16 21:51 ID:EB9eJBdu
PHPで掲示板作ってるんだけど、PHPってPerlと比べると
配列が使いにくいね。PerlでCGI組むときもforeachを多用してたから辛い

984 :名無しさん@お腹いっぱい。:01/10/16 22:05 ID:???
>>983
PHPでもforeach使えば?

985 :名無しさん@お腹いっぱい。:01/10/17 01:11 ID:iw1O0Jfh
>>981
とりあえず立てときましたー。
これでいいかな?

http://ebi.2ch.net/test/read.cgi/php/1003248641/

986 :しっぽなしきつね:01/10/17 01:30 ID:???
おつカレー、お決まりコピペ♪

             , -―- 、
        , l[》《]|      ヽ
        / i/ i ノノノ ))))〉     / ̄ ̄ ̄ ̄ ̄
.      / i i |(リ ( | | | !    / 質問に答えてくれたみなさん
      〈ヘ|_|l| l ゝ~ lフ/|   <.  .ありがとうっ
       / | | |( ヽwliヽ |       \ このスレはおしまいだよ。
      / /! | l ヘ《~ヘii~∧ ∧     \_____
     /  /ノノ! ノ|リ〉 \/( ゚ω゚)
   / ,  ./-‐- 、/V\ハ_ヲUU
   !/ ./    / / |   ゝ つつ
   ヽ_/   ./    !    jj  \
       /               i
      〈   /        |      |'
       ゝ /    l    |   !/
        `〜‐-L__」〜'^

987 :age:01/10/17 04:16 ID:???
あげ

988 :名無しさん@お腹いっぱい。:01/10/17 05:34 ID:???
>987
なんでやねん(藁

989 :JAPU ◆JAPUTeX. :01/10/17 06:28 ID:???
書けないスレに意味はあるのでしょうか?

こちらへどうぞ:
http://ebi.2ch.net/test/read.cgi/php/1003248641/l50

990 :名無しさん@お腹いっぱい。:01/10/17 09:36 ID:Q8MYyC2u
とりあえず最後の質問って事で御願いします。

$okane
に数桁の数値が入ります。お金の値なので表示する時に
自動的に3桁ごとにカンマを打ちたいのですが可能でしょうか。
printf を使えば出来るような噂を聞いたのですが。。。

991 :名無しさん@お腹いっぱい。:01/10/17 10:08 ID:???
>>989
そのスレはもう終了したよ。
全ては1の責任。

992 :990:01/10/17 10:48 ID:Q8MYyC2u
$okane = "123456";
while (/\d{4}(\,|$okane)/){
s/(\d)(\d{3})(\,|$okane)/$1,$2$3/;
}
print "$okane";

どこが間違っていますか?

993 :名無しさん@お腹いっぱい。:01/10/17 10:48 ID:???
>>990
なんでマニュアル見ないかな。
printfのから簡単にたどれるし。
number-format
http://www.php.net/manual/ja/function.number-format.php

994 :名無しさん@お腹いっぱい。:01/10/17 10:53 ID:???
>>991
新スレ立てたよ。
http://ebi.2ch.net/test/read.cgi/php/1003248641/l50
の1は削除依頼出しておいてね。

995 :名無しさん@お腹いっぱい。:01/10/17 11:02 ID:???
新スレは、
http://ebi.2ch.net/test/read.cgi/php/1003283567/l50

996 :985:01/10/17 19:28 ID:???
俺か・・・
鬱だ。
夜になったら削除依頼出しに逝ってきます。

997 :名無しさん@お腹いっぱい。:01/10/17 20:04 ID:???
ははは、、、お疲れなの ヽ(´ー`)ノ

998 :_:01/10/17 23:36 ID:???
_

999 :999:01/10/17 23:42 ID:???
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚∀゚ノ,っ━~  <  で、999は俺だよ。999!
_と~,,,  ~,,,ノ_. ∀  \_
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻

1000 :1000:01/10/17 23:44 ID:???
はい次いってみよー

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

316 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)