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

【PHP】質問スレッド Part5

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/09/11 14:15ID:FWA0CpdU
レスは気長に待つのが良い感じかも。


■本家
http://www.php.net/

■日本 PHP ユーザ会
http://www.php.gr.jp/

■PHP マニュアル
http://www.php.net/manual/ja/

■PEAR マニュアル
http://pear.php.net/manual/ja/


過去スレ, 関連スレ及び注意事項等は、
>>2-10あたりにきっと誰かが……。
0103nobodyさん02/09/21 01:48ID:???
>86
どう答えて欲しいの?
私もデザイナーだけど、言語に関係なくプログラマのスキルが関係してると思うけど?
確かに、言語が理解しやすい分初心者でも作りやすいから
セキュリティホールの多いものも確か。

>最近の事情を知らないのですが、
>最近PHPつかったサイトって、セキュリティ甘過ぎないですか・・・?
あなたのように事情を知らない人が作っていると思いますよ。

>それなりに有名なサイトとか、go.jpなサイトでそういうの見つけちゃった
はい。当たり前にあります。特にXSSとか・・。
それに、あなたのスキルでは見つけられないセキュリティホールは死ぬほどあります。

>ふつーなんですか?最近のphp使いさんは
普通かどうかはその人の知識による。

同じデザイナーとして、恥ずかしい質問はやめてください。
0104nobodyさん02/09/21 02:24ID:???
>>86
しつこいので>>103さんに加えてさらに追い討ち。

>>(1)directory の indexが丸見えなために、あるいは
PHPに限らない。Apacheの問題。

>>(2)適当なquery stringぶちこむと簡単にphpのエラーメッセージが見れて、そのエラーメッセージから
PHPの設定の問題。が、JSP等でもエラーメッセージ(printStackTrace)が出ることもある。

>>・・で、インクルードされるファイルが見えて、それ見ると、
見えるのはおかしい。Apacheの設定の問題。

>>変数のエラーチェックをまともにやってないから、
>>query stringに適当なSQL文(をエンコードすると)入れるとDB操作ができちゃいそうで・・・
もちろんPHPに限らない。
チェックをしないでも安全な言語なんてどこにもない。

まぁPHPは敷居が低いのでセキュリティ知識のない人が存在する割合が
他の言語と比べて高くなっているのは認めるところだが。
0105nobodyさん02/09/21 02:34ID:???
クロスサイトスクリプティング脆弱性とか?
0106nobodyさん02/09/21 09:39ID:ZZHp0IbF
外注に回したいんですが、PHPを使ったデータベースシステムって
普通どれくらいお金払えば作ってもらえますか?
CSV、MySQL、PostgreSQL、でそれぞれ大体の制作費を
教えて欲しいんですが、、。
0107nobodyさん02/09/21 11:03ID:???
MySQL,PostgreSQL \800,000/人月
CSV \1,200,000/人月(メンドイから)
0108nobodyさん02/09/21 11:10ID:ZZHp0IbF
>>107
そんなにかかるんですか??
0109nobodyさん02/09/21 12:00ID:8ExCK0V+
>>108
あんまり製作を外注したことないでしょ?
それは結構安い方だと思うよ。
まあ、単価だけじゃわからんけどさ。
0110nobodyさん02/09/21 14:17ID:???
fwriteで書きこむと改行コードが付加されます?
fgetsで取りこむと改行コードが消えます??
なぜかデータに妙な改行コードが出たり消えたりするのですが
0111tora02/09/21 15:55ID:???
<?php
/* クッキー名(任意) */
$cookie = "COOKIE_VISIT";
/* クライアントからクッキーが送信されているか判断 */
if (isset($HTTP_COOKIE_VARS[$cookie])) {
$value = (int)$HTTP_COOKIE_VARS[$cookie];
} else {
$value = 0;
}
/* 訪問回数のインクリメント */
$value++;
/* 有効期限(1年) */
//60秒
$expire = time() + 60;
/* クッキー発行 */
setcookie($cookie, $value, $expire);
session_start();
print("<BR> $value 回<BR>");
?>
これで、何回このサイトに来たのか確認するプログラムを組んでいます。
このプログラムネットスケープでは上手くいくのですが、IEでは上手くいきません。
どうしたらよいのか教えてもらえないでしょうか?
PHP4,register_globals=offです。
よろしくお願いします。
0112tora02/09/21 16:06ID:???
すいません。
エラー内容を書くのを忘れてました。
IEでのエラー内容ですが、
読み込むたびにsessionIDが更新されているみたいなのです。
よろしくお願いします。
0113nobodyさん02/09/21 17:20ID:7B0wr+QP
インストールに関しての質問です。

