■PHP板 質問専用スレッド■
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGレスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。
参考リンク
■本家
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/
0246電動ナナシ
2001/05/24(木) 17:56ID:???0248169
2001/05/25(金) 15:21ID:w1zVfjY.同じ値の変数があったら両方表示されてしまうような気がしますが、
デバッグ用だから、こまかいこと気にしないでOK?
でも別に変数そのものを渡すことにこだわらないで、「変数名」文字列
渡して、値は$GLOBALSからもってくればいいのでは?
function varvarpapa( $varname )
{
echo "$varname = " . $GLOBALS[$varname ] . "<BR>\n";
}
var = 123;
varvarpapa( "var" );
0249169
2001/05/25(金) 15:55ID:w1zVfjY.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 の設定を組み合わせれば
かなり完璧にできるような気がします。
まだ、見落としあるかな
0250名無しさん@お腹いっぱい。
2001/05/25(金) 16:31ID:???PHPってパーミッション600じゃ動かないような。。。
0251169
2001/05/25(金) 16:48ID:w1zVfjY.おっと、この辺はよくわからないままかいてます。
パーミッション640でもダメでしたっけ
0252antique = 250
2001/05/25(金) 17:07ID:???640でも動くが、600ではやはりダメ。
けど640じゃ、CGIからソース覗けてしまうような。
0253169
2001/05/25(金) 17:16ID:w1zVfjY.CGIから覗かれるのを防ぐために、>>249 の案では、PHPしか実行しない
Apacheを用意(グループはPHP実行専用のグループを作る)してCGIからは
アクセス出来ないようにしてるつもり。でも、だめかな
0254名無しさん@お腹いっぱい。
2001/05/25(金) 17:27ID:???CGIアップ用 USER:hogehoge GROUP:ftpuser
PHPアップ用 USER:hogehoge2 GROUP:phpuser
ってな感じでアカウント分けるの?
0255169
2001/05/25(金) 17:49ID:w1zVfjY.だいたいそうです。
でも、ユーザーわけると面倒なので、GROUPだけphpuserとかにします。
でも一般ユーザーは、chown hogehoge:phpuser herohero.php なんて
できないので、このchwonの処理だけは、なんか機構を用意します。
拡張子が、phpのファイルだけグループをphpuserにするスクリプトを
用意しておいて、誰でも実行出来るようにしとけばいいとおもいます。
phpのソースをアップロードしたのち、最初の一回は、このスクリプト
実行しないといけないので、ちょっと面倒ですけど。許容範囲かなと
0256antique
2001/05/25(金) 18:03ID:???俺の案。久しぶりに頭使ってみた。
データベースのパスワード等覗かれたくないモノは、別ファイルに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で覗かれたら元も子もない。
って勢いで書いたけどダメだったらスマソ。ってかこれって前出てたっけ???
# やっぱ究極的にはユーザ側の責任でって事で。
## 初期設定じゃ対処のしようも無いので、対処できるようにして、案を考えるトコまでで私は逃げます(爆
0257169
2001/05/25(金) 19:44ID:w1zVfjY.antiqueさんの案なら、apache1個ですみますね。なるほどー
あとはsuExecの使用を徹底してもらえばいいのか。
うーん、シンプルですばらしい
0258電動ナナシ
2001/05/25(金) 23:24ID:???http://penguin.epfl.ch/chroot.html
ただ一般のレンタルサーバー屋ではここまでやってくれないだろうけど。
0259antique
2001/05/26(土) 06:24ID:???たしかtripodとか先日お亡くなりになった(笑)Datablocksは
chrootしてCGI実行してましたね。
0260初期不良
2001/05/26(土) 12:52ID:eKGwZyuIperl の path とか sendmail の path とかは
/usr/local とかにリンクを張っておくのか...
/usr/bin も欲しいか。
/usr だと home に入れちゃってだめやね(笑)
あと、良くやってそうなのが docroot のリンクとか。
他にもリンクが無いか気をつけないといけないのか...
0261初期不良
2001/05/26(土) 12:54ID:eKGwZyuIsuEXEC してあれば制限するのは PHP だけで良かったのか。
気づかなかった...
0262名無しさん@お腹いっぱい。
2001/05/27(日) 17:47ID: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 との接続に失敗しました。。。";
}
?>
0263電動ナナシ
2001/05/27(日) 21:46ID:???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";
}
に変えてみれば原因は一目瞭然。
0264名無しさん@お腹いっぱい。
2001/05/29(火) 01:29ID:eaIIwdBEセキュリティ的に気おつける事ってありますか?
PHPって自動的に変数に代入してくれるから、
POST専用に作ってもGETで使えちゃいますよね?
0265名無しさん@お腹いっぱい。
2001/05/29(火) 02:44ID:9gKnzQrgecho "エラー";
exit;
}
とか
0266Pマン
2001/05/29(火) 12:09ID:Jge7ct1.後リロードボタンを押した時に2重投稿にならないようにするとか。
PHPの場合文字化けに注意とか。
stripslash 関数参照の事。
0267名無しさん@お腹いっぱい。
2001/05/29(火) 13:44ID:kzVptbgoこの変数って詐称することこできないよね?
>$HTTP_POST_VARS しか使わないとか。
gpc_orderで設定するの??
他のスクリプトでGETとか使うつもりなのでソレは困るなぁ。
あと、PHP自体SAFE MODEで実行すべき?
0268Pマン
2001/05/29(火) 14:51ID:Jge7ct1.わざわざ gpc_order しなくても直接 $HTTP_ほにゃらら変数読めば
いいわけだし、グローバルに入ってるのが POST か GET かわからない
場合には 直接 $HTTP_ほにゃらら見れば確実って事。
それかいっその事 gpc_order で何も設定しないようにして自前で
$HTTP_ほにゃらら変数から取り込むようにするといいかも。
ついでに勝手にくっついてくる \ 記号を取り除いたり必要であれば
文字コード変換も色々やっといたら後々楽ちんかも。 PHP4では
かなり重要っぽかったりして。
0269名無しさん@お腹いっぱい。
2001/05/29(火) 23:07ID:kzVptbgo$HTTP_POST_VARS[〜]みたいにすると
詐称できちゃうわない?
0270Pマン
2001/05/29(火) 23:45ID:Jge7ct1.うーん、ちょっと別な手を考えてみよう・・・。
そんじゃクエリ文字列チェックして変数いじってるようなら
スクリプトの実行を停止させるってのはどお?
0271名無しさん@お腹いっぱい。
2001/05/30(水) 00:31ID:nB9P6vf6http://www.geocities.co.jp/SiliconValley-SanJose/3026/docs/php3015.html
0272Pマン
2001/05/30(水) 01:23ID:owRJ.xHAなるほど、こんな手がありましたか。
ありがとうございます。
0273名無しさん@お腹いっぱい。
2001/05/30(水) 01:30ID:1PS1i.dU今、ちょっと試した限りでは詐称はできないみたいだけど。
269の俺の書き込みミスタイプがあるな。鬱だ。
0274PHP初心者
2001/05/30(水) 07:01ID:MEv63GowPHPで読み書きしたいのですが可能でしょうか?
具体的には、Perlで以下の方法でfilenameというファイルを作成しました。
tie %DATA,DB_File,"filename", O_RDWR | O_CREAT, 0644;
$DATA{"key"} = "value";
untie %DATA;
これをPHP上で読み込むにはdbmopenかdba_openを使えば良いのでしょうか?
dbmopenで読み込もうとしたらエラーになり、dba_openは命令そのものが
使えませんでした(トクトクのサーバ上で実験した結果ですが・・・)
うまく引き継ぐ方法があったら教えてください。
0275名無しさん@お腹いっぱい。
2001/05/30(水) 11:51ID:???CSVをPHP用のDBにするようなコードをPHPで書く。
移植完了。
で、いいんじゃない?
「共有」だったらいろいろ考えなきゃいけないかもしれないけど。
0276名無しさん@お腹いっぱい。
2001/05/30(水) 16:59ID:DHWjkFvM同時に変更or更新する方法をご存知の方はいませんでしょうか?
JavaScript使えば可能ですけど、端末の環境がまちまちなので
使いたくありません。
そこで、PHPで何とかできないかずっと考えているのですが・・・
0277名無しさん@お腹いっぱい。
2001/05/30(水) 17:00ID:DHWjkFvM同時に変更or更新する方法をご存知の方はいませんでしょうか?
JavaScript使えば可能ですけど、端末の環境がまちまちなので
使いたくありません。
そこで、PHPで何とかできないかずっと考えているのですが・・・
0278名無しさん@お腹いっぱい。
2001/05/30(水) 17:08ID:???0279名無しさん@お腹いっぱい。
2001/05/30(水) 17:17ID:???0280名無しさん@お腹いっぱい。
2001/05/31(木) 17:06ID:Nhe4Mlooやっと理解できました。どうも有難うございます。
なんとか出来そうですので、プログラム作成が一段落
したら試してみます。
0281名無しさん@お腹いっぱい。
2001/05/31(木) 17:07ID:Nhe4Mlooやっと理解できました。どうも有難うございます。
なんとか出来そうですので、プログラム作成が一段落
したら試してみます。
0282ネコ
2001/06/01(金) 10:55ID:pu43d4FUブラウザの種類によって、PHPが動いたり動かなかったり
することはあるのでしょうか?
というのも、現在とあるショッピングサイトの会員登録関係を
PHPで作っているのですが、ネスケ4.0だとエラーが出るのです。
IEや、同じネスケの4.7、4.75などではエラーが出ません。
PHPの動作としては、フォームに入力された文字(IDやパスワード)を
テーブルに問い合わせて、登録があればその内容を書き出すものです。
いわゆる登録内容変更ページというものです。
なにとぞご指南ください。
0283名無しさん@お腹いっぱい。
2001/06/01(金) 11:05ID:???単に「エラー」だと誰も分からないのでエラーメッセージそのものをあげれば適切なレスが返ってくる
んじゃないかな?
もちろんスクリプトファイル名などの公開がまずいんならそこだけ適当に編集してね。
0284名無しさん@お腹いっぱい。
2001/06/01(金) 11:06ID:???どのような ERROR が出ますか?
0285284
2001/06/01(金) 11:12ID:???0286274
2001/06/01(金) 11:20ID:???CSVにする方法がよくわかりませんでしたが、いったんPerlのDBをTXTで
掃き出させて、PHPのDBに取り込む方法で解決できそうです。
ヒントになりました。ありがとうございました。
0288ネコ
2001/06/01(金) 14:42ID:???こんなに早いとは思いませんでした(^^;
ええと、エラーなんですが、まずうちのプログラマーが作ってる
共通の関数がありまして
********
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も確認してみたのですが、おかしいところはないみたいなのです。
0289283
2001/06/01(金) 14:56ID:???まず確かめることはデータベースに接続できているのかどうか。
oci8_logon()で使っているIDやパスワード・データベース名が正しいか。
上記が正しいならデータベースが動いているかをチェック。
0290ネコ
2001/06/01(金) 15:37ID:???ありがとうございます。
データーベースへの接続はできているようですし、
パスワード等も合っているようです。データ−ベースも動いてます。
(他のブラウザでは問題なく動いているので)。
PHPのような言語は、ブラウザに影響されないんですよね・・?普通。
0291283
2001/06/01(金) 16:31ID:???同じHTMLでもブラウザによっては解釈(表示結果)が違ってくるのでそこにも注意すべき。
>>287で書いたのはこういう意味。正しいHTMLを書いているなら問題ないだろうけどね。
では「実際に」エラーを出している行は特定できているかな?
>>288ではDBへの接続に失敗していればerror_msg()でエラー文を出力しているようだけど、
接続がちゃんとしているならその部分でエラーになっているわけではないはず。
もしどんなエラーになっても「失敗しました」としか出てこないなら文章を変えてもらったほうがいいね。
残る可能性としては「既にブラウザ判定処理が組み込まれていて」跳ねているとか、かなあ…。
0292283
2001/06/01(金) 16:31ID:???同じHTMLでもブラウザによっては解釈(表示結果)が違ってくるのでそこにも注意すべき。
>>287で書いたのはこういう意味。正しいHTMLを書いているなら問題ないだろうけどね。
では「実際に」エラーを出している行は特定できているかな?
>>288ではDBへの接続に失敗していればerror_msg()でエラー文を出力しているようだけど、
接続がちゃんとしているならその部分でエラーになっているわけではないはず。
もしどんなエラーになっても「失敗しました」としか出てこないなら文章を変えてもらったほうがいいね。
残る可能性としては「既にブラウザ判定処理が組み込まれていて」跳ねているとか、かなあ…。
0293283
2001/06/01(金) 16:33ID:???0294電動ナナシ
2001/06/01(金) 18:04ID:???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 にする。
0295PHP初心者
2001/06/01(金) 23:06ID:SVe2IKbYDBを作成しようと実験してみたところ、エラーとなります。
エラーの内容は「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すら動作しない状態でした。
0296電動ナナシ
2001/06/01(金) 23:59ID:???0297名無しさん@お腹いっぱい。
2001/06/02(土) 01:49ID:???生成させて利用なんてことが出来るでしょうか?
最初にCSVファイル群を食わせておいてやると、簡単なSQLを発行して
やることが出来る、みたいな。
たとえ実現したとしても、アクセス数が増えるとサーバーに結構な負荷が
かかるでしょうか??
0298松下くん
2001/06/02(土) 02:15ID:wZoIC34odbmってPHP4からオプショソになったんじゃなかったっけ?(あいまい
0299PHP初心者(295)
2001/06/02(土) 12:19ID:sIugQgBEDB関連のライブラリが入っていないそうで、すぐには直らないそうです。
お試し期間内ですので、解約することにします。(ア●ムレンタルウェブです)
鯖も快適でサポートの回答も早かっただけに残念・・・。
いまのところ調べた限りでは、DB関連のサポートは
・millto、、、PHPver未調査 / dbmはOK、dbaはダメ / 激重でまともに使えない
・トクトク、、PHP3.0.14 / dbmはOK、dbaはダメ / 激重でまともに使えない
・●めいん屋、、、PHP4.03pl1/ dbmはOK、dbaはダメ / テレホでも快適
・ア●ム、、、、、PHP4.05 / dbm、dbaどちらもダメ / テレホでも快適
有料でもよいので、dbm,dbaどちらも使えるレンタル鯖どこかご存じありませんか?
dbaだけでも良いのですが、、、(スレちがいの質問でしょうか)
0300電動ナナシ
2001/06/02(土) 17:02ID:???入れてないと面倒かも
レンタルサーバーの話題はそれこそレンタルサーバー板でやったほうが
いいだろうね
0301PHP初心者(295)
2001/06/07(木) 09:41ID:sUHW0iBs>入れてないと面倒かも
jstringが入っているかどうかはphpinfoのどの部分を見れば分かるのでしょうか?
それとイメージ関数でgif画像を表示させてみましたが、画面の左隅に出てきてしまいます。
まん中に表示されるには、どのような方法がありますか?上記画像を表示中は、HTMLタグが
使えないので<CENTER>や<DIV ALIGN=CENTER>などでセンタリングできませんでした。
0302名無しさん@お腹いっぱい。
2001/06/07(木) 09:48ID:???Multibyte (Japanese) Support が enabledになってればOK。
下の方の質問は意味不明。
0303名無しさん
2001/06/07(木) 12:03ID:???Perlでよくある sendmail に渡して送るのとでは、どちらが
サーバへの負荷が少ないでしょうか?
今は、mail()で送ってます。1日数百回程度。
0304YO
2001/06/07(木) 15:33ID:Og9QEOH2質問です。
POSTでデータを送った場合、ブラウザで再読み込みすると、またまた
同じデータが送られてしまうんですが、どうにかなりませんか。
(掲示板、アプローダなど)
0305YO
2001/06/07(木) 15:34ID:Og9QEOH2質問です。
POSTでデータを送った場合、ブラウザで再読み込みすると、またまた
同じデータが送られてしまうんですが、どうにかなりませんか。
(掲示板、アプローダなど)
0306名無しさん@お腹いっぱい。
2001/06/07(木) 15:40ID:???書き込み処理後 Location で飛ばす。
# 2chはそうなってるけどあなたは二重書き込みしてますが(w
0307名無しさん@お腹いっぱい。
2001/06/07(木) 15:58ID:???0308YO
2001/06/07(木) 16:10ID:???カチューシャ使用なんです。
0309初期不良
2001/06/07(木) 17:02ID:v8J6N31cってできないの?どんなにいじくり倒してもうまく動いてくれない。
\\1 にはきちんと文字が取り込まれているのに...
0310松下くん
2001/06/07(木) 21:15ID:G09eKIiUmail関数はsendmailつかってるから同じダヨ
phpinfo()のsendmail_path見てね
0311PHP初心者(295)
2001/06/07(木) 21:24ID:sUHW0iBsConfigure 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);
0312初期不良
2001/06/08(金) 04:15ID:yNn8Dm5U自己レスだけど、後方参照と変数展開のタイミングの問題か?
後方参照は \\ と二つ打つあたりから見ても文字として
ereg が取り込んだあとに解釈しているっぽい。
それ以前に変数展開しようとするからエラーになる、と。
もしかして perl でこんなことできるのってかなりすごいこと?
%tmp = ("str" => "succeeded.");
$str = '$str succeeded.';
$str =~ s/\$([\w]+)( $tmp{\1})/$tmp{$1}$2/;
$str は "succeeded. succeeded."
どうしたら PHP で後方参照を元に変数展開できるかな。
0313初期不良
2001/06/08(金) 04:21ID:yNn8Dm5U↓
$str = ereg_replace("\\$([A-Za-z0-9_]+)", '${\\1}', $str);
もしかしてあとで変数展開してくれないかなと
期待してこうしてみたけどだめだった。
本格的にだめなのか?
0314名無しさん@お腹いっぱい。
2001/06/08(金) 13:45ID:Ec8tYdQk複数のチェックボックスがあった場合、foo[]という風に配列
で受け取れますが、複数のテキストフィールドの場合でもbar[]
という風に配列で受け取っても問題無いのでしょうか?
テストした所、一見問題なく動いているようなのですが・・・
0315名無しさん@お腹いっぱい。
2001/06/08(金) 16:51ID:Nor6.bTwとだけ書かれたURLにPOSTしてみて、渡される内容を確かめてみるといいぞ。
0316名無しさん@お腹いっぱい。
2001/06/09(土) 03:02ID:5/7kfvYw呼ばれた関数一覧を取得する方法はないのでしょうか?
function Hoge()
{
Mnu();
}
function Mnu()
{
//呼ばれた関数の取得.
Hoge , Mnu と表示.
}
0317名無しさん@お腹いっぱい。
2001/06/09(土) 03:19ID:sb0cuGDwperldoc -f caller
0318名無しさん@お腹いっぱい。
2001/06/09(土) 03:20ID:???0319電動ナナシ
2001/06/10(日) 03:02ID:???ううむ、変数の中に "\\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" になる。
0320電動ナナシ
2001/06/10(日) 03:43ID:???jstring は別途組み込まないとダメだ。Google とかで php と jstring を
キーに検索してみろ。
なお、jstring がないと EUC 以外の文字コードの扱いに困難をきたすが、
コードの変換をしないとか正規表現を含む文字列関数を使わないなら別に
なくてもいい。
0322名無しさん@お腹いっぱい。
2001/06/10(日) 10:30ID:7GXX5a22$fp = fsockopen ($host, 80, $errno, $errstr, 30);
のような書き方をしているのですが、時々タイムアウトして
「Fatal error: Maximum execution time of 30 seconds in hoge.php on line 42」
とエラーメッセージが出てしまいます。
この際、用意された(?)エラーメッセージではなく
独自のエラー処理をしたいのですが、どうすれば良いでしょうか?
よろしくお願いします。
0323名無しさん@お腹いっぱい。
2001/06/10(日) 19:16ID:mZEbGQ.kif(!$fp){ echo __LINE__."行目でえらあ出ちゃった";
}else{
while(!eof.....
@でエラー抑制できます
0324初期不良
2001/06/10(日) 23:16ID:1hgwnV2Yそんな感じに見つかった数だけ再検索って事になっちゃうのかな...
どーでもいいんだが
warning ってウォーニングって読むんじゃないのか?
なんかワーニングって書く人多いが。
0325PHP初心者(295)
2001/06/11(月) 01:27ID:1Tk0xrdc>コードの変換をしないとか正規表現を含む文字列関数を使わないなら別に
>なくてもいい。
いまのところ、これが不足することによる弊害はないようですので、
大丈夫だと思います。
ところで、1つのデータベース(ファイル)に多くの人が同時に
アクセスしたら(通常の書込みファイルのように)壊れることは
あるのでしょうか?
汎用ファイルロック(flock)はデータベースには使えませんし・・・。
Perlの場合は、データベースでもダミーファイルでロックできましたが、
PHPの場合、どうやるのかわかりません。
ちなみに、ユーザーが100人くらいいて、1つのデータベースを読み書き
しています。全員が同時にアクセスはしませんが、今後のに備えて
おきたいです。よろしくお願いします。
0326名無しさん@お腹いっぱい。
2001/06/11(月) 02:47ID:GHljoYjE古・・・・
こっちだろ。
$fp = fsockopen($host, 80, $errno, $errstr, 30) or die('なんたら');
0327あなたも億万長者をめざしませんか?
2001/06/11(月) 16:52ID:p/rGLx3E0328名無しさん@お腹いっぱい。
2001/06/12(火) 00:22ID:???のですが、cronはCGI版のPHPでしか使えないのでしょうか?
0329名無しさん@お腹いっぱい。
2001/06/12(火) 00:54ID:???0330PHP初心者(325)
2001/06/12(火) 02:17ID:???perlのデータをPHPに書き直したら、上手くいきました。
0331名無しさん@お腹いっぱい。
2001/06/12(火) 07:22ID:???> wget
何を集計するんだよ?
0332名無しさん@お腹いっぱい。
2001/06/12(火) 09:29ID:???コマンドライン版PHPが嫌ならwgetとかで定期的にHTTP越しで
PHPにアクセスしろってことだろ
0333名無しさん@お腹いっぱい。
2001/06/12(火) 09:30ID:???コマンドライン版PHPが嫌ならwgetとかで定期的にHTTP越しで
PHPにアクセスしろってことだろ
0334名無しさん@お腹いっぱい。
2001/06/12(火) 09:38ID:mCD2wIA.Linuxは難しいです。教えてください。
参考書どおり./configure --with-mysql --with-apxs=/
usr/local/apache/bin/apxs と打つと
cannot find outputfile from lex
となります。アパッチと、MySQLのインストールは終わってます。
よろちく
0335YO
2001/06/12(火) 12:48ID:???DBに何を使ってるのか知りませんが、RDBMSと菜の九十九のなら、
書き込みがいくら有ろうが、DBエンジンのほうで制御されます。
参照整合性がとれないのはDBとはいえませんから。100人程度なら
なんら問題ないと思います。
0336PHP初心者(325)
2001/06/12(火) 14:12ID:???問題なさそうで、安心しました。ありがとうございます。
いま、自作のオンラインゲームで、パスワードや所持金の情報を記録するために
DBを使っております。ユーザーの所持金などが消えたら大変ですので、、、
バックアップは、まめにとっています。
DBは、簡易DB(GDBM: dbmopen命令 等)でやっています。
0337名無しさん@お腹いっぱい。
2001/06/14(木) 10:38ID:GlZ04kWoPerlで検索フォーム作るときには、EUCが基本でしたが、
どうやらそんなことお構いなしに、SJISでやってますが、問題ありますか?
Linuxのブラウザーから検索した時は、駄目でしたが、クライアントが
win系なら問題ありませんよね?そのへん教えてください。
0338名無しさん@お腹いっぱい。
2001/06/14(木) 12:01ID:???何故EUC-JP使うか分かってないだろ
0339名無しさん@お腹いっぱい。
2001/06/14(木) 13:12ID:8MasEgfI0340337
2001/06/14(木) 14:02ID:GlZ04kWoはい、>338さん
1.SQLではSJISでも問題が起こらないか。
2.なぜLinuxのブラウザーではおかしくなるのか。
教えてください。
0341名無しさん@お腹いっぱい。
2001/06/14(木) 14:53ID:???>はい、>338さん
なんか偉そうだな。
>1.SQLではSJISでも問題が起こらないか
MySQLは使用する文字コードの設定できるだろ。
基本中の基本だと思うがね。
>2.なぜLinuxのブラウザーではおかしくなるのか。
Linuxで使えるブラウザが何種類あるか知ってますか?
なんというブラウザでどんな現象が起こるかくらい書けや。
質問の仕方から勉強しなおせ。
0342名無しさん@お腹いっぱい。
2001/06/14(木) 14:52ID:???>はい、>338さん
なんか偉そうだな。
>1.SQLではSJISでも問題が起こらないか
MySQLは使用する文字コードの設定できるだろ。
基本中の基本だと思うがね。
>2.なぜLinuxのブラウザーではおかしくなるのか。
Linuxで使えるブラウザが何種類あるか知ってますか?
なんというブラウザでどんな現象が起こるかくらい書けや。
質問の仕方から勉強しなおせ。
0343名無しさん@お腹いっぱい。
2001/06/14(木) 16:22ID:qoE/XP/M0344名無しさん@お腹いっぱい。
2001/06/18(月) 01:46ID:vO5h5Je.自己レスだけど、一部 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() ってやらなきゃいかんのはださいな...
デザイナーの人には置換されるものが見えるってのが
必要だと思うからこれは結構役に立つかも。
0345初期不良
2001/06/18(月) 02:31ID:vO5h5Je.return $GLOBALS[$str];
}
この方がいいか。
それにしても人がいないね...
■ このスレッドは過去ログ倉庫に格納されています