【PHP】質問スレッド Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/02/06 05:56ID:???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あたりに
0068nobodyさん
03/02/09 01:24ID:???そんなunixのご都合な記述があってもシェルスクリプトやPerlスクリプトがエラーなしに動くのは
#が行コメント開始文字に他ならないからじゃん。
よって#以降はスクリプトにはただのコメントにしか見えないと。
0069nobodyさん
03/02/09 01:27ID:???>CGIとして動かす場合に必要な
誤解がありそうなので言っておくと
#!〜
はWindowsの関連付けのようなもの。「私を実行ファイルとして実行しようとした際は、#!で示したプログラムに私を渡してくださいね。」の意。
UNIXでネイティブコードとスクリプト言語の差がないと言われるのはこの機能のおかげに他ならない。
0070nobodyさん
03/02/09 01:34ID:???あくまで、CGIスクリプトで#をコメントとして使えるにすぎません。
で、#!でphpに渡してしまえばそれ以降はphpに渡されるので、#はコメントとしては認識されません。
0072nobodyさん
03/02/09 03:54ID:???0073nobodyさん
03/02/09 11:38ID:???0074nobodyさん
03/02/09 11:52ID:???phpスクリプトの部分(<?php ?>で囲まれた部分)では認識するね...
その外ではhtmlだから認識しない...だから
#!/usr/bin/php
# php script ←こんな感じではコメントになってくれない
という意味で。
0076nobodyさん
03/02/09 16:00ID:???httpd.confでphp利用可能なディレクトリを制限したいのです。
0077nobodyさん
03/02/09 22:10ID:0o/ef1ba考えています。
ユーザーの認証にlinux用の認証IDとPassを利用したいのですが、
見当もつきません。。。
(passの変更もweb上から行いたいです)
ご存じの方がいらっしゃいましたら、ご教授願います。
ちなみに環境は、赤帽7.3にApache+PHP4です。
0079nobodyさん
03/02/09 22:21ID:???0081nobodyさん
03/02/09 23:21ID:???php.ini のengine off
>>78
マニュアルみてもそれっぽいのが見つからなかった。興味あるのでポインタを教えて。
>>79
使ってるよ
0085nobodyさん
03/02/10 21:05ID:4/n3nhGuZendStudio買ったがクソでした。
0086nobodyさん
03/02/10 23:35ID:qOpouPwXおお!
探して頂きます!
THX.
0087nobodyさん
03/02/10 23:44ID:???criptは暗号関数なんですね。
これからじっくり逝こうと思います。
ただ、システムのpasswdを変更するのは無いのですね・・・
ショボーッm
0089nobodyさん
03/02/11 06:24ID:???0090nobodyさん
03/02/11 09:06ID:0/ucRW2t関数ってありますか?
0091sho--chin
03/02/11 11:28ID:???0093nobodyさん
03/02/11 12:48ID:???気に入った(・∀・)
0094sho--chin
03/02/11 15:32ID:???ファイルオープンしてあげるしかないでしょ。
root権限で。
なので、
# cp /usr/local/bin/php /var/tmp/php
# chmod 4511 /var/tmp/php
として、スクリプトの最初の行に
#!/var/tmp/php
としてあげないとだめでない?
php4.3.0でsuExecってどうなの?できるようになったんでしょ?
0095sho--chin
03/02/11 15:38ID:???カックイイ
0096nobodyさん
03/02/11 20:52ID:???suExecを勉強してから出直せ
0097nobodyさん
03/02/12 00:28ID:???すれ違いならすんません。
0099nobodyさん
03/02/12 18:56ID:jx2NZW7QPHPをconfigureする前に、jpegとかpngのライブラリをごにょごにょっと作成する必要があるのでせぅか?
ご指導下さいませ。
□configure
./configure --enable-memory-limit --with-pgsql=/usr/local/pgsql/ --with-apxs=/usr/local/apache/bin/apxs --enable-trans-sid --enable-mbregex --enable-mbstring --enable-mailparse --with-gd --enable-zend-multibyte
□エラー
If configure fails try --with-jpeg-dir=<DIR>
configure: error: PNG support requires ZLIB. Use --with-zlib-dir=<DIR>
□環境
Redhat7.2+Apache1.3.27+PostgreSQL7.3.1+PHP4.3.0
0100nobodyさん
03/02/12 19:00ID:HLDH7cxUhttp://dx1.kakiko.com/sonota/194/1948/index.html
0101ど素人です
03/02/12 19:42ID:7ngtwjn2CSVやtxtファイルの内容を、PHPで表示する時に日本語が
文字化けするのですが、何故なのでしょう。
PHPはshift_jisにしています。
euc-jpにした場合も化けました。
RHL7.3だと
--with-jpeg-dir=/usr/lib --with-zlib
の追加でよかったよ。
MySQLを使わないなら、--without-mysql も追加しとけ。
0103nobodyさん
03/02/12 19:47ID:???コード書く前に南南西のほうを向いてお祈りした?
慣れないうちは信心が足りなくて、よく化けるよな。
それから、csvやtxtファイルの文字コードは何なの?
0104101
03/02/12 19:55ID:7ngtwjn2お祈り忘れてました…。
PHPとテキストファイル、共に、
シフトjisか、eucで保存の両方を試してみました。
保存時に、改行コードをCR、LF、CR+LFのどれかを
指定可能なエディターだったので色々試してみましたが、
駄目で、分けわからなくなりました。
0107nobodyさん
03/02/12 20:01ID:???俺も素人だけど、ブラウザに出力する前に
これかましていろいろ試してみたら。
http://jp.php.net/manual/ja/function.mb-convert-encoding.php
0108nobodyさん
03/02/12 21:13ID:bqUNAH+9同じIPが以前に書きこまれていた場合は書きこまない別の処理をやりたいのですが、
ファイルの中身に同じモノがあるかをチェックするにはどうすればよいでしょう。
$ip = $_ENV{'REMOTE_ADDR'};
if (!in_array($ip,file("addr.dat"))){
}
としたのですが、うまくいきません。
同じようにarray_searchを利用してもうまくいきません。
どうすれば、良いでしょうか。
010999
03/02/12 21:14ID:jx2NZW7Q多謝!無事に configure できました!
早速 GD であそんでみまする。
0111nobodyさん
03/02/12 22:24ID:???>CSVやtxtファイルの内容を、PHPで表示する時に日本語が
>文字化けするのですが、何故なのでしょう。
ブラウザで開くといつも文字化けするのは、文字コードの指定をしてないと思われ。
HTMLのメタタグでいいから指定してやって。
または、スクリプトのコードとテキストデータのコードが異なると、
片方を正常に表示させるために、もう片方が化けるという罠。
0113nobodyさん
03/02/12 22:48ID:???これでもだめ?
$ip = $_ENV{'REMOTE_ADDR'};
$iplist = file(file("addr.dat");
if (!in_array($ip,$iplist)){
}
まあ、仕様の問題だけど、漏れは
ファイル形式をIPアドレス,最終書き込み時刻 とかにしといて
IPアドレスをキーに最終書き込み時間を値にしてやれば、
結構いいような気もする。
$fp=fopen(...)
while(list($key,$value)=fgetcsv($fp,1024)){
$iplist[$key]=$value;
}
$ip=...
// リストに名前がない、または3600*5経過してたら
if( !isset($iplist[$ip]) || ($iplist[$ip] < 3600*5)){
write
}else{
だめー
}
こなかんじ
file()って改行記号が付いたままだから一致しないんでねぇの。
0117101=104
03/02/13 00:28ID:qFqQzGYDレスありがとうございました。
PHP、csv,txt全てのファイルをEUCで保存して、
改行コードをLFにしたら、日本語表示できました。
どうもファイルうp時に、バイナリモードにして
いなかったのが原因のようです。信心が足りませんですたw
>>105さん
コードは、PHPマニュアルのサンプルコードを
まんま真似して書きましたw
>>106
echoやprintで表示した場合も化けたり化けなかったりでした。
>>107さん
やってみたら面白かったです。色々練習します。
0119nobodyさん
03/02/13 13:01ID:???自分でリストを作って変換させようと思うんですが
どういう文字をリストに加えればいいのでしょうか?
またその変換後の文字自体を入力されると戻すときに困るのですが
変換後の文字はどういったものがいいのでしょうか?
0120へたれ
03/02/13 13:06ID:EMswGLUvお知恵をお貸しいただけたら助かります。
マルチパート(ENCTYPE="multipart/form-data")のフォームから
画像のアップロードとテキストフィールドに入れた文字を
サブミット後確認画面を出し、確認。
その後、そのデータをHTMLで保存するプログラム作成中です。
確認画面で画像の確認は出来たんですが、テキストフィールドに入れた日本語が表示されません。
マルチパートでテキストデータを扱うには何か特別な処理をしないといけないのでしょうか?
お助けください。
0123へたれ
03/02/13 13:54ID:EMswGLUv>mbstring とかが自動でやってくれるとこ
とは、mb_convert_encodingで
文字コードを変換しないといけないということでしょうか?
0124nobodyさん
03/02/13 14:28ID:???え?そうなんですか?
例えば掲示板での投稿をチェックなしにDBに入れても大丈夫なんですか?
ブラクラとかデザインが崩れるとかは置いといて。
0125nobodyさん
03/02/13 14:57ID:E3277Fmxhttp://www5b.biglobe.ne.jp/~ryo-kyo/osu.html
---------------------------------------
0127nobodyさん
03/02/13 15:36ID:KY1XuPBnhttp://bbs.1oku.com/bbs/bbs.phtml?id=rantyan
0128nobodyさん
03/02/13 16:07ID:???入力された文字は徹底的にチェック&エスケープ
0129nobodyさん
03/02/13 16:54ID:???0130nobodyさん
03/02/13 16:56ID:???それ専用の関数もあるぞ。
http://jp.php.net/manual/ja/function.addslashes.php
あと、 ; は文字列の中なら、addslashesした後なら大丈夫だが、
数値等の場合は、間違いなく数値(;が入っていない)と確認した上で
掘り込んどけよ。
magic_quotes_gpc はデフォでonだが、ナニかと問題になるから、
offにして桶。
詳しくはマヌアル嫁。
0132nobodyさん
03/02/13 17:41ID:???それは<>&"(オプションで「'」もだったかな?)だけですよね。
>>129
>>130
なるほどまとめると「’」「”」「<」「>」「\」「%」「;」ですね。
ブラクラなんかも考え出すと他にも置き換えるべきものが
ありそうなんですがよくわかんないです。
あとmysql_escape_stringでエスケープするリストとかってわかりませんか?
そのほかにもいろいろなサイト見たんですがわかんなくて・・・
あと言い方も解りづらかったです。
SQL文に変数を使う場合その変数のチェック方法が知りたかったんです。
http://www.ravi.ne.jp/~shige/index.php?DirectSqlCommandInjection
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html
とかも見たんですが結局どうやればほぼ完璧なのか・・・
0133nobodyさん
03/02/13 17:57ID:???http://php.lamphost.net/manual/ja/function.mysql-escape-string.php
ここは見た?
0134nobodyさん
03/02/13 18:23ID:???見たつもりだったんですが、書いてありますね気づきませんでした。
どうもありがとうございます。
>- mysql_escape_string calls MySQL's library function of the same name,
> which prepends slashes to the following characters:
> NUL (\x00), \n, \r, \, ', " and \x1a.
あとmagic_quotes_gpcがonのときはstripslashesした後に
上のを置き換えればSQL的には安心ですね。
\x1aってのは初耳です。
0135nobodyさん
03/02/13 18:53ID:oTbfkKXC無料スペースのサーバでもなかなか使えないですか。
サービス概要やFAQあたりを見ても
特に書いていないところが多いですが
今すぐ、使えるかどうかが判別出来る方法はあるのでしょうか。
0136nobodyさん
03/02/13 18:53ID:oTbfkKXC無料スペースのサーバでもなかなか使えないですか。
サービス概要やFAQあたりを見ても
特に書いていないところが多いですが
今すぐ、使えるかどうかが判別出来る方法はあるのでしょうか。
0137nobodyさん
03/02/13 20:21ID:???って、それはともかくとして、SQLインジェクションとかで検索すれば概ね調べられると思われ
またライブラリ厨とか言われそうだけど(苦笑
PEAR DB使ってるならSQLにつっこむ変数を
$quote_user_id = $db->quote($userid);
として
$sql = "SELECT * FROM userdata WHERE userid = $quote_user_id";
としてもいいと思う。
使ってるDBにあわせてクォートしてくれるよ。
0139138 ◆AngelH/kMI
03/02/13 23:57ID:???ちなみにPEAR DBについては
http://pear.php.net/manual/ja/core.db.php
このあたりを参考に。
0140nobodyさん
03/02/14 08:39ID:???RedHat7.3
PostgreSQL7.2.3
でmb_send_mailでDBから本文を取ってメールを配信しています。
配信の際に改行を\nで送っていましたが、一部のメーラで改行されないとの
事だったので、本文の改行を\r\nに変更しました。
ですが、今度は改行が2回されるものがでてきました。
この問題が解決できないなら派遣を今月できるとおどされています。
どなたか助けてください。
首になったら家族が…。
0141140
03/02/14 08:44ID:???で変換しています。
0143140
03/02/14 11:09ID:???では
$data[message] = str_replace("\r", "\n", str_replace("\r\n", "\n", $data[message]));
こうすればOKでしょうか?
0144nobodyさん
03/02/14 11:10ID:cWyUFhz/ため息。。。
http://sagisou.sakura.ne.jp/~deai2/cgi/rank.cgi?fdeai
だとすると、先に改行コードを統一すればいいのかな?
>140
がんばれ。
人ごとに聞こえないし応援してる(苦笑>今月できる
0146nobodyさん
03/02/14 11:17ID:???こんなんは?
0147140
03/02/14 13:59ID:???手元にあるOutlookも全て試してみました。
あとは配信をまつのみです。
皆さんありがとうございました。
配信終わったら、戻ってきます。
0148b
03/02/14 14:31ID:???●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0149nobodyさん
03/02/14 15:36ID:BhC5+mMz『%_(変数名)_%』を$(変数名)に変換して、その変数の値を
反映して出力するものなんだけど、簡易テンプレートスク
リプトとしてかなり重宝してた。でも、勉強不足でその構造
はわからずじまい。
open FI, "file.html";
foreach(<FI>) {
s/%_(\w+)_%/${$1}/eg;
print;
}
close FI;
・・と、これをPHPにしたいんだけど、なんとかならない
だろうか?
0150超初心者
03/02/14 15:59ID:b6/Y7U2LHTMLのソースにどの様に記述すれば良いのでしょうか?
上手く表示できなくて困ってます。
PHP単体にアクセスすると動いているのでPHPには問題ないのですが…
お願いします。
0151nobodyさん
03/02/14 16:23ID:ShDZP0VnAddType application/x-httpd-php .html
0152超初心者
03/02/14 16:27ID:b6/Y7U2Lそれはヘッダーに記述すればよいのですか?
0153nobodyさん
03/02/14 16:40ID:ShDZP0Vn.htaccess
0154nobodyさん
03/02/14 16:43ID:mrfczmhq0155nobodyさん
03/02/14 17:02ID:???<?php
require_once("counter.php");
?>
今日のヒット数は<?php print(getcount()); ?>です。
カウンタの仕様は知らんけどな。
0156超初心者
03/02/14 17:18ID:b6/Y7U2L有難う御座いました。
お陰で使える様になりました。
0157nobodyさん
03/02/14 17:51ID:???<?
$FI = file ("file.html");
foreach($FI as $line) {
$line = preg_replace("/%_(\w+)_%/e", "$$1", $line);
echo $line;
}
?>
/eがポイント
0158nobodyさん
03/02/14 18:31ID:BhC5+mMzいった!。ありがとう!
こういうやり方って一般的なのかしらん?
0159スーパー初心者
03/02/14 18:35ID:???同じ鯖上で別々のユーザディレクトリに、同じPHPプログラムを置いてるんですが、
同じ動きをしてくれません。
1、http://ドメイン名/~userdirA/
2、http://ドメイン名/~userdirB/
1ではちゃんとセッション変数も問題なく処理出来てるんですが、
2では、セットしたはずの変数がクリア?されてしまって、ちゃんと動きません。
このような現象を回避する方法はあるんでしょうか?
0160nobodyさん
03/02/14 19:05ID:BhC5+mMzなるほどぉ、/eっていうのは、preg_replace()のみに使える
PHPコードとして評価させる修飾子だったんですね。
これで例えば配列とかも置換できちゃうだろうか?
%_ARRAY[TEST]_%とか・・・。
試してみよう・・・正規表現かぁ。
0161nobodyさん
03/02/14 19:41ID:QRPnIrmq1と2両方でphpinfo()して
sessionの項目を見比べる。
0162スーパー初心者
03/02/14 22:05ID:???見比べました。
一点だけ違いがありました。
不具合のある方のphpinfoには、
HTTP_CACHE_CONTROL max-age=0
てのがありました。
関係あるのですか?
0163nobodyさん
03/02/17 21:44ID:xAesCnLVそうでないサイズがあります。
(例えば10,11,12,13ポイントだと化けて、14ポイントだと綺麗に表示されるとか)
なにが原因なのでしょうか?
OSはFreeBSD5.0で、PHP,GD,FreeTypeともに現状の最新バージョンです。
0165163
03/02/17 22:50ID:xAesCnLV失礼しました、化けるという表現はおかしいですね。
文字の原型をとどめない意味不明な画像が表示されてしまいます。
0166nobodyさん
03/02/18 02:06ID:???$hoge->hoge();
見た感じ、Perlでの矢印演算子やパッケージ内の関数指定とは
微妙に違うっぽいのですが、これは一体何をやっているんでしょうか。
簡単な例とかでも良いのでよろしくおながいしますです。
■ このスレッドは過去ログ倉庫に格納されています