環境は、FreeBSD 4.6 です。
いつも、configureをする時にFreeBSD用に、
./configure --prefix=/usr/local --sysconfdir=/usr/local/etc --datadir=/usr/local/share/php --mandir=/usr/local/man --with-pgsql=/usr/local/bin --enable-mbstring --enable-mbstr-enc-trans

をしていたのですが、
build/bsd_makefile
があるのを知りました。どのようにして使ってセットアップすれば良いのでしょうか。
0114nobodyさん02/09/21 18:22ID:???
http://www.php.gr.jp/images/logo1t.gif
PHP4はないの?
0115nobodyさん02/09/21 21:38ID:???
http://www.php.net/download-logos.php
これでいいか?
0116nobodyさん02/09/21 22:50ID:???
>>115
ありがとー!
4はないみたいね?
0117nobodyさん02/09/22 02:18ID:???
ないよ。
0118nobodyさん02/09/22 02:46ID:PyH4t/bU
>>113
buildconf なんてスクリプトを見ると

case "`uname`" in
*BSD/OS*)
./build/bsd_makefile;;
esac

なんて書いてあるから、FreeBSD では使わないのが吉では?
FreeBSD 使ってるならビルドは、

cd /usr/ports/www/mod_php4
make
make install

の方がお手軽で確実でせう。

%% せっかくの port ノウハウなんで利用しないともったいない。
---
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0119Disca ◆NAfP6znE 02/09/22 19:52ID:frQAcJLs
>>113 です
>>118 サンクスです。
私の場合は、stand/sysinstall でPackageをインストールしているのですが、
無いです、WWW、Japaneseのディレクトリも探したのですが無いです。
変ですよね。
0120nobodyさん02/09/23 01:21ID:UbulpwL5
ん、ports を入れてないの?セキュリティを重視するなら、ports のファイルを
展開しておいて cvsup で更新かけると良いでしょう。下手に新しいソースコード
を導入するより、ports/packages の方が管理情報が残るし手順の再現ができて
楽だと思う。
0121nobodyさん02/09/23 05:53ID:g72U2pu2
質問です。
PHPで、変数に何も入ってないかどうか調べる関数ってなんでしたっけ?
01229902/09/23 07:42ID:???
>>121
http://search.net-newbie.com/php/ref.variables.html
このあたり参照どぞ
01239902/09/23 07:45ID:???
あの、、、
素人な俺が素人向けにページ立てようと思うんだけど、やめたほうがいいかな?
0124nobodyさん02/09/23 11:10ID:Py8drUeO
is_null
0125nobodyさん02/09/23 12:19ID:???
>>123
素人物をストリーミング配信せよ!
0126nobodyさん02/09/23 12:27ID:???
>>123
どうせならここでURL晒せば?
0127nobodyさん02/09/23 13:10ID:???
>>123
立てたらURL晒していいよ。
01289902/09/23 13:36ID:???
じゃ、張り切って次スレまでには立てます!
よろしくおながいします!
0129nobodyさん02/09/23 21:10ID:???
>>128
がんばれよ。
0130nobodyさん02/09/23 21:22ID:mnhekBpn
Apache + PHP + MySQLの構成なんですけど
全部インストールしたんですけど

httpd.confの設定できません
LoadModule php4_module lib/apache/libphp4.so
ライブラリがないんです

Apacheで./configureのオプション
PHPで./configureのオプション

みんなの設定教えてほしいです

