トップページ⇒php
1001コメント350KB

【PHP】質問スレッドPart3

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/02/17 13:23ID:N+9Uw5dE
レスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。

<<参考リンク>>
■本家
http://www.php.net/
■PHP日本語マニュアル
http://www.php.net/manual/ja/
■JapanPHPUsersGroup
http://www.php.gr.jp/
■PHP日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html
■Pearのドキュメント
http://phpdocu.sourceforge.net/peardocs/

<<過去スレ>>
■【PHP】質問スレッドPart1
http://ebi.2ch.net/test/read.cgi/php/982687820/
■【PHP】質問スレッドPart2
http://pc.2ch.net/test/read.cgi/php/1003283567/

<<教えて君>>
■ここ見習って書き込んじゃ、駄目よ
http://pc.2ch.net/test/read.cgi/unix/1011345180/242-245
0573nobodyさん02/04/16 12:03ID:???
==2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数:102115人 発行日:2002/03/12
どもども、人格障害者のひろゆきですー。
今日は重大なお知らせがありますですー。
これまで2chでは、企業に対する真偽の曖昧な書き込みは削除しませんでしたが、これからは削除依頼が出たら一旦全て削除して、その真偽をおいらが責任を持って調査し、真実であると確信した時点で改めて復帰させ公開することにしましたですー。。。
これまでは企業に対して、書き込みの内容が嘘であることを「証明してみろ」という傲慢な態度を示してきましたが、これからはおいらが書き込みの内容が真実であることを証明してから大衆の目に触れさせることにしますですー、、、
いやぁ、よく考えると始めからこうするのが当然だったのかも知れませんねー。。。

ちなみに最近はDHCの裁判の模様をお伝えしてますが、それも話半分で聞いていてくださいー、、、
おいらは相手側の主張の極一部を抜き取って、自分の都合の良いように歪曲して報告してますが、その前後の話も含めれば本当は全く違う状況なんですよー、、、えぇえぇ、、、
おいらってば本当に卑劣な人間なんですよー。。。
向こうの弁護士さんも相当に怒っていると思いますですー。。。

ついでに言っておきますが、DHCの件もこれまでと同様に旗色が悪くなったら報告するのを止めますので予めご了承くださいですー、、、
本当は結果まで全て真実を報告して、もし削除するよう決定がくだれば、相手側の企業に対する謝罪のひとつでも掲載するべきなんですよねー。。。
おいらってば人格障害者なもんで許して欲しいですー。。。

んじゃ!
0574nobodyさん02/04/16 13:05ID:???
>>573 省略された部分
激しくワラタ
0575nobodyさん02/04/16 13:09ID:???
>>572
HTMLの中に書いてくからとっつきやすいだけでしょ
0576nobodyさん02/04/16 13:34ID:???
>>572
簡単ってよく言われる割には、Perlみたいに自作スクリプト配布してる人
少ないよね。(国内限定で)
もうたいていの鯖でPHPは動かせるし、Perlよりも設置は簡単だと思うんだけどなぁ。
(/usr/bin/perlのパスを変更する手間が無いから、
初心者が躓く原因を一つだけ減らせる)
0577nobodyさん02/04/16 15:26ID:???
>>575
それよりも、見た目がまんまCで覚えることが少ないからじゃない?
0578nobodyさん02/04/16 18:23ID:???
phpやりはじめたけど難しいです・・・・・
perlだと
$hoge =~ /(\S+)\s+(.+)/;
print "$1 : $2";
って書いてたもの、phpだとどんな風に記述するんでしょうか?
eregで\Sとかにマッチしなくて泣きそうです。
0579nobodyさん02/04/16 18:24ID:A/BDgF1b
>>576
>もうたいていの鯖でPHPは動かせるし
そうか?半分くらいのような感覚なんだけど。
あと、データベースが使えるところはさらに少ない。
DB連携できないならPerlでも十分だしね。
負荷の問題はあるけれども。
0580 ◆AngelBlk 02/04/16 18:27ID:???
>578
http://jp.php.net/manual/ja/ref.pcre.php
この辺じゃだめなの?

>575
あと、PHPはWebに使うこと前提で作られてるから、
Web関係扱うのに役に立つ関数群が充実してる。
htmlspecialcharsやtrimとか。
0581nobodyさん02/04/16 18:40ID:???
なんとpregなんて便利なものがあったのね・・・
ありがとうございました。
0582nobodyさん02/04/16 21:01ID:???
phpって、クラス内変数とかメソッドとか呼び出すとき、いちいち
$this->str とか $this->method() ってしなきゃいけないの?
0583nobodyさん02/04/16 22:07ID:???
>>575
そのとっつきやすさって結構重要だよ。しかもperlより
WEB向きなんだし。〜より簡単なのって優れた事なんじゃないの?
何かプライドでもあるのかプログラマってのはよくわからん。
実際Cやってた人間から見ると圧倒的にPHPの方がとっつきやすい。
Perlからクソめんどくさい事抜いたらPHPになったって感じなんだけどなあ。
0584 ◆AngelBlk 02/04/16 22:22ID:???
>583
とりあえず、自分的にはヘッダ関係考えなくていいだけで
PHP楽だ〜って思ったよ・・・。


超遅レスだけど。
>446
どうやら、CGI版PHPじゃないと<STDIN>(だったかな?
が空になってる模様。
CGIとして動作してるPHPなら出来そうという意見が。
0585nobodyさん02/04/17 02:17ID:???
>>571
1ページ目が.htmlの掲示板で、それをやろうとしたけど
できなくて、諦めたよ。
NNでは化けないけど、IEだと化けたような覚えがある。
0586nobodyさん02/04/17 16:09ID:???
PHP4.1.2にバージョンアップしたら、session_start();するだけで
Fatal error: Failed to initialize session module
って初期化に失敗するんだけど、これって何故?
MLの過去ログに同じ現象の人見つけたけど、誰もレスして無かったよ。
phpinfo見ると、sessionは有効になってるんだけどなぁ。
058758602/04/17 16:18ID:???
>>586
あぼーんします。
カスタムセッションハンドラ使ってました。
0588nobodyさん02/04/17 20:29ID:???
RFC822形式の日付(date("r"))を、Epochに逆算する関数ってある?
ereg&mktimeでやるしかないのか。
058958802/04/17 20:30ID:???
PHP 4.1.2
0590nobodyさん02/04/18 03:34ID:IMuTE+9J
質問です。

Windows版 php4.1.2 + IIS 4 on NT な環境です。
スクリプトの中で、そのスクリプトを実行するユーザー毎に
8文字位のパスワードを生成したいのですが、Win環境な為、
crypt() 関数が使えません。

とりあえず md5() の結果の頭8文字を取ってきてパスワードと
しているのですが、結果が16進数なので数字ばかりであまり
好きではありません。ユーザーID毎のパスワードなのでダブっても
いいのですが、できればアルファベット26文字+数字の組み合わせを
パスワードとしたいのです。

Win環境で簡単にランダムな英数字の文字列を生成する方法はないでしょうか。
059158802/04/18 10:11ID:???
16進数を(26+10)進数に、変換すればいいだけじゃないの?
0592nobodyさん02/04/18 12:17ID:8LmMiEMy
単純なメールフォームをphpでつくってます。
php.iniの設定は以下の通りです。
------------------------------------------------------------
mbstring.detect_order ----- auto
mbstring.http_input ----- auto
mbstring.http_output ----- pass
mbstring.internal_encoding ----- EUC-JP
mbstring.substitute_character ----- no value
------------------------------------------------------------
フォームを置いているindex.phpはEUCです。
そこから呼び出してメール送信させるmail.phpの中身もEUCです。


なのに、
メール本文のうち、
・index.phpで入力した日本語(value)
・mail.phpの中に書き込んでる日本語(<値一覧>みたいな日本語>
が文字化けしてしまいます。

なお、index.phpの<input type="text" name="なまえ" value="">
とある「なまえ」の文字は、正常にメールに表示されてます。

なぜなのでしょうか?お教えいただければ幸いです。
0593nobodyさん02/04/18 17:29ID:4lmPxRyS
//●1
//まず変数がこのようにあるとします。
$aaa1 = "A";
$aaa2 = "B";
$aaa3 = "C";

//●2
//画面に出力
echo"$aaa1<BR>\n";
echo"$aaa2<BR>\n";
echo"$aaa3<BR>\n";

↓

■結果
A
B
C

===================================================
初歩的な事で申し訳ないのですが以下の質問があります。
===================================================

●2の部分で、1つづず「echo」で出力するのではなく
「for」等で出力するには、

for($i=1; $i<=3; $i++){
echo"$aaa$i<BR>\n";
}

のように考えたのですが、うまく ■結果 のようには出来ません。
どのようにすればうまく表示できるのでしょうか?
よろしくお願いします。
059459002/04/18 19:11ID:IMuTE+9J
>> 591
それって、どのようにして変換すればよいのでしょうか?
ソースをご教授いただけると助かります。
0595nobodyさん02/04/18 19:54ID:???
>>593
http://www.php.net/manual/ja/language.variables.variable.php
0596nobodyさん02/04/18 20:04ID:???
>>568
いくつかのファイルをphpとして動かす場合はどう書けばいいの?


0597nobodyさん02/04/18 20:11ID:???
しかし、悲しくなるくらい低レベルなスレだな・・
059859002/04/18 21:20ID:IMuTE+9J
こうかな。

$password = substr( base_convert( md5($string), 16, 36 ) , 0, 8 );
0599nobodyさん02/04/18 22:33ID:???
>>511 から質問したものです。

未だに成功しないので、質問させて下さい。
perlアクセス解析cgiをPHPから動かしたいのですが、
systemで引数?(GET?)が渡せません。
system("/home/user/www/cgi-bin/hoge/stat.cgi?LOG=index") はダメです。
LOG=indexの渡し方を知ってるかたいますか?
0600nobodyさん02/04/18 23:00ID:???
>>592
mail()のメールヘッダ部分で文字コードの指定してる?
してなければたぶんそれが原因。
0601nobodyさん02/04/18 23:09ID:???
>>599
env QUERY_STRING=LOG=index /home/user/www/cgi-bin/hoge/stat.cgi
0602 ◆AngelBlk 02/04/18 23:53ID:???
>597
一時期、もっと楽しかったんだけどなぁ・・・。

そういえば、PHP4.2.0RC4どうなん?
流石に他の人に貸してる環境に入れることも出来ず
様子見してるんだけど。
060359202/04/19 00:03ID:bxirOF7Z
>>600 さんありがとうです。
「Content-Type: text/plain; charset=iso-2022-jp」のことですよね。
つけてなかったのでつけたのですが、そしたら本文が全部文字化けしてしまいました。
(半角かなばっかり。これってどういう化けかたでしたっけ???)

なお、サブジェクトは正常に日本語が表示されてます。
($subject = mb_encode_mimeheader("EMAIl FROM どこそこ"); としてます)

あと言い忘れましたが(すみません)、FreeBSD 4.2 で、PHP4.0.6 です。
0604nobodyさん02/04/19 00:06ID:???
>>603
EUCで渡してるならcharsetをEUC-JPにしないと。

俺は
http://www.spencernetwork.org/
を使ってタイトル、ヘッダ、本文を全部iso-2022-jpに変換してやってる。
0605592=60302/04/19 00:58ID:stB036rz
>>604
ありがとうございます。とりあえず自分も、http://www.spencernetwork.org/ を使って動きました。

ただ疑問なのが、別のサーバ(RedHat6とPHP3)で、
   mail($Mailto,i18n_mime_header_encode("さぶじぇくと"),"にほんご")
ってだけで(このphpファイルはEUC)、ちゃんとJISのメールが送られて、
しかも、「Content-Type: text/plain; charset=iso-2022-jp」が付いている例が
あるんですよ。

だから、とくに文字コードを意識しなくても前述のようにメールが送れると今まで思いこんでいて。。。
この別のサーバで正常に送れているのは、PHPでなく、Sendmailか何か別の設定のせいなんでしょうか・・・?
0606 ◆AngelBlk 02/04/19 07:28ID:???
>605
そのPHP3って、国際化バージョンでは?
文字コードの自動認識とかは、PHP3のが強かった気がする。
PHP4でやるなら、明示的に指定したほうが事故ないですよ〜。
0607nobodyさん02/04/19 09:11ID:???
>>601
お返事ありがとうございます。色々試しましたが、うまくいっておりません。

include("env QUERY_STRING=LOG=index /home/user/www/cgi-bin/hoge/stat.cgi"); //ダメ

こんなこともやってみましたが、ダメでした。
system("QUERY_STRING=LOG=index"):
system("export QUERY_STRING");
system('/home/user/www/cgi-bin/hoge/stat.cgi"); // エラーとなる。

ちなみに、上記表示で見えたところでは、サーバはLinuxでシェルは、bashです。(telnet不可)

他に stat.cgi にQUERY_STRINGを渡す方法はあるでしょうか?
0608nobodyさん02/04/19 09:56ID:3KXoKyNv
PHP + MySQL
http://pc.2ch.net/test/read.cgi/php/983250751/209-213
から飛んできました。

Apache + mod_php を使っています。
データベースにアクセスするパスワードなんかをスクリプトに埋め込んで、
そのスクリプトを他のユーザに詠まれないようにしたい、ということです。

CGI なら suExec で user=www ( or nobody) => user=ore に
権限を変更できるので、パーミッション 600 で OK なんですが、
モジュールの場合は user = www ( or nobody) のままなので
600 にはできないです。

結局

safe_mode = on
safe_mode_exec_dir = "."
open_basedir , doc_root を適切に設定。

を適切に設定することで何とかなりそうかな、ということだったんですが、
それでもパスワードを含むスクリプトを 600 にはできないですよね?
となると、ssh とかでログインして作業している他のユーザには
読まれてしまうわけで……

まだあんまりやったことないですが PHP を CGI として動かそうかな、とか。
0609nobodyさん02/04/19 10:17ID:???
>607
>system('/home/user/www/cgi-bin/hoge/stat.cgi"); // エラーとなる。
これそのままコピーしてきた奴?
だとしたら、「""」でちゃんと閉じてないよ。最初の方が「'」になってる。

あと、
http://www.itboost.co.jp/php/php_05.phpに説明がある

system("/home/your/bgprog $arg1 $arg2 > /dev/null &");

ではダメ?
0610すえぐぜく?02/04/19 11:40ID:3KXoKyNv
http://www.php.net/ への投稿でも結局のところ次のような感じでした。

[email protected]
24-Mar-2002 12:09

If you install PHP as a CGI (http://www.php.net/manual/en/security.cgi-bin.php)
and then set up Apache with suexec enabled (http://httpd.apache.org/docs/suexec.html),
you can set your PHP scripts' permissions to 700, thereby making it more
difficult for other users of the system to get at your MySQL passwords. I
like this setup anyway, because under it a user's script runs with the
user's ID. Scripts thus inherit the user's permissions and can read and
write files without setting the files' permissions so as to open the files
up to other users -- handy for the user and the sysop, from a security
point of view.

Sure, running PHP as a CGI isn't as efficient as running it as an Apache
module (according to my informal benchmarks, the former setup can only
handle about one third as many concurrent users as the latter), but for
many people, the added security is worth the performance trade off.

いや、やりたかったのは Xoops っていう PHP ベースのポータルサイト構築
ツールを使いたかったんですが、その config.php ファイルに MySQL への
接続パスワードを書くようになってるので、パーミッションを 600 にしたい、
ということだったんです。

んが、さっき CGI として Xoops を動かしてみようとすると、動かなかった……
0611nobodyさん02/04/19 12:29ID:3oF7V8+F
PHP4のScriptをPHP5に移行する時は、
ソースの書き換えが大量に発生する予感
とdev側でアナウンスされたというのはマジ?

前に日本語MLでちらっと話が出てたのだけど、気になって
JSPに移行しようかと悩む今日この頃

>>610
パスワードを返すところだけ、PHP以外を使うというのはどう?
0612 ◆AngelBlk 02/04/19 12:57ID:???
>611
マジかと。
で、PHP-dev ML.JPでは

<?php version="5.0"
?>

という風にバージョンわけ出来るように話して見ます?
みたいな事が投稿されてました。

まあ、PHP4とPHP5を一緒にインストール出来るように
なっていれば、そこまで問題ならないような気もするけど・・・。

php.iniでPHP4 or PHP5というのをディレクトリ別に
設定できるとうれしいかも。
0613nobodyさん02/04/19 14:37ID:3oF7V8+F
>php.iniでPHP4 or PHP5というのをディレクトリ別に
>設定できるとうれしいかも。

うちもうれしいかも
鯖管が新しい物好きという困った状況の時
拡張子phpをphp4にする作業がなくなるかも
0614nobodyさん02/04/19 15:22ID:uydc7dr5
変数を自動的に割り当てたいんですが何か良い方法ありますか?
たとえば、
$a=1;
while($a < 5){
$a++;
$wari=5+$a;
echo $wari;
}
というようなプログラムでこの$wariを
値が6のときは$wari1、値が7のときは$wari2・・・みたいに
名前を自動的に変えたいのですが。

いい方法を知っていらっしゃる方がいたら是非ご教授お願います。
ちなみに、実際作っているプログラムでの$wariの値はデータベ
ースの検索結果を当てています。
0615nobodyさん02/04/19 15:25ID:uydc7dr5
あ、言い忘れました。
>while($a < 5){
ここの5という数字は適当です。
今書いてるプログラムではここに当てはまる数字がいくつでも対応する
ようにしなければいけないです。

すいませんが、よろしくお願いします。
0616nobodyさん02/04/19 19:11ID:Kja3u5oC
${wari$a}=5+$a;
0617nobodyさん02/04/19 23:05ID:???
>>612
「いちおうdevloper」な立場から言わせて頂くと、
versionディレクティブが採用される確立は0に
等しいです。良いアイデアだとは思いますが。

ただ、4->5のスクリプトコンバータは作成される
可能性があります。

i18n関連はこれから実装されるでしょう。ただ、
なんとなくな方向性が決まっているだけなので
どうなるかはまだ分かりません。
0618 ◆wfMSpsRY 02/04/19 23:13ID:???
>>608
>それでもパスワードを含むスクリプトを 600 にはできないですよね?

別にソース内にパスワードを書く必要は無いでしょ。

PHPでパスワードファイルを作成し、パーミッションを 600にします。
パスワード作成のPHPは削除します。(これを覗かれたら意味無い)
パスワードファイルの所有者は www (apacheのUser 以下wwwと表記),パーミッションは 600 になるので、
www 若しくは root 以外では開く事は出来ません。

CGIはsuexecにより、www以外のユーザで動くようにします。

これで www もしくは root 以外ではパスワードファイルは覗けない事になります。
しかしこのままでは他人のPHPから覗けることになるので、safe_mode等で制限するのです。

# ポイントは「PHPでパスワードファイルを作成」です。
# PHPで作成したファイルは所有者が www なのでパーミッションを600にしてもPHPから読み込めます。
# また、CGI、SSHなどでは読み込めなくなります。
## ローカルでパスワードファイルを作ってFTP/SSHでログインしてvi等でパスワードファイルを作成
## では所有者がwwwでは無いのでパーミッションを600にするとPHPからパスワードを読み込めなくなります。

わざわざパスワードファイル作成用のPHP作らないといけないし、パスワードファイルの
削除もPHPから行わないといけないし結構面倒です。

# けど、コマンドライン版PHPでCGIとして動かすぐらいならPHP止めて、Perl使うな俺は。
##(あくまで個人的にはです。理由は色々。)

suexecに対応すればそれが一番簡単なんですけどね。PHP5で対応してくれないかなぁ。
0619nobodyさん02/04/19 23:40ID:???
>php.iniでPHP4 or PHP5というのをディレクトリ別に
>設定できるとうれしいかも。

php.iniでは無くhttpd.confや.htaccessの範疇だと思いますが。
0620 ◆AngelBlk 02/04/19 23:57ID:???
>617
うーん、そうなんだ。
残念。

コンバータはどうなんだろう・・・。
結局手直しがかなりいりそうな予感も。

>618
suexec(またはそれに変わる何か)には対応してほしいね。
そのあたり、話にでてるのかなぁ・・・。
英語MLは読んでないから、情報ほしいところ。

>619
あー、そうっスね。
ディレクトリ別の設定ならphp_valueか。
0621nobodyさん02/04/20 04:25ID:Mslw1o2N
windows版(apache+php4)にて、コンテンツ作成しているんですが、
phpでのBasic認証ができません。
下記ソースにアクセスすると、[500 Internal Server Error]を返します。
apacheのerror.logには、「Bad header=HTTP/1.0 401 Unauthorized: c:/php4/php.exe」なんて
かかれてます。
もしかして、windows版phpは、これ使えないのでしょうか?
ちなみに、同じソースをLinux版で試すとokでした。

=====
<?php
if (!isset($PHP_AUTH_USER)) {
header("WWW-Authenticate: Basic realm=\"My Realm\"");
header("HTTP/1.0 401 Unauthorized");
echo "ユーザーがキャンセルボタンを押した時に送信されるテキスト\n";
exit;
} else {
echo "<p>こんにちは、$PHP_AUTH_USER さん。</p>";
echo "<p>あなたは、$PHP_AUTH_PW をパスワードとして入力しました。</p>";
}
?>
===
0622nobodyさん02/04/20 08:37ID:???
>>621
C:\php\にちゃんとphp.exeはあるのか?
0623nobodyさん02/04/20 13:01ID:???
header("Status: 401 Unauthorized");
にしてみたら?
0624nobodyさん02/04/20 14:48ID:???
Apacheモジュールとして動かしてる?
0625nobodyさん02/04/20 22:08ID:Mslw1o2N
621 です。
phpをCGI版じゃなく、Apacheモジュールとして動作させ
解決しました。どうもでした。
0626nobodyさん02/04/20 22:17ID:dRKvCqvI
warning Inside of the start "/www/flashkit/php/DB_.inc" which went wrong for :inclusion (include_path=":/www/flashkit/board:/usr -- /local//php / release / php:/www/flashkit/html is stacked -- ") /www2/flashkit/html/jump.php on-line 4
Fatal error : The member function on a non-object is called. It is a /www2/flashkit/html/jump.php on-line. 5
これは、どうゆう意味でしょうか?ご教授ください。
0627nobodyさん02/04/20 23:51ID:???
英語というだけで努力を放棄する人間が多いと思いませんか?
0628nobodyさん02/04/21 00:25ID:???
英語だけど読んでごらん。
Fatal error : The member function on a non-object is called. It is a /www2/flashkit/html/jump.php on-line. 5
0629nobodyさん02/04/21 00:50ID:wb3vDYFU
PHPの勉強するときって、ローカルの自分のマシンだけでできるの?
Windows2000だけでできるの?
Linuxとか使わないとだめ?
0630nobodyさん02/04/21 01:04ID:???
>>629
数レス前のログさえ読まないお馬鹿さんにはPHPの勉強は無理だと思われ。

>>626
中学校から人生やりなおせ。
0631あえてウソを教えてみる02/04/21 09:49ID:???
>>629
そうだよ。君には Linux が必要だ。
何冊か本や雑誌を買ってきて、勉強しながらインストールしてみよう。
0632nobodyさん02/04/21 11:47ID:/tnBoE3S
英語ぐらいは読めるんですが、どのような警告と致命的エラーかが
知りたいんですよね。
0633nobodyさん02/04/21 12:17ID:???
警告:warning Inside of the start "/www/flashkit/php/DB_.inc" which went wrong for :inclusion
エラー:The member function on a non-object is called.
0634nobodyさん02/04/21 14:31ID:???
>>632
ふーん。読めるのに意味が分からないのか。
やっぱ中学校からやり直しな
0635nobodyさん02/04/21 15:37ID:???
phpだとPATH_INFOでいろいろ渡せないんですか?
http://〜/hoge.php/zzz みたいに使いたいんですが・・・・
0636nobodyさん02/04/21 15:57ID:???
渡せるか渡せないかはCGIかPHPかで決まるんじゃなく
サーバソフトで決まるだろ。
063763502/04/21 16:22ID:???
私もサーバ側で決まるんだと思ってたんですが、hoge.php/zzz だと404が出て、
hoge.cgi/zzz は期待通りに動くので、phpだとできないのかと思った次第です。

サーバの環境としては、Apache2.0.35にphp4.2RC3をDSOで入れてあります。
0638名無しさん02/04/21 17:05ID:???
>>637
どうやってPATH_INFOを取得しようとしてるのか、その部分のコードを書け。
0639taketyan ◆JQJvqZpw 02/04/21 17:13ID:???
PHPってソケットみたいなことできますか?
0640nobodyさん02/04/21 17:22ID:???
>>639
http://jp2.php.net/manual/ja/ref.sockets.php
これではダメなのかえ?
064163502/04/21 17:23ID:???
うーん、取得以前の問題で、hoge.php/zzzとかをリクエストすると404NotFoundになってしまうんです。
今のところ、hoge.phpとしては、
<? print "hello"; ?>
しか書いてません。
実際にPATH_INFOを取得するのはこれがきちんと動いてからやろうと思ってます。
hoge.cgiの方は、
#!/usr/local/bin/perl
print "Content-type: text/plain\n\n";
print "hello", $ENV{PATH_INFO};
で、正常に稼動しています。
0642nobodyさん02/04/21 17:30ID:???
PATH_INFO付けなくても404になるってオチだったら殺す。
064363502/04/21 17:33ID:???
それだけはないから安心してください。
0644nobodyさん02/04/21 17:55ID:73tQq+TH
そういえば、PATH_INFO使うと virtual() が正常に動作しないんだよね。
PATH_INFO使わないで参照すると正常に動作するんだけど。
0645nobodyさん02/04/22 02:36ID:AXvATEcm
教えてください。
プログラムの問題ではないので恐縮ですが、
*.phpでHTML表記部分(?)の<A href="#NAME">がうまくいかず、困ってます。
拡張子を*.htmにするとうまくいくのですが、
これはどうすればいいでしょうか。
0646nobodyさん02/04/22 03:20ID:???
教えてください。
プログラムの問題ではないので恐縮ですが、
>>645の人は何がうまくいかない為状況が判らず、困っています。
私の環境ではうまくいくのですが、
コヤツにどう答えればいいのでしょうか。
0647nobodyさん02/04/22 03:21ID:???
>>645の人は何がうまくいかない為状況が判らず、困っています。
   ↓
>>645の人は何がうまくいかないのか書いていない為、状況が判らず、困っています。


鬱だ詩嚢
0648nobodyさん02/04/22 03:36ID:???
<?
$new_w=100;
$new_h=100;

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

$dst_img=ImageCreate($new_w,$new_h);

$src_img=ImageCreateFromGif("./test.gif");

ImageCopy($dst_img,$src_img,0,0,0,0,ImageSX($src_img),ImageSY($src_img));

ImageGif($dst_img);

?>

test.gifは20×3の画像。色は赤一色。
この画像を$dst_imgに重ねたいのですが、
上記ソースを実行しても、100×100の赤く塗りつぶされた画像になってしまいます。
$dst_imgの背景色を白として、test.gifを重ねるにはどうしたらよいのでしょうか?
0649nobodyさん02/04/22 03:39ID:???
>>645
百万回ソースを見直せ。
実際に動かして表示されたページのソースを保存してさらに百万回見直せ。
0650nobodyさん02/04/22 04:02ID:???
>>648

バックグラウンドに使用する画像は空という罠。
おとなしくバックの白い画像も用意するのが吉。
065165002/04/22 04:13ID:???
スマソ
ImageCreate使った後に
ImageColorAllocate使えば塗りつぶしできるな。
065264802/04/22 19:47ID:???
自己レス。
ImageCreateしたイメージを一旦名前を付けて保存し、
改めて開き、ImageCopyすることで重ねることが出来ました。
065364502/04/22 21:20ID:AXvATEcm
>>646、649
レスありがとうございます。
むちゃくちゃな質問してしまってすいませんでした。
原因がわかりました。
上手く動かなかったのは、サーバプログラムを導入していないPCでテストしていたためでした。
サーバに上げたら正常に動作しています。
お騒がせしてしまい、本当に申し訳ありませんでした。
0654_ ◆IVXmlxmI 02/04/23 12:50ID:3ZaaJEvL

PHP4.2.0がでますた

ダウンロード
http://www.php.net/downloads.php
変更点
http://jp2.php.net/ChangeLog-4.php
今回の目玉は「register_globals defaults to 'off'」か?
0655nobodyさん02/04/23 13:38ID:ztAlz169
4.2.0で
mb_http_output('SJIS');
ob_start('mb_output_handler');
と、
header("Content-type: text/plain");
とかヘッダー関数を一緒に使うとなんも表示されなくなった。
これはバグなのか?
4.1.2では両方とも同時に使えていたのだけど。
0656 ◆AngelBlk 02/04/23 15:05ID:???
PHP4.2.0インストール報告。
とりあえず、APCはcvsバージョンで普通に入った。

あと、safe_mode使ってるとsafe_mode_include_dirの書き方が
微妙に変わったらしく前のまま(シングルクオート)で囲ってると
ダメだった。

>654
register_globals のデフォルトがoffになるの、
思ったより早かったね。
4.3.0あたりからだと思っていたのに。
0657_ ◆IVXmlxmI 02/04/23 18:03ID:???
>>656
解説本書いてる人たちは直し面倒だろうなぁ

MLみるとmb関連などで4.2.1が出そうな雰囲気なので
うちではちょっと我慢
065865502/04/23 18:07ID:ztAlz169
mbstring.c の 1.65をCSVから拾ってきて使ってみたら、
表示はされるようになったが、今度はSJIS変換が効いてない・・
0659nobodyさん02/04/23 20:27ID:???
ルートに置いているPHPスクリプトで各ユーザのファイルの有無を調べ一覧を返
すようなものを作りたいのですが、権限なしとでます。
PHPスクリプト内で実行権限をnobodyから変えるようなことはできますでしょうか
0660nobodyさん02/04/23 20:43ID:???
馬鹿が前スレあげたのでage
0661nobodyさん02/04/23 22:17ID:jWd71drq
質問があります。
zend studio(PHP統合開発環境)で、デバッグURLできないんだけど、どうすれば良い?
デバッグURLというのは、実際に稼動しているサーバのPHPスクリプトをデバッグする機能。

今までに行った設定は、普通にzend studioをインストールして、ポート10000空けただけ。
ほかに必要な設定とかありますか?
066266102/04/23 22:26ID:jWd71drq
説明不足のため追加説明です。
localhostのウェブサーバに接続しています(WEBサーバのマシンとデバッグしているマシンが同じ)
デバッグURLを行ったときの状況は、
デバッグURL(F8を押したとき)
  The Zend Debug Server did not connect.
  Please check the Troubleshooting pane for possible causes.と出力される
zend server centerボタンを押したとき
  the zend server is not installed on http://localhost/と出ます。
0663592=60302/04/23 22:45ID:B45a096e
>>606
えらく遅レスですみませんが、PHP3は、確かに国際化版です。
でも、PHP4の方は、PHP4.0.6なんですよ。(mb_なんちゃらの関数があるやつ)
だから、「PHP4の国際化版」ということですよね?
0664 ◆AngelBlk 02/04/23 23:27ID:???
>663
PHP4.0.6の「自動変換」系の処理はあまり信用したら
ダメだと思う・・・。
(何となくそのあたりのバージョンのmail関数に
 バグがあった気がするんだけど覚えてない。
 スマソ。)

PHP3国際化は化けなかったけど、PHP4にしたら
化けた、ってことも多かったし。
出来るだけ明示的に指定したほうがいいですよ〜。
066566302/04/23 23:48ID:B45a096e
>>664
なるほどー、1つ物知りになりました。ありがとうございます。
0666nobodyさん02/04/24 11:55ID:27Mq6623
PHP+MySQL初挑戦の者です(むしろDB連繋初挑戦)

PHP側からMySQLへUPDATEでデータ更新を行うと思っくそ文字化けします。
データを投げる際、文字コードをEUCやSJISへの変換も試みてみたのですが
全くうまく行きません。表示側での文字化けでなく、DB内部で文字化けしています。
ドキュメントも全然見つからないので質問しました。

なにぶんDB自体まだ不慣れなので根本的な点で躓いているかもしれませんが、
助言お願いします。
0667nobodyさん02/04/24 12:49ID:xs5bIMSG
とりあえず全部EUCでやってみたら。
それなら変換いらないはず。
たぶん入力フォームとデータ表示ページの文字コードが違ってるんではないかと。
関係するすべてのhtmlファイルににmetaタグでEUCを明示してみて。
066866602/04/24 13:40ID:27Mq6623
>>667
ありがとうございます、解決しました。
ソースの文字コードを全部EUCにしたら変換無しでも
正常にデータ更新が行えました。
我ながら超初歩的な点で躓いていたなと反省します。
0669nobodyさん02/04/24 14:25ID:qHnTuQcb
EUCにすると、ブラウザは自動判別してくれるんですが、
iモードはs_jisしか対応してないみたいで文字化けします。

どーすりゃいいでしょうか
0670nobodyさん02/04/24 15:11ID:???
>>669 mbで変換汁
0671 ◆AngelBlk 02/04/24 15:38ID:???
>668
解決したみたいだけど、少し補足。
MySQLは確かデフォルトでEUCだったはずなので
ブラウザからの入力、ブラウザに対する出力がSJISなら
入力(SJIS)>(mbstringでEUCに変換)>DBにinsert
DBからselect>mbstringでSJISに変換>ブラウザに出力
ってかんじのことがいります。

他の方法として、自分は内部エンコードをUTF-8にして
MySQLのBLOB型にバイナリとして保存、ということをやってます。
以上参考になれば。

>669
単に出力をSJISにするだけでは?
0672nobodyさん02/04/24 15:42ID:???
perlのglobに相当することを手軽にやるにはどうすればいいの?
opendir(),readdir()の結果から該当しないものをオミットするとか考えたんだけど、もっと簡単にできるものがありそうで。
■ このスレッドは過去ログ倉庫に格納されています