【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
0621nobodyさん
02/04/20 04:25ID:Mslw1o2Nphpでの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>";
}
?>
===
0623nobodyさん
02/04/20 13:01ID:???にしてみたら?
0624nobodyさん
02/04/20 14:48ID:???0625nobodyさん
02/04/20 22:08ID:Mslw1o2NphpをCGI版じゃなく、Apacheモジュールとして動作させ
解決しました。どうもでした。
0626nobodyさん
02/04/20 22:17ID:dRKvCqvIFatal 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:wb3vDYFUWindows2000だけでできるの?
Linuxとか使わないとだめ?
0631あえてウソを教えてみる
02/04/21 09:49ID:???そうだよ。君には Linux が必要だ。
何冊か本や雑誌を買ってきて、勉強しながらインストールしてみよう。
0632nobodyさん
02/04/21 11:47ID:/tnBoE3S知りたいんですよね。
0633nobodyさん
02/04/21 12:17ID:???エラー:The member function on a non-object is called.
0635nobodyさん
02/04/21 15:37ID:???http://〜/hoge.php/zzz みたいに使いたいんですが・・・・
0636nobodyさん
02/04/21 15:57ID:???サーバソフトで決まるだろ。
0637635
02/04/21 16:22ID:???hoge.cgi/zzz は期待通りに動くので、phpだとできないのかと思った次第です。
サーバの環境としては、Apache2.0.35にphp4.2RC3をDSOで入れてあります。
0639taketyan ◆JQJvqZpw
02/04/21 17:13ID:???0640nobodyさん
02/04/21 17:22ID:???http://jp2.php.net/manual/ja/ref.sockets.php
これではダメなのかえ?
0641635
02/04/21 17:23ID:???今のところ、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:???0643635
02/04/21 17:33ID:???0644nobodyさん
02/04/21 17:55ID:73tQq+THPATH_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の人は何がうまくいかないのか書いていない為、状況が判らず、困っています。
鬱だ詩嚢
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を重ねるにはどうしたらよいのでしょうか?
0651650
02/04/22 04:13ID:???ImageCreate使った後に
ImageColorAllocate使えば塗りつぶしできるな。
0652648
02/04/22 19:47ID:???ImageCreateしたイメージを一旦名前を付けて保存し、
改めて開き、ImageCopyすることで重ねることが出来ました。
0653645
02/04/22 21:20ID:AXvATEcmレスありがとうございます。
むちゃくちゃな質問してしまってすいませんでした。
原因がわかりました。
上手く動かなかったのは、サーバプログラムを導入していないPCでテストしていたためでした。
サーバに上げたら正常に動作しています。
お騒がせしてしまい、本当に申し訳ありませんでした。
0654_ ◆IVXmlxmI
02/04/23 12:50ID:3ZaaJEvLPHP4.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:ztAlz169mb_http_output('SJIS');
ob_start('mb_output_handler');
と、
header("Content-type: text/plain");
とかヘッダー関数を一緒に使うとなんも表示されなくなった。
これはバグなのか?
4.1.2では両方とも同時に使えていたのだけど。
とりあえず、APCはcvsバージョンで普通に入った。
あと、safe_mode使ってるとsafe_mode_include_dirの書き方が
微妙に変わったらしく前のまま(シングルクオート)で囲ってると
ダメだった。
>654
register_globals のデフォルトがoffになるの、
思ったより早かったね。
4.3.0あたりからだと思っていたのに。
0657_ ◆IVXmlxmI
02/04/23 18:03ID:???解説本書いてる人たちは直し面倒だろうなぁ
MLみるとmb関連などで4.2.1が出そうな雰囲気なので
うちではちょっと我慢
0658655
02/04/23 18:07ID:ztAlz169表示はされるようになったが、今度はSJIS変換が効いてない・・
0659nobodyさん
02/04/23 20:27ID:???すようなものを作りたいのですが、権限なしとでます。
PHPスクリプト内で実行権限をnobodyから変えるようなことはできますでしょうか
0660nobodyさん
02/04/23 20:43ID:???0661nobodyさん
02/04/23 22:17ID:jWd71drqzend studio(PHP統合開発環境)で、デバッグURLできないんだけど、どうすれば良い?
デバッグURLというのは、実際に稼動しているサーバのPHPスクリプトをデバッグする機能。
今までに行った設定は、普通にzend studioをインストールして、ポート10000空けただけ。
ほかに必要な設定とかありますか?
0662661
02/04/23 22:26ID:jWd71drqlocalhostのウェブサーバに接続しています(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=603
02/04/23 22:45ID:B45a096eえらく遅レスですみませんが、PHP3は、確かに国際化版です。
でも、PHP4の方は、PHP4.0.6なんですよ。(mb_なんちゃらの関数があるやつ)
だから、「PHP4の国際化版」ということですよね?
PHP4.0.6の「自動変換」系の処理はあまり信用したら
ダメだと思う・・・。
(何となくそのあたりのバージョンのmail関数に
バグがあった気がするんだけど覚えてない。
スマソ。)
PHP3国際化は化けなかったけど、PHP4にしたら
化けた、ってことも多かったし。
出来るだけ明示的に指定したほうがいいですよ〜。
0665663
02/04/23 23:48ID:B45a096eなるほどー、1つ物知りになりました。ありがとうございます。
0666nobodyさん
02/04/24 11:55ID:27Mq6623PHP側からMySQLへUPDATEでデータ更新を行うと思っくそ文字化けします。
データを投げる際、文字コードをEUCやSJISへの変換も試みてみたのですが
全くうまく行きません。表示側での文字化けでなく、DB内部で文字化けしています。
ドキュメントも全然見つからないので質問しました。
なにぶんDB自体まだ不慣れなので根本的な点で躓いているかもしれませんが、
助言お願いします。
0667nobodyさん
02/04/24 12:49ID:xs5bIMSGそれなら変換いらないはず。
たぶん入力フォームとデータ表示ページの文字コードが違ってるんではないかと。
関係するすべてのhtmlファイルににmetaタグでEUCを明示してみて。
0668666
02/04/24 13:40ID:27Mq6623ありがとうございます、解決しました。
ソースの文字コードを全部EUCにしたら変換無しでも
正常にデータ更新が行えました。
我ながら超初歩的な点で躓いていたなと反省します。
0669nobodyさん
02/04/24 14:25ID:qHnTuQcbiモードはs_jisしか対応してないみたいで文字化けします。
どーすりゃいいでしょうか
解決したみたいだけど、少し補足。
MySQLは確かデフォルトでEUCだったはずなので
ブラウザからの入力、ブラウザに対する出力がSJISなら
入力(SJIS)>(mbstringでEUCに変換)>DBにinsert
DBからselect>mbstringでSJISに変換>ブラウザに出力
ってかんじのことがいります。
他の方法として、自分は内部エンコードをUTF-8にして
MySQLのBLOB型にバイナリとして保存、ということをやってます。
以上参考になれば。
>669
単に出力をSJISにするだけでは?
0672nobodyさん
02/04/24 15:42ID:???opendir(),readdir()の結果から該当しないものをオミットするとか考えたんだけど、もっと簡単にできるものがありそうで。
0673nobodyさん
02/04/24 19:46ID:tWCSSODi4.2.0は我慢するしかないか?
0674nobodyさん
02/04/24 19:48ID:tHbMJxml0675nobodyさん
02/04/24 22:31ID:2H1uzio+君....
それは、難しすぎる
他の板に行ってくれ。
0676nobodyさん
02/04/25 01:35ID:Dqy3iBWZ最近PHPをはじめました。
んで、DBを使う時に、いろいろなページや本を見ると、
ほとんどすべてLinuxを使ってますよね。
やはり、本格的にPHPでDBを使うなら、Linuxを導入しなければ
いけないのでしょうか…。
http://hp.vector.co.jp/authors/VA023283/
このようにwinでPostgreSQLを使えるようなものもあるみたいですが、
どうなんでしょう…。
0679nobodyさん
02/04/25 10:10ID:iOYJ99hT>本格的にPHPでDBを使うなら
本格的にやるなら,Linux導入したほうがいいよ。
ネット上に落ちているPHP + DB(MySQL)連動のものは
ほとんどLinux + Apache環境で開発されてるからね。
PHPが使えるレンタルサーバーとかでもLinuxベースだしね。
0680nobodyさん
02/04/25 11:01ID:???$msg = file($message);
srand((double)microtime()*1000000);
$num = rand() % sizeof($msg);
echo("$msg[$num]");
という風にTOPページに馬鹿げたランダム嘘新着情報を表示してる俺…。応用でランダム馬鹿TOP画像も。
0681ok
02/04/25 22:13ID:???メールサーバーにqmailをつかっていてsendmailははいっていません
phpのバージョンは4.2です
0682nobodyさん
02/04/26 01:10ID:gdGuor6I0683ok
02/04/26 21:00ID:???って設定したんですけどこれじゃあダメですか?
0684名無し
02/04/26 21:00ID:hGC+fs9Vネットワーク接続するとライセンス違反であるというの
本当ですか。
会社のイントラネットで150台つないで使っています。
0685nobodyさん
02/04/26 22:25ID:Sgu23qbz構成されているかどうかを調べるには
どうすれば良いでしょうか?
0686nobodyさん
02/04/27 00:09ID:40Y3gDf/sendmail -t -i
でやってみ
0687nobodyさん
02/04/27 00:46ID:5ozKIanzif(ereg([^0-9,])){
}
よってるからだめだったらすまn
0688nobodyさん
02/04/27 01:47ID:???PHPで$str = base_convert($digit, 10, 62)なんてやってみましたが、2〜32進数までしか対応して
いないようです。
googleで調べたところ、perlの変換コードはあったので、それを応用しようとしていますが、
はまっています。
何か簡単な方法なぞあるのでしょうか?
0689nobodyさん
02/04/27 02:36ID:40Y3gDf/if (preg_match("/^([0-9,]+|[^.*])$/i", $str)){
}
こんなんはどう?
0690
02/04/27 14:32ID:o0HNGDqt0694nobodyさん
02/04/28 15:28ID:T4n5Tvqk0695nobodyさん
02/04/29 01:09ID:6cDOgkjXChora CVS Viewer とかで使われてるdiff.phpとかの中身参考にして作れば?
0696nobodyさん
02/04/29 04:54ID:g+MD6PFP0697nobodyさん
02/04/29 09:23ID:SgsfgQTv動的なレコードセットオブジェクトを作成する方法はありますか?
ADOやRDO、OO4OのようにSELECTで発行したレコードセット上でADDやUPDATE、
DELETEを行いたいんです
0698nobodyさん
02/05/01 00:54ID:c7UNrZdfPHPで、ヘッド、メイン、フットをくっつけられる
スクリプトを配布してるところありませんか?
0700nobodyさん
02/05/01 13:47ID:???小一時間問いつめて(・∀・)イイ?
<?php
readfile("~/public_html/header.html");
?>
0702nobodyさん
02/05/02 10:27ID:H4uNVy/3いろんなサイトを参考にして、Windows2000にApache、PHP4、MySQLをインストールして
ブラウザからローカルでPHPをテストできるところまで行きました。
あとはPHPからMySQLに接続すればSQL文を送信れきるんですよね?
そのためにはMySQLを起動するんでしょうか?
なんか信号機みたいなアイコンが出ます。信号は赤です。
できればサービスとして使いたいのですが。
0703kossy
02/05/02 11:32ID:Ogsl+RYnhttp://member.nifty.ne.jp/Y-Yamada/php/
赤ではサービスが動いていない。
0704nobodyさん
02/05/02 14:25ID:ReJCGtLpファイル書き込みで、バイナリで書き込みたいんですが
どうすれば良いですか?
fwriteの引数の型がstringの為、文字列として書き込まれてしまうのですが。。
ちなみにUNIXです。
$data = 1;
fwrite( $fp, $data );
ファイルの中身は0x31。
0x01で書き込みたい。
申し訳ありませんが、宜しくお願い致します。
0705nobodyさん
02/05/02 15:09ID:LWXh07pJfopen("FILE", "wb")
で開いてみれば?
0706nobodyさん
02/05/02 15:12ID:StaNwaI6参照することって出来ないんですか?
$a = new test;
$a->bar = "NG";
$b = $a;
$b->bar = "OK";
echo $a->bar;
class test {
var $bar;
}
このスクリプトの結果が"NG"になって
ちょっとショックなんですが・・・
0707nobodyさん
02/05/02 15:16ID:ReJCGtLpそれは試したのですが、ダメだったのです。
バイナリファイルを読み込んで(0x01)、そのままその値を編集せず
書き込んだ場合はOK(0x01)なのですが。。
コード上で値をいれようとすると文字列になってしまうのです。
$data = 0x01;
fwrite( $fp, $data );
これでもファイル内は0x31
0710nobodyさん
02/05/02 15:33ID:SdWAUBLy$data = chr(1);
fwrite($fp,$data);
これじゃダメなの??
0711nobodyさん
02/05/02 15:46ID:ReJCGtLpありがとうございます。
ただし、1バイトを越える値の場合は何か良い方法ありますか?
0712あぼーん
NGNG0713nobodyさん
02/05/03 10:53ID:2N37GTgZ$count = "0\n";
のとき、$count ++; とか ++$count; ってやると 0\n のままで、
$count += 1; ってやると 1 になるのはなんででしょうか?
よろしければご教授ください。
0714nobodyさん
02/05/03 13:22ID:2f1x5Gpchttp://hoge.net→http://fuga.com/access.phpって感じです。
ですが、この方法だとRefererが全てhttp://hoge.net/になってしまいます。
どうにかしてリンク元のサイトを取得する方法はないでしょうか。
方法は何でもいいのですが、hoge.netの設定をいじることはできません。
0715nobodyさん
02/05/03 13:36ID:6+RS1vf90716nobodyさん
02/05/03 13:43ID:???<script type ="text/javascript">
<!--JavaScript
document.writeln("<img src=\"http://fuga.com/access.php?referer="+document.referrer+"\">");
//end-->
</script>
0717nobodyさん
02/05/03 13:48ID:6+RS1vf90718nobodyさん
02/05/03 15:58ID:o476aILpsession_start();でエラーになるようです。
Failed to write session data(files).〜のエラーが表示されますが、セッションファイルはちゃんと作られています。読み取りがうまくできていないのでしょうか?
PCからアクセスときは上手く動くのに・・・なぜでしょうか?
0719nobodyさん
02/05/03 16:18ID:???0720714
02/05/03 16:47ID:jtB/eSrYありがとうございます。
その方法だと当然JavaScriptをオフにしている環境ではカウント自体されませんよね?
html+PHPだけで実現させる方法はない、という理解でいいでしょうか?
できればブラウザに依存しない方法を使いたいのですが。
ちなみに、hoge.netでは.htaccessは使えますが、関係ない・・・かな?
0721710
02/05/03 16:58ID:ae/2vlov気になったので調べてみたけど、イマイチ無いっぽかった。
変数にためてたのを、一括して出力したいって事だよね?
だとしたら、packもちょっと違うし・・・
1byteづつ地道にやるしか?
■ このスレッドは過去ログ倉庫に格納されています