っていう質問ここでしていいですか?
0131nobodyさん02/09/24 00:01ID:???
>>105
公開串とパッケットキャプチャで日々情報収集...
0132nobodyさん02/09/24 00:41ID:???
>>130
googleより早く解決できると思うのならいいよ
0133nobodyさん02/09/24 00:42ID:/r2x96gq
現状でphp4をインストールするならどれを入れればいいんでしょうか?
日本PHPユーザ会に書いてある
"日本語関係の処理にバグがあります。patch が出るまでしばらくお待ち下さい。"
というphp4.2.3のパッチってもう出てるんですか?
0134nobodyさん02/09/24 03:49ID:6xTHY1PU
今までPHPファイルをftpソフトがバイナリ転送してたんだけど、
問題なく動いてます。
別にアスキー転送じゃなきゃダメって訳じゃないのかな?
0135nobodyさん02/09/24 08:57ID:???
>>133
MLに流れているけど、暫定パッチぽい。
で、わいはいまのところ4.2.2のまま。
0136nobodyさん02/09/24 17:50ID:clJNObLG
PHP4つかって請求書とかを印刷しようとするとやっぱPDF出力しかないのかなぁ
どなたかこういうので使ってるよって人アドバイスおながいします
0137nobodyさん02/09/24 18:29ID:???
ブラウザを限定すればJavaScriptとCSSでできるよ、
つーかオレそうしてるし。
0138nobodyさん02/09/24 20:32ID:nF3wJ6pk
SQL→PHP→XMLTで
0139nobodyさん02/09/24 21:07ID:uxYEF9Jg
PerlもPHPも難しい!
しかも、PHPにいたっては普及してるのだろうか?
パールと違ってPHPで
作られた掲示板や検索エンジン(自動リンク)は
まともなものが見つからない!誰かphpとMYsql
を使った検索エンジンを配布しているところ知らない?
プログラマーーってすごすぎる!尊敬してしまうよ
俺は今、おみくじスクリプトが限界だ。
0140nobodyさん02/09/24 21:09ID:nF3wJ6pk
XSLTだった。スマン。
0141nobodyさん02/09/24 23:44ID:eG+qA3Bk
Linux(コバルト)使っているのですが
一年くらい稼働しているのですが、そのうち2日間だけ
/tmp/フォルダに、
phpcSCFMZ
のような、php+ランダムな文字列のファイルが
数百個できてました。サイズは0。ファイルオーナーはhttpd。
これは何なのでしょうか?
削除してもいいのでしょうか?

セッションとは別だと思います。session_ランダムな文字列で
一定期間だけ作成されていますので。

どなたか教えてください。
0142nobodyさん02/09/24 23:58ID:???
>>139
XoopsとかのNuke系のやつ使えば?
一応リンク集のモジュールもあるし検索も出来る
0143nobodyさん02/09/25 00:17ID:???
>>141
マルチウザ
0144nobodyさん02/09/25 00:43ID:???
>>139
俺が思うにPHPのフリースクリプトはPerlほどは出てこないんじゃないかな?
だってPerlの奴が腐るほどあるからね。
PHPで作ろうと思っても新しいアイデアもそう簡単には思い浮かばないし。
作っても結局、PHPでわざわざ配布する必要あんのか?って感じ。
0145nobodyさん02/09/25 01:47ID:???
PHPは実行環境を選ぶしね。
Perl CGIはほとんどの鯖ですぐ使えるが。

フリースクリプトの設置に苦しむレベルの人だと、
PHP+DBのシステムを作るのは敷居が高いでしょう。
0146nobodyさん02/09/25 08:38ID:???
http://www.hotscripts.com/PHP/Scripts_and_Programs/
ここにはイパーイ
0147nobodyさん02/09/25 17:12ID:sj/HLJpa
>>146 英語だらけできついよ。
   説明書も英語だろうし。
   やっぱ、スクリプトから勉強しなきゃダメか・・・。
   日本が作った奴ってないのか?
   日本人は遅れてるな。実は日本人が作った奴
   一個見つけたんだが糞だった。
0148nobodyさん02/09/25 17:14ID:sj/HLJpa
>>144 負荷率が抑えられる。
0149nobodyさん02/09/25 18:46ID:???
>>147
フリースクリプトの設置に苦しむレベルのひとが
英語のreadmeを忌避するひとが
DB使おうなんて考えることがまずおかしいんじゃないか?

それから
>やっぱ、スクリプトから勉強しなきゃダメか・・・。
などと言っている不勉強な香具師に
>実は日本人が作った奴一個見つけたんだが糞だった。
などと言われてもお前自身糞なことからはじめろ、としかレスしにくいんだが。
0150nobodyさん02/09/25 21:13ID:???
努力をしないヤツはどこへいってもウザがられるのだね。
0151nobodyさん02/09/26 00:02ID:???
何事も努力が必要です。
実際、自分で作ってみれば難しさがわかるべヽ(`Д´)ノ
0152nobodyさん02/09/26 00:31ID:???
>>150
努力しても出来ないヤツもウザがられるがな。
要は場の雰囲気を読めっつうことだよな。
0153nobodyさん02/09/26 02:11ID:???
>>147
自分じゃ作れないくせによくも糞とは言ったもんだ。
しかも日本人は遅れてるだと?
じゃあ何も出来ないお前はどこら辺?




まあ気持ちはわからんでもないが・・・
0154nobodyさん02/09/26 02:32ID:???
公開されているスクリプトの数は何の関係もない。
0155nobodyさん02/09/26 03:48ID:???
>>153
作る側の立場なら>>147は目糞だが、使う側の立場なら>>147は鼻糞。
そして>>147すら満足させられない漏れらは耳糞。
>>147自身、糞だって自覚してるんだよ。
>>147は努力しないひと。勉強できないひと。
そんな>>147に捧げよう。
<?
echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=http://tmp.2ch.net/kitchen/\">";
?>
0156nobodyさん02/09/26 05:07ID:???
>>155
それをやるならもっとスマートに
<?
header("Location: http://tmp.2ch.net/kitchen/");exit;
?>

と。
0157nobodyさん02/09/26 09:31ID:FqgYcmGJ
PHPにはMOD関数が無いようなのですが、、、
他の方法で余りを求める方法があれば教えてくださいm(_ _)m
0158nobodyさん02/09/26 09:35ID:???
>>157
関数じゃなくて演算子 %
015915702/09/26 09:57ID:FqgYcmGJ
>>158
できました!
ありがとうございましたm(_ _)m
0160nobodyさん02/09/26 10:30ID:???
PHP&MYSQLを使用しています。
PHPでMYSQLのフィールドカーソルを操作したいのですが、よくわかりませんでした。
簡単な操作方法がありましたら教えてください。
0161nobodyさん02/09/26 20:33ID:v/eI/U7R
>>160
それは「PHP」の問題か?
0162nobodyさん02/09/26 21:11ID:???

>>160 ネタだろ?マヂ質問だったら電波板にでも逝け。
0163nobodyさん02/09/26 23:04ID:???
mysql_field_seek
mysql_fetch_field
0164nobodyさん02/09/28 00:40ID:???
PHP + MySQL
http://pc.2ch.net/test/read.cgi/php/983250751/l50
0165nobodyさん02/09/28 23:08ID:???
.phpを設定時間がきたら起動さす方法はありますか? cron以外なので無理かな・・・。
0166nobodyさん02/09/28 23:58ID:???
>>165
cron以外ということはUnix系OSなんですな。
気軽な方法ではcorn以外思いつかないけど、
Unix板かLinux板で聞いてみるとか。

レンタル鯖はcronを使わせてくれない、もしくは有償だったりしますが、
自宅や会社のPCを使って、定期的にwgetさせる手は使ってます。
0167nobodyさん02/09/29 00:07ID:???
METAで時間設定してブラウザつけっぱで放置、ならできるじゃん?
0168nobodyさん02/09/29 00:09ID:???
>>166
ども。レンタルというこで当然cron使えず、
やぱしcron使わずには無理なんでしょうね。
だと、訪問者に踏ますようにするしかないかな?
どなたか良法知てたら教えてください。
0169nobodyさん02/09/29 00:12ID:???
>>167
ありがとうございます。
そうですね。でも付けっ放しは無理だなー。
ツウ事で、訪問者がらみでMETAが有効になりそうですね。
どうなんでしょう?
0170hmk02/09/29 00:14ID:0Sel5nEd
>>168
最後に踏んだ時間をサーバ上のファイルに記録しておけばいいやろ。
0171nobodyさん02/09/29 01:51ID:Y4MVE/IQ
>>165
どういう処理をするものなのか解らないけど、
誰もアクセスしてなきゃ動かす意味ないんだろ?
んじゃ、設定した時間以降一回目のアクセスで動くようにしたら?
0172nobodyさん02/09/29 02:33ID:???
スレ違いの悪寒がしてきた。
0173nobodyさん02/09/29 02:59ID:DMNuaTqB
安い中古PC(数千円で買える)にLinuxを入れて、cronとwgetで定期的にアクセスする・・・

とっても不恰好だけど、とにかく安上がりに作りたいなら、こんな手もあるということで。
ついでに、自宅のルーターとしてもつかったら?

そもそも、なにを目的として、定期的に .php を実行したいのかによって解は変わるかも。
不定期でもいいなら、誰かがアクセスしに来たときに現在時刻を定数で割って、1時間おき
とかに所定のファイルが実行させるようにしてもいいのでは?
017417302/09/29 03:02ID:???
定数で割るってのは、ちょっと変か・・・ スマソ

170さんが書いているように最終アクセス時刻をファイルに保存しておいて、現在時刻との
差が1時間以上経過していたら実行するとかは?
0175nobodyさん02/09/29 03:20ID:D5u5GxKu
php4.2.2+gd1.8.3+ttfで文字をImageTTFText()関数で画像化したいのです。
zlib,libjpeg,FreeType 等インストールしてpngで表示させるのは
成功したのですが、jpegだとNGです。
phpinfo()をみると
PNG SUPPORT enabledとなっていても、JPEGについては記述がないので
PHPのconfigureのログをチェックしたらこんな感じでした。(jpeg関連のみ抜粋)
checking for the location of libjpeg... yes
checking for jpeg_read_header in -ljpeg... (cached) yes
checking for gdImageCreateFromJpeg in -lgd... (cached) no
gdImageCreateFromJpegがyesなら問題ないと思うのですが。
誰か同じような問題に当たった人いたら教えて下さい。
017617502/09/29 03:24ID:D5u5GxKu
追加です。
GDのMakefileにはこんな変更を加えました。これでpngはOKでした。
CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG -DJISX0208 -DHAVE_LIBTTF
LIBS=-lgd -lpng -lz -ljpeg -lm -lttf
INCLUDEDIRS=-I. -I/usr/include/freetype -I/usr/include

jpegライブラリ関係が機能してないのかなとも思ったのですが
チェックする方法とかないでしょうか。
0177nobodyさん02/09/29 03:32ID:???
>>170 >>171 >>173
用途はただのデータ集計なんです。できれば定刻がベストですが無理ですね。
おっしゃるように最後に踏んだ時間を記録して、
時間差を確認して起動する方法を考えていきます。
ありがとうございました。

>>172
すれ違いなりました。 もうしわけない。
0178nobodyさん02/09/29 03:36ID:???
>>175
まったく解らないのだが、

>checking for the location of libjpeg... yes
は、libjpegにロケーション出来てるかどうか?

>checking for jpeg_read_header in -ljpeg... (cached) yes
は、readだから読み込み?

でも、
>checking for gdImageCreateFromJpeg in -lgd... (cached) no
は、Createって単語が入ってるから、「作る」に関係がるんだろう。

ってことは、JPEGを作るための物が欠けてるんだねってカンジがするけど・・・

あくまでも、エラーを見たカンジで言ってるだけですけどw

017917502/09/29 03:41ID:D5u5GxKu
>178 どもです。
jpeg関係は jpegsrc.v6b.tar.gzからインストールしてます。
../configure --enable-shared
make install
ログを見た感じではjpegライブラリの場所はわかってるみたいなので、
確かに「作る」に関係してものが足りないんだろうけど。
それがなにか、わからないんですよね(半泣)
018017802/09/29 03:44ID:???
>>175
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=gdImageCreateFromJpeg

見た?
018117502/09/29 04:07ID:D5u5GxKu
>178
みました。が、わからず。
他に例がないってことは自分の環境に問題があると考えた方がよいかも。
とりあえず。ねます。レスサンクス。
0182nobodyさん02/09/29 06:37ID:YD0GxPMW
>>177
言わずもがなのこととは思いますが・・・

クライアントからのアクセスをトリガにしてPHPを実行している真っ最中、
つまり、ファイルに保存している最終実行時刻を更新する前に、
もう一発クライアントからのアクセスがあると、2重にスクリプトを実行して
厄介なことになる可能性がありますので、ファイルのロックなどで適切に調停
して下さいね。
0183nobodyさん02/09/29 09:49ID:???
>>182
なるほど、きっちりロックしときます。
ありがとうございます。
0184nobodyさん02/09/29 23:01ID:WutRk6vF
$HTTP_GET_VARSの使い方をおしえてちょ
0185hmk02/09/30 02:35ID:???
>>184
$HTTP_GET_VARSは配列で、スクリプトに渡された変数と値が、この配列のキーと要素になりまそ。

例 x=1,y=2が渡された場合
$HTTP_GET_VARS["x"] が 1
$HTTP_GET_VARS["y"] が 2
になりまそ。たぶんね。
0186nobodyさん02/09/30 02:46ID:???
??
0187nobodyさん02/09/30 03:07ID:???
過去ログまだ見てないから
ガイシュツかどうか分からないけど
PHP4.1.0以降だったかな?では

$HTTP_GET_VARS -> $_GET
$HTTP_POST_VARS -> $_POST

に変わったから注意ね
018818702/09/30 03:17ID:???
あ 正式にoffになったのは4.2.0からなのかな
スクリプト配布サイトにとっては厄介な変更だけどね

http://www.php.gr.jp/history/release_4_1_0.html
http://www.php.gr.jp/history/release_4_2_0.html
0189nobodyさん02/09/30 11:15ID:???
if($ID = 'a' || $ID = 'b' || $ID = 'c')

と

if($ID = 'a|b|c')

の書き方は一緒なんでしょうか?
0190nobodyさん02/09/30 11:52ID:???
??
0191nobodyさん02/09/30 12:20ID:P9mskQbo
>>175
PHPの./configureで
lib/libjpeg.soのあるディレクトリ(--with-jpeg-dir=/usrまたは--with-jpeg-dir=/usr/local)
を指定した方がいいんじゃない。
0192nobodyさん02/09/30 12:22ID:P9mskQbo
>>189
"|"と"||"はまったく違うって
0193nobodyさん02/09/30 12:36ID:???
つーか、"=" が足りないような。。。

if($ID == 'a' || 'b' || 'c')
0194nobodyさん02/09/30 13:03ID:???
>>189
ちがうんちゃうんか?
$ID = "c";if($ID == 'a' || $ID == 'b' || $ID == 'c'){echo "ID:含";}
$ID2 = "c";if($ID2 == 'a|b|c'){echo "ID2:含";}
0195名無しさん02/09/30 13:05ID:???
???
0196nobodyさん02/09/30 15:05ID:???
???
0197nobodyさん02/09/30 18:01ID:???
複数行にわたる文字列があって、
その内の # から始まる行を削除したいのですが、
どのようにすれば良いでしょうか?
# から始まる行数は場合によって異なります。
0198hmk02/09/30 18:25ID:???
>>197
$str = ereg_replace("\n#[^\n]*\n", $str);
$str = ereg_replace("^#[^\n]*\n", $str);
$str = ereg_replace("\n#[^\n]*$", $str);
$str = ereg_replace("^#[^\n]*$", $str);

こんなんで出来るかなぁ。。。
きちんと書けば、正規表現一発でできるはずなんだけど。。。
上のが無理なら、文字列を改行でexplode()してからループさせる方法もある。
0199nobodyさん02/09/30 22:27ID:p1yTd7Ex
すんません、初歩的な質問させていただきます。
BASICにあったMID、(部分文字列コピー)関数のようなものは無いでしょうか…。
スマソ
0200nobodyさん02/09/30 22:32ID:???
>>199
あるよ
http://www.php.net/manual/ja/manual.php
0201名無しさん02/09/30 22:41ID:???
>>199
あるよ
http://www.php.net/manual/ja/manual.php
020219902/09/30 22:48ID:p1yTd7Ex
どこ?
http://www.php.net/manual/ja/ref.strings.php
■ このスレッドは過去ログ倉庫に格納されています