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

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

問題なさそうで、安心しました。ありがとうございます。
いま、自作のオンラインゲームで、パスワードや所持金の情報を記録するために
DBを使っております。ユーザーの所持金などが消えたら大変ですので、、、
バックアップは、まめにとっています。
DBは、簡易DB(GDBM: dbmopen命令 等)でやっています。
0337名無しさん@お腹いっぱい。2001/06/14(木) 10:38ID:GlZ04kWo
イントラネット(WinNT)にMySQL+PHPで住所録管理DBを作ろうとしてます。
Perlで検索フォーム作るときには、EUCが基本でしたが、
どうやらそんなことお構いなしに、SJISでやってますが、問題ありますか?
Linuxのブラウザーから検索した時は、駄目でしたが、クライアントが
win系なら問題ありませんよね?そのへん教えてください。
0338名無しさん@お腹いっぱい。2001/06/14(木) 12:01ID:???
>>337
何故EUC-JP使うか分かってないだろ
0339名無しさん@お腹いっぱい。2001/06/14(木) 13:12ID:8MasEgfI
why?
03403372001/06/14(木) 14:02ID:GlZ04kWo
一応知ってます。→SJISの2バイト目に\がくるからでしょ?

はい、>338さん
1.SQLではSJISでも問題が起こらないか。
2.なぜLinuxのブラウザーではおかしくなるのか。
教えてください。
0341名無しさん@お腹いっぱい。2001/06/14(木) 14:53ID:???
338じゃないけど>>340

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

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

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

質問の仕方から勉強しなおせ。
0342名無しさん@お腹いっぱい。2001/06/14(木) 14:52ID:???
338じゃないけど>>340

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

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

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

質問の仕方から勉強しなおせ。
0343名無しさん@お腹いっぱい。2001/06/14(木) 16:22ID:qoE/XP/M
ロックもやりなおせ。
0344名無しさん@お腹いっぱい。2001/06/18(月) 01:46ID: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() ってやらなきゃいかんのはださいな...

デザイナーの人には置換されるものが見えるってのが
必要だと思うからこれは結構役に立つかも。
0345初期不良2001/06/18(月) 02:31ID:vO5h5Je.
function tmp($str){
 return $GLOBALS[$str];
}
この方がいいか。
それにしても人がいないね...
0346名無しさん@お腹いっぱい。2001/06/18(月) 21:48ID: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(); 」の部分で
文法エラー(?)が出ます。

クラス内で別のクラスを使用するには、どのような書き方をすれば
よいのでしょうか。
0347電動ナナシ2001/06/18(月) 23:17ID:???
$this->ccc->aaaput() じゃないか?
0348電動ナナシ2001/06/18(月) 23:23ID:???
あと誤記だとは思うが class bbb の
 function bbb(){
  $ccc=new aaa;
 }
は
 function bbb(){
  $this->ccc=new aaa;
 }
じゃないか?
$ccc だと関数スコープになるから、function bbb() が終了した時点で
変数の内容は破棄されるぞ。$this->ccc じゃないと保存されない。
03493462001/06/19(火) 01:07ID:VXxYGWVg
>>348
> function bbb(){
>  $this->ccc=new aaa;
> }
そのとおりです。誤記です。

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


// 2chぽい掲示板はだいぶ良くなってきました・・・。
0350電動ナナシ2001/06/19(火) 09:59ID:???
$temp = $this->ccc;
$temp->aaaput();
じゃあだめかな。
# もう自分のまわりから PHP3 な環境は死滅した・・・。
03513462001/06/19(火) 13:01ID:Hz69Pzw.
それで、なんとか値の読み出しはできるように
なりましたが、変更ができないですね。

でもこれで一歩前進。
PHP3でもなんとか動くようになりました。
0352電動ナナシ2001/06/19(火) 13:09ID:???
変更するなら
 $temp = $this->ccc;
 $temp->setAttribute("hogehoge");
 $this->ccc = $temp;
で十分だろ?

特に PHP の場合、あるオブジェクトに対して同時に複数プロセスから
アクセスされることはないのだから。
03533462001/06/19(火) 16:02ID:Hz69Pzw.
や、やっとPHP3でも望みどうりの動作をさせることができました。
本当にありがとうございます。

しかし、これだけのために無駄な記述が増えますね。
正直言ってPHP3は変だ、と思いました。
0354電動ナナシ2001/06/19(火) 16:54ID:???
そう思ったら PHP4 に乗り換えるべし。
0355名無しさん@お腹いっぱい。2001/06/19(火) 18:34ID:???


  ハハハ
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ^∀^)<  あほか
 ( つ ⊂ ) \_________
  .)  ) )
 (__)_)     (^∀^)ゲラゲラ キエロ カイセンキッテクビモキレ ケラ
03563462001/06/20(水) 01:50ID: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');で
読み出して書き出すとか・・・・・・。
0357電動ナナシ2001/06/20(水) 14:35ID:???
なるべく既存のコードに手を入れたくないなら、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"] で参照できる。

余計なプロセスが一つ立ち上がるから忙しいサーバーでは難しいかも。
ロックをどうするかという問題もあるしね。
0358ヤスミン2001/06/21(木) 02:13ID:???
こんばんわヤスミンです。
ヤスミンどこに質問したらいいのかわかんないので
ここでしつもんしま〜す。

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

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

ヤスミンってドキュソな人だからW3Cのドキュメント見ても
よくわかんなかったです。
教えて、とってもやさしい2chの皆様&heart;
0359名無しさん@お腹いっぱい。2001/06/21(木) 09:07ID:CwIMdjnQ
>>358
get:変数リストをURLの末尾にくっつけて送る(http//〜?foo=bar&...)
post:変数リストを標準入力経由で渡す
0360名無しさん@お腹いっぱい。2001/06/21(木) 09:10ID:CwIMdjnQ
>>358
データベースへのデータの受け渡しは全く別の
問題ですよ。
0361名無しさん@お腹いっぱい。2001/06/21(木) 13:21ID:Xtwu7Ct.
get:imgタグで呼び出せる。荒勢
post: if($REQUEST_METHOD != "POST") がなかったらgetと同じ
0362へのへのもへじ2001/06/21(木) 13:53ID: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だと見れるのですが・・・。なぜでしょう・・・。
それと、文字や画像を指定の位置に表示させる方法はどうすれ
ばいいのですか?(表示開始座標の指定方法とか・・・)
よろしくおねがいします。
0363名無しさん@お腹いっぱい。2001/06/21(木) 14:36ID:CZuz.1cs
基本的なことだと思うのですが、教えて下さい。

現在PHP4を使用していますが、文字コードにEUCを使用している限りに
おいては、正規表現関数などによる文字列操作で文字化けは発生しない
という認識は正しいでしょうか?
0364名無しさん@お腹いっぱい。2001/06/21(木) 16:38ID:CwIMdjnQ
PHP4+GDで日本語表示が出来ません。
うまく動いている方、いますでしょうか?
0365レタペパ2001/06/21(木) 20:18ID:Nd76xGdU
例えばアンケートのフォームを作るとして、ふりがなの欄に
ひらがな以外が入力されたときにエラーを出すのは何が一番
効率がよいのでしょうか?

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

Rubyなら一発で出来るよ、と聞いたのでなおさら気に
なります。
0366初期不良2001/06/21(木) 21:24ID:ujECfFiw
>>365
php4+mbregex で mbereg() をテストしてみた。
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/php-book/supplement.html#mbregex

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

とかできるよ。ちなみに Ruby の正規表現エンジンらしい。
0367名無しさん@お腹いっぱい。2001/06/21(木) 23:27ID:???
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 に繋がらないのは現時点でのものです。
0368名無しさん@お腹いっぱい。2001/06/22(金) 00:00ID:D.i2sKVg
phpて...
0369名無しさん@お腹いっぱい。2001/06/22(金) 02:56ID:sUtzd/WE
MySQLのDB読みに行ってて、その間にブラウザをバックグラウンドにしないと
タイムアウトになるって現象、確認した人居ますか?
0370名無しさん@お腹いっぱい。2001/06/22(金) 10:01ID:???
TurboLinuxです。PHPのconfigureでエラーがでます。
./configure: lex: command not foundで止まります。
解決方法を教えていただければ・・・。
0371antique2001/06/22(金) 10:10ID:???
見たまんま、lexが無い。

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

http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/Flex/
0372名無しさん@お腹いっぱい。2001/06/22(金) 10:32ID:yk00SzmE
あとは、./configure時のlexのパスが
間違ってるとか・・・
0373名無しさん@お腹いっぱい。2001/06/22(金) 11:14ID:???
>371
ありがと。でもflexのコンパイルにyaccがねえとか
いわれた。Linuxはどうなってんだか、やれやれ。
0374antique2001/06/22(金) 12:00ID:???
>>373
ほい
http://www.anna.iwate-pu.ac.jp/~kojima/EWS/ews-gnu.html#bison-1.25
0375名無しさん@お腹いっぱい。2001/06/22(金) 12:22ID:rSWbAQtM
質問なんですが、今アメリカのサーバでPHPやってるんですが、
getdate( time() )ってやって日付時刻を取得すると、
アメリカ時間(時差13時間)が返ってくるんです(当然だけど)。
これを日本語時間にするにはどうすればいいんでしょう?
0376antique2001/06/22(金) 12:29ID:???
putenv('TZ=JST-9');
0377名無しさん@お腹いっぱい。2001/06/22(金) 14:24ID:???
>374
ありがたぅ。
なんとかインストール成功しました。
03783632001/06/22(金) 15:22ID:rt3YCcj2
誰か教えて…
検索してみてもどのサイトにもはっきりとは書いてないんですー。

現在PHP4を使用していますが、文字コードにEUCを使用している限りに
おいては、正規表現関数などによる文字列操作で文字化けは発生しない
という認識は正しいでしょうか?
0379名無しさん@お腹いっぱい。2001/06/22(金) 15:42ID:ImTslAWI
正規表現で文字化けってのが意味不明だけど、
jstringとmbregex使えば心配いらないんじゃない?

EUCで文字化けって聞かないけど、SJISの2バイト目がASCIIとかぶる事ぐらいでしょ?
あとはブラウザの問題
0380電動ナナシ2001/06/22(金) 15:50ID:???
それは必ずしも正しくない。
実際に化ける事例が PHP-jp の 11443, 11447 に出ているので参照する
ことをお勧めする。
0381電動ナナシ2001/06/22(金) 15:50ID:???
>>380 は >>378 へのレス。打つ出し脳。
03823632001/06/22(金) 16:41ID:rt3YCcj2
>電動ナナシさん

ML確認しました。確かに化けます。
実は、preg_match_allを使用したいんですけど、mberegでは無理ですよね。
なんとか上手い方法はないでしょうか?
0383名無しさん@お腹いっぱい。2001/06/22(金) 16:52ID:???
ああ、それ俺も気になるな。
なんかイイ案ないの?
0384???^?y?p2001/06/22(金) 20:49ID:MEheHnco
>>366
ばっちりうまくいきました、ありがとうございます。
0385眠い。2001/06/22(金) 21:35ID:MEheHnco
DBへの入力フォームを使っているのですが、
PHP4では問題なく日本語が入るのにPHP3国際化版
で使うと、例えば"あいう"が勝手に"シスシオシヌシニ"に
なってしまうのです。もちろん"charset"はeuc-jp
にしてあるのですが。

どうすれば文字化けしないようになるのでしょうか?
0386名無しさん@お腹いっぱい。2001/06/22(金) 21:53ID:QfivNl3k
jstring って NT & Apache に組み込めますか〜?

PHP を覚えようと思って WIndowsNT4.0 に Apache、PHP4、MySQL を
入れてます。で、今は入出力時の SJIS <-> EUC 変換に
jcode.php を使ってるのですが、PHP4.0.6 で jstring が組み込まれる
んだったら jstring を使いたいな〜と。。。
0387名無しさん@お腹いっぱい。2001/06/22(金) 22:00ID:???
↑
やってみれば?
03883862001/06/22(金) 22:34ID:???
>>387
いえ、既に出来ませんでした〜。
jstring を組み込めなかったので jcode 使ってます。
いろいろサイト探索したんですけど情報が無くて。。。
jstring の Windows 用バイナリなんか無いですよね。
てか、やってる人いるのかな〜。
0389antique2001/06/22(金) 22:35ID:???
>>386

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

4.0.6でどうなるかは不明。
03903862001/06/22(金) 22:56ID:???
>>389
ちょとスッキリしました〜。
4.0.6 に期待!

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

それとバカな質問かもしれませんが海外のサーバって
jstring は組み込まれてないと考えた方が良い?
逆に国内はほとんど組み込まれてるとか。。。
0391ねたろ2001/06/23(土) 00:04ID:I6yaTfIE
>>390
4.0.4から4.0.5は半年
0392名無しさん@お腹いっぱい。2001/06/23(土) 00:13ID:???
俺、4.0.6 使ってるけど。。。
0393antique2001/06/23(土) 00:19ID:???
WEB+DB PRESSによると「まもなく」らしい。
つか記事は既にPHP4.0.6が有るかのような書き方だし。

待ちきれないなら
http://snaps.php.net:8000/
0394Error4012001/06/23(土) 21:56ID:WcK6Rl5Y
4.0.6がリリースされましたね。
http://jp2.php.net/

うーむ、これからApache 1.3.20 + SSL + PHP 4.0.5をサーバにインストール
しようとしてたんだが・・・。
0395名無しさん@お腹いっぱい。2001/06/23(土) 21:56ID:???
凄く初歩な質問とは思うんですが、さっぱり分からないので…。
アクセスカウンタをIPアドレスの重複があったら数えないようにしたい(リロードを無効にしたい)の
ですが、何故かローカルアドレス(127.0.0.1)しか表示されません。
解決策はありませんか?教えてください。
0396名無しさん@お腹いっぱい。2001/06/23(土) 22:47ID:???
それだけでは俺にもサパーリ。┐(´ー`)┌
0397名無しさん@お腹いっぱい。2001/06/23(土) 23:01ID:tHZzk4jg
ここのように掲示版の1ページ目を静的なファイル(html)にする件について。
以前掲示版に投稿があったときに lynxをexecしてhtmlファイルを生成していたのですが、ヴァーチャルホストのレンタル鯖に移転したのでlynxが使えなくなりました。
ちなみにphpのコマンドライン版も使用不可でした。
他にいい手はありますか
0398名無しさん@お腹いっぱい。2001/06/23(土) 23:47ID:???
>>394
Change Logみたが、 jstring組み込みは見送られたようですな。
0399電動ナナシ2001/06/24(日) 00:08ID:???
>>397
ここはいっちょ perl と連携するしかないね。
index.html 相当の PHP ページを呼び出して保存するスクリプトを利用するとか。

Socket 叩いて localhost の port80 開いて読み出した内容をそのまんま
ファイルに保存するという手段もあるだろうけど。
0400Error4012001/06/24(日) 00:12ID:Ey7Cmqac
mbstringとjstringって違うものだったのか(汗

ちょこっと試したらApacheは起動しないわ、PostgreSQLには津ながらないわで、
じっくり検証する必要がありそうな予感です。
0401電動ナナシ2001/06/24(日) 00:13ID:???
>>398
> Added Japanese multibyte string functions support. (Rui)
というのがあるし、PHP-4.0.6 のソースには mbstring というモジュールが
追加されている。多分これが jstring に相当するんじゃないのかな。

Windows 環境での jstring サポートだけ php-4.0.7 までおあずけって
ことみたいだね。
0402電動ナナシ2001/06/24(日) 00:16ID:???
>>400
Apache for Win32 1.3.20 な環境で PostgreSQL 7.1 への接続に成功。
Linux 環境では明日か明後日に評価予定。

そっちはどんな環境?
04033952001/06/24(日) 00:18ID:???
どっかの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アドレスがローカルしか表示されません。
ブラウザの問題でしょうか…?
0404Error4012001/06/24(日) 00:40ID: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みたいだな(笑)
0405名無しさん@お腹いっぱい。2001/06/24(日) 02:03ID:.r4D07rI
>>403
F2sなんちゃう?F2sならHTTP_X_FORWARDED_FORだよ
0406Error4012001/06/24(日) 08:31ID: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を動かしているユーザで接続しに行ってるようだ。

うーむ、これは仕様変更なんでしょうか?
それとも、どこかに設定があるのかなぁ?
しかし眠いので家に帰ったりする。
0407Error4012001/06/24(日) 08:48ID:Ey7Cmqac
うぬ、帰る前にちょっとソースを見たらわかった。

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

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

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

・・・ということでした。
0408Error4012001/06/24(日) 08:55ID:Ey7Cmqac
ということで、マニュアルを見て、さらに実験。

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

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

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

うーむ、こういうちょっとした所に時間を取られるから、PEARって敬遠されるのかも。
じゃ、帰る。
0409Error4012001/06/24(日) 09:03ID:Ey7Cmqac
ちょっと気になったので(早く帰れ)、PEARのCVS HEADを取ってきてみる。

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

うーむ、俺の使い方が悪いのか、設定が悪いのか、それともバグなのか・・・。
0410名無しさん@お腹いっぱい。2001/06/24(日) 10:48ID: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関係なくても、そうなることがあります。
0411名無しさん@お腹いっぱい。2001/06/24(日) 13:24ID:bWNntLFo
MySQLのDB読みに行ってて、その間にブラウザをバックグラウンドにしないと
タイムアウトになるって現象、確認した人居ますか?
0412電動ナナシ2001/06/24(日) 16:09ID:???
>>410
php.ini で Register_Globals が Off になっているから。

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

どんなスクリプトで発生するのか分からない以上コメントのしようがない
と思うのだが。
0413電動ナナシ2001/06/24(日) 16:20ID:???
>>408
本当だ。oci8.php や mysql.php を見る限り、
if ($dsninfo['username']) {
 // hogehoge
} else {
 // セットされて無いぞゴラァ
}
という風にするつもりだったようだね。
0414Error4012001/06/24(日) 16:41ID:???
>>413
あ、そうか。そうすればいいんだ。
やっぱり、徹夜はいけないね。思考能力が鈍る(笑
04154032001/06/24(日) 19:29ID:???
>>405さん
治りました!有難うございました。ちなみにf2sではないです。
04164102001/06/24(日) 22:56ID:KyxruLvY
>>412
ありがとうございます〜! うまくいきました。

以前に、http://www.php4win.de/ にあったインストーラーを使うと
register_globals は、デフォルトが Off になっていたのでした。
本などには、さも当然のように、「項目名と同名の変数に値が入る。」って書いてあるので
まさか、設定が存在するとは、気づきませんでした。
0417名無しさん@お腹いっぱい。2001/06/25(月) 00:33ID:f4nW7jKg
$tmp 内の「%」から始まる行を全て削除したいのですが、
どのような正規表現になるのでしょうか?
0418名無しさん@お腹いっぱい。2001/06/25(月) 02:32ID:???
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 を偽造したいわけではなく、素直に直前のものが入るように
したいだけなのですが。
0419名無しさん@お腹いっぱい。2001/06/25(月) 06:05ID: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);
0420名無しさん@お腹いっぱい。2001/06/25(月) 06:36ID:8zsiOQoQ
>>418
全く試してないからアレだけど…
Locationで飛ばさないで、HTMLの Refreshあたりで飛ばすのはどう?
0421名無しさん@お腹いっぱい。2001/06/25(月) 08:45ID:???
>>420
それは HTTP_REFERER を「無効にする」技として使われてる。
ブラウザにもよるんだろうが、大抵は HTTP_REFERER を
空にするらしい。
0422Error4012001/06/25(月) 10:58ID: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
04234182001/06/25(月) 13:31ID:???
>>420
Refreshで試してみましたが、421さんの言われるとおり
HTTP_REFERER は空になりました。
無理なんでしょうかね
0424電動ナナシ2001/06/25(月) 14:16ID:???
>>422
output_handler = mb_output_handler;
これを有効にするとロゴがだめになるね。バイナリとテキストを区別せずに
変換してしまっているとかかな?
0425名無しさん@お腹いっぱい。2001/06/25(月) 14:44ID:???
>>423
1.htmlのリンクからきた人だけ別処理するしかないんじゃないか?
0426Error4012001/06/25(月) 16:28ID:???
>>424
> output_handler = mb_output_handler;

うぬ、これが原因だったのか。うーむ。
0427Error4012001/06/25(月) 17:23ID:???
動作確認が出来たので、実機のテスト機(今までやってたのは、テスト機のテスト機)に
PHP4.0.6+mbregexをインストールしてみました。
phpinfo()してみると・・・ロゴが表示されてる。謎だ・・・。
0428名無しさん@お腹いっぱい。2001/06/25(月) 22:27ID:???
>>419
それって、遅くないですか。
めがびみたいに、変数に全部つっこんで、書き出す方がよくないですか。
0429名無しさん@お腹いっぱい。2001/06/26(火) 04:05ID:Rztmdmp6
tok2で、PHPの mail関数使ってメール送れた人って居ます?

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

# phpinfoで見ると、sendmailパスは入ってるんだけど…
# あれが嘘?
0430名無しさん@お腹いっぱい。2001/06/26(火) 05:41ID:???
<?php
mail( "***@********", "subjectsubject", "ascii_only\nascii_only\nascii_only\n", "From: [email protected]\nReply-to: [email protected]\nX-Mailer: PHP/".phpversion() );
echo "<html><body>\nOK!<br>\n</body></html>\n";
?>

このコードで送れないって事は、ダメなんだろうなぁ。
まぁ良いけど…。
0431名無しさん@お腹いっぱい。2001/06/26(火) 16:38ID:???
[PHP-users 278]から。

>ぼくとしては、Apache+perlとか、Apache+rubyはアプリケーションサーバーにな
>りうると思います。

>そのとき、上記のサイボウズOfficeの例だと、システムの中で、cbof40ja.exeを
>インストールしたマシンが、「アプリケーションサーバー」になります。
>Webアプリケーションシステムの中でのサーバー、つまり「アプリケーションサー
>バー」になると思います。

そうかなぁ?思いっきりはずしているような気がする・・・。
どっかに「アプリケーションサーバスレ」があったのだが、見つからない。

MLでレスすると荒れるかもしれないのでしない(藁
0432名無しさん@お腹いっぱい。2001/06/27(水) 12:13ID:c2ANRhTs
PHP4でPerlのuse strictみたいに、変数の宣言を強制すること
って出来ませんか?
変数のスペルミスをデバッグするのは辛いです。
0433Error4012001/06/27(水) 12:46ID:2vjnwCDU
>>432
> PHP4でPerlのuse strictみたいに、変数の宣言を強制すること
> って出来ませんか?

出来ません。

> 変数のスペルミスをデバッグするのは辛いです。

php.iniのerror_reportingでE_NOTICEを有効にしておけばある程度は防げるかと。
0434名無しさん@お腹いっぱい。2001/06/27(水) 22:01ID:0dBIrHQE
PHP3の質問です。
<?php
 exec("tar xf abc.tar");
?>
このような処理を行いたいのですが、ファイルが展開されません。
なぜでしょうか?
abc.tar と そのディレクトリは、 nobody権限にしております。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています