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

【PHP】質問スレッドpart20【php】

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん04/08/06 15:44ID:paJ4kjjQ
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 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-4


抜けているものがあったら補足願います
0809nobodyさん04/08/23 23:13ID:???
うっ、プロと見た!
0810nobodyさん04/08/23 23:22ID:???
>>808
答えられる範囲なら。
眠いからもう寝るかも。
0811nobodyさん04/08/23 23:31ID:???
今、HTTPサーバ作ってるんですけど、pukiwikiがうまく動かないんです。
phpinfo()も、ロゴが表示されません。
たぶん、CGIの子プロセス側に与える変数が不足してるような気がするんだけど、
最低限必要な変数の一覧ってどこかに無いですか?
CGI/1.1Specは全く不十分でした。
そもそも変数をどうやって渡すかといった規定すらなく、
色々試してみるしか有りませんでした。
0812nobodyさん04/08/23 23:34ID:???
それとも、PHPはCGIで起動すると機能制限があるのかな?
0813nobodyさん04/08/23 23:38ID:???
在るわけない
SafeModeはmod_phpのみ
0814nobodyさん04/08/23 23:38ID:???
>>811
PHPのバージョンが古いんだよ。でバージョンは?
0815nobodyさん04/08/23 23:41ID:???
そうですか・・・
PHP Test Suiteとかないかなぁ?
0816nobodyさん04/08/23 23:43ID:???
バージョンは、PHP Version 4.3.8です。
System Windows NT XP1 5.1 build 2600
Build Date Jul 13 2004 17:31:56
Server API CGI/FastCGI
Virtual Directory Support enabled
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety enabled
Registered PHP Streams php, http, ftp, compress.zlib
こんなの。
0817nobodyさん04/08/23 23:51ID:YOffYGPl
>>804

えー(;´Д`)
もしかしてみんな気付いてないの?

http://www.php.net/download-docs.php

ここの『Japanese chm』てのダウンロードしてみてよ。
もう1年以上も、文字バケバケなまんまですよ?

chmが一番便利だからよく使うのに、困ります(`Д´)
0818nobodyさん04/08/23 23:53ID:???
あるぇー?
化けてないよ?
0819nobodyさん04/08/23 23:55ID:???
化けてたw
0820nobodyさん04/08/23 23:57ID:???
漏れは化けてないよ?どのページ?
0821nobodyさん04/08/23 23:59ID:???
キーワードのとこ。
0822nobodyさん04/08/23 23:59ID:???
SJISで化けるだけだろ
UTF-8にしろ
0823nobodyさん04/08/23 23:59ID:YOffYGPl
>>820

chmを開くと左側に検索フレームが出るべ?
[目次][キーワード][検索][お気に入り]ってさ。

そのキーワードが化け化けだっぺさ。
それが原因かしらんが、検索もできないだっぺさ。
とてとて困る(;´Д`)

2003年4月頃はまだ化けてなかったので
そのとき落としたchmを今だに使用しているよ(;´Д`)

なんとかして > 偉い人
0824nobodyさん04/08/23 23:59ID:???
化け化けだよ ページは化けてないけどね。使い物にはならないよね
082582204/08/24 00:00ID:???
って、chmだったかスマソ
0826nobodyさん04/08/24 00:00ID:Q8I08UQN

>>822
> SJISで化けるだけだろ
> UTF-8にしろ

やりから教えてたもられ
0827nobodyさん04/08/24 00:03ID:???
Note: The htmlhelp.xsl is currently not too useful alone, as it's used by the new CHM build system which is not available in CVS right now
いまいち意味が・・・
待てって意味なのかな??
0828nobodyさん04/08/24 00:04ID:???
あー、ホントだ、キーワードだめだめだな…
で、こんなページ見つけたから参考にしてみて
ttp://apollo.u-gakugei.ac.jp/~sunaoka/misc/php_manual_ja/
0829nobodyさん04/08/24 00:07ID:???
その勢いで、CGIのほうもよろしくお願いします。
0830nobodyさん04/08/24 00:34ID:???
http://o2on.s69.xrea.com/index.php?The%20O2ON
ここに圧縮してアップしました。
CGIがさっぱりです。
0831nobodyさん04/08/24 01:00ID:???
>>828
うぉぉぉぉおおおお!ありがてー
ずっと困ってたんだよね<文字化け
ていうかこんなの本家でなんとかしる!
0832nobodyさん04/08/24 01:15ID:???
>>831
そうだね 
083380204/08/24 01:19ID:???
>>828

ありがとう〜
自分も探してみればよかった
でもほんと、本家でなんとかしてほしいですね
0834nobodyさん04/08/24 01:40ID:???
こっちのほうが簡単かも
 PHPマニュアルを使いやすくするパッチ
 http://www.vector.co.jp/soft/dl/win95/prog/se321697.html
0835nobodyさん04/08/24 02:17ID:???
>>834
うぉ!こんな便利なのがあったのかー。
さんきぅ
0836nobodyさん04/08/24 03:45ID:???
超初心者です。お手柔らかに。。

test.php内で

<?php include($content); ?>

と記述して

http://xxxx.com/test/test.php?content="content.htm"

としてtest.phpにcontent.htmをインクルードしようとしているのですが、
エラーがでるので何かトンチンカンな間違いをしてるはずです。。
目的として、フレームレスのページを作りたくて、アドレスで変数を書き換えて
メインコンテンツの表示を分岐させたいのです。
どうすれば上手くいきますでしょうか?

宜しくお願いいたします!m(_ _)mm(_ _)m
0837nobodyさん04/08/24 04:00ID:???
<?php
echo file_get_contents($_GET['content']);
?>
こんなの?
0838nobodyさん04/08/24 04:12ID:???
>>836
例えばWin鯖なら、
http://xxxx.com/test/test.php?content=c%3A%5CDocuments%20and%20Settings%5C....
なんてされると、中身が丸見えになっちゃうよ。
0839nobodyさん04/08/24 04:31ID:???
そこはちゃんとPHP側で禁止処理しないとな
0840nobodyさん04/08/24 05:43ID:???
>>833
ttp://bugs.php.net/bug.php?id=26616
かなり前からバグ報告は上がってるが、ずっとopenのまま。
直す気は無いらしい・・・

>>826
以前試しにchmをUTF-8で作り直してみたことがある
ビュアがSJIS専用に作られているらしく、結局キーワードは文字化け
一部にSJISで表示できない文字もあるのに残念
(>>822は>>825で修正してるけどね)

みんな困っているらしくて、php_manual_ja.chmでググると
直っているファイルが結構見つかる
084183604/08/24 11:40ID:???
>837さん

ありがとうございます!以下のようにしましたら上手くいきました!
これでサイドメニュー付きのフレーム無しページが作れそうです。

[test.php内]

<TABLE>
<TBODY>
<TR>
<TD>
<?php echo file_get_contents($_GET['content']); ?>
</TD>
<TD>
<a href="test.php?content=content01.htm">コンテンツ1</a><br>
<a href="test.php?content=content02.htm">コンテンツ2</a><br>
</TD>
</TR>
</TBODY>
</TABLE>

>838さん
>839さん

以上のようなソースのままではディレクトリを見られる危険性はあるということですね。
PHP側で禁止処理とは具体的にどういったものでしょうか?
それとも別な方法で、もっとスマートなやり方があるのでしょうか?
一応はググってみたのですがはっきりとわかりません。
教えて君ですいませんが宜しくお願いいたします。
0842nobodyさん04/08/24 12:27ID:???
>>841
index.php?name=うんこ
とか、名前にうんこ入って飛んで来たらいややん、
受け取ったうんこをどうにかしたいよね。
if(ereg("うんこ",$_GET['name'])){$_GET['name']="";}
そこで、名前にうんこが入ったら、名前を空にするとか
0843nobodyさん04/08/24 12:30ID:???
>>841
あと、Smartyでぐぐり スマートになるから
0844nobodyさん04/08/24 12:36ID:???
>>841
ex)
$content=array('content01'=>'content01.htm','content02'=>'content02.htm');
if(array_key_exists($_GET['content'],$content)){
$view_content=$content[$_GET['content']];
}else{
$view_content='not_found.htm';
}
-snip-
<?php echo file_get_contents($view_content); ?>
-snip-
<a href="test.php?content=content01">コンテンツ1</a><br>
<a href="test.php?content=content02">コンテンツ2</a><br>
-snip-
0845nobodyさん04/08/24 17:40ID:???
ShiftJISかEUC…どっちがいいんだろ
0846nobodyさん04/08/24 18:07ID:???
俺はEUCで書いてるが
0847nobodyさん04/08/24 18:12ID:???
SJISを選ぶメリットなんかあるの?
携帯相手に変換しなくてもいいってぐらいしか思いつかない
0848nobodyさん04/08/24 18:16ID:???
>>845
ちゃんと設定していれば同じだろ。
開発環境とか鯖によって使い勝手が違う程度。
エンジン内部はUnicodeだったと思うが。
0849nobodyさん04/08/24 18:32ID:???
PHPの内部処理デフォルト文字コードはEUC。
だからEUC推奨。
085084804/08/24 18:36ID:???
>>849
古い情報なんだけど、

http://ns1.php.gr.jp/pipermail/php-users/2002-June/008149.html
> mbstringは内部的に全ての文字コードをUnicodeに変換しています。
> つまり、UTF-8等を使うともっとも効率良く動作します。

ってあるのだが、変わったのか?
0851nobodyさん04/08/24 18:47ID:JRjosLZb
俺はUTF-8で書いてるんだけどダメ?
XHTMLとRSS吐き出させてるから楽なんだけども。。
0852軟式PHP04/08/24 19:08ID:???
文字コード議論はループするの巻(´・ω・`)
0853nobodyさん04/08/24 19:14ID:???
コーディングはEUC
出力はSJISでやってる
0854nobodyさん04/08/24 19:37ID:???
UTF-8でないと表示できない文字とかあるのでUTF-8
0855nobodyさん04/08/24 19:57ID:???
厨質問で申し訳ないんだけど、
UTF-8で書くってのは・・・・
どんな設定のことを言うの?

まず、ソースの文字コードだよね?
あとブラウザに吐き出す header だよね?
テンプレートの文字コードだよね?

他には?
0856nobodyさん04/08/24 20:37ID:???
なんでもかんでもEUCでいいじゃん
楽だから
0857nobodyさん04/08/24 20:37ID:???
なにがいいたい?
085885704/08/24 20:38ID:???
>>855ね。
0859nobodyさん04/08/24 20:39ID:???
>>855
馬鹿?
コーディングに決まってんだろ
0860nobodyさん04/08/24 20:47ID:???
ぜんぶSJISがいいじゃん
0861nobodyさん04/08/24 20:54ID:???
fsockopen を使ってpopと会話する様なコードを作成してるのですが
fgetsで取得毎に mb_convert_encoding($buffer, "EUC", "JIS") という処理をかませているけども
ヘッダの Subject 部分がどうしても普通の日本語表記になってくれないんです...

Subject: =?iso-2022-jp?B?SVRTUxskQkw1TkE/R0NHJTUhPCVTJTkkTiQ0MEZGYhsoQg==?=

↑こんな感じで

本文及びHTML全体の日本語部分は正常に変換・表示できているのに
ヘッダのこの部分だけなんとも出来ない状態です


もしかして、これは仕様でしょうか?
それとも、変換処理がまだなにか足りないのでしょうか?


どうか神のご加護を
0862nobodyさん04/08/24 20:57ID:???
ttp://jp.php.net/manual/ja/function.mb-decode-mimeheader.php

phpにはこんな関数もあるんだな
便利だよなぁ
0863nobodyさん04/08/24 21:02ID:???
とりあえず
>>845は絶妙なタイミングで定番のエサを撒くフィッシャー
0864nobodyさん04/08/24 21:12ID:???
とりあえず
>>863は絶妙なタイミングで定番のスレの流れを止める馬鹿
0865nobodyさん04/08/24 21:17ID:???
>>857
実際にUTF-8で運用するってなったら、
ソースの文字コードだけでなく、色々設定必要だよね?

ってか普通はコーディングのみUTF-8でやるってことなの?
(で、出力はSJISとか)

ってことはEUCで書いたコードを全部文字コード変換でUTF-8に変換すればいいってわけ?
0866Tom04/08/24 21:19ID:l95C3MHe
PHP初心者です。現在、move_uploaded_file を使って画像ファイルを
ウェブ上のimageフォルダにアップロードするページを作っています。
しかしimageフォルダにファイルを移すためには、このフォルダの
パーミッションをゆるくしなくてはならず(一応テストでは777に
してます。。。)、セキュリティ面でちょっと心配なのですが、
皆さんはこのようなケースではどのように対策されているのでしょうか?

imageフォルダには一応、トップページにリダイレクトするindex.php
を入れていますが、他にも何かできること、対策がありましたら
是非ご教授いただけると幸いです。
よろしくお願いします!
0867nobodyさん04/08/24 21:19ID:???
>>851
RSSって何を使って生成してますか?
PearのXML_RSS?
0868nobodyさん04/08/24 21:21ID:???
>>866
“PHP(mod_phpならApache)がアクセスできるセキュリティ設定”ってことでいいのでは?
0869nobodyさん04/08/24 21:25ID:???
>>866
basic 認証じゃダメ?
0870nobodyさん04/08/24 21:43ID:BjXF/ulZ
>>866
わたしは特に気にしてませんね。
だってプロバイダとかが提供してるスペースにCGIおく場合も
パーミッション777とか755とかがデフォルトだし
0871nobodyさん04/08/24 21:47ID:G+Zi/Jg+
管理人が殺された!!!
http://www2.ezbbs.net/04/235963
0872nobodyさん04/08/24 21:53ID:???
あ、XML_RSSってRSSを作ることはできないのか・・・
0873nobodyさん04/08/24 22:05ID:gv2tQqB7
新規質問です。
phpでxml宣言(<?xml〜?>)を出力したいときはecho以外にどんな方法があるでしょう?
教えて下さい凄い人。
0874nobodyさん04/08/24 22:07ID:k28OQysD
>>873
print
ヒアドキュ
0875nobodyさん04/08/24 22:42ID:???
>>873
php.ini で short_open_tag = Off
これを設定すると <? だけでなくて、<?= の形式も使えなくなるので注意が必要。
0876nobodyさん04/08/24 22:58ID:9mq/YpZu
初めまして。質問です。
文字列をGETで渡す場合、例えば
test.php?url=http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=hoge&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
とした場合、"&"以下の文字列が受け取れません。
http://www.google.co.jp/search?hl=ja
↑こんな感じ。
理由は分かるのですが、最後まで文字列として受け取れるアイデアは無い物でしょうか?
0877nobodyさん04/08/24 23:02ID:???
いや、受け取れるから
0878nobodyさん04/08/24 23:12ID:???
>>877
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=hoge&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
という文字列を受け取りたいみたい

>>876
わざわざGETで渡さなくてもPOSTで渡せばいいじゃん
その方がユーザにも悪戯されにくいし(気休め
0879nobodyさん04/08/24 23:16ID:???
>>878
ああそういうことか。
&を何か別のセパレータに変えてGETで渡して
もらったところで、$_GET['url']を先ほどのセパレータで分割
とか?
0880nobodyさん04/08/24 23:19ID:???
素直にurlencodeかrawurlencodeしてみては?
0881nobodyさん04/08/24 23:20ID:???
$_SERVER["QUERY_STRING"]から抜き出すしかないだろ。
088287904/08/24 23:20ID:???
あ、ただ受け取るだけか。
http://google(ryの中の&を\tにでも変える。
んで、GETで渡す。
もらった奴の\tを&にもどす

つーのでいいのでは?
0883nobodyさん04/08/24 23:23ID:???
普通に受け取れてる漏れは?
0884nobodyさん04/08/24 23:29ID:???
>>883
URLエンコードされてるから
0885nobodyさん04/08/24 23:32ID:???
>>884
その通り!!
0886nobodyさん04/08/24 23:52ID:???
>>874
CLI版では流石に無効な罠……
俺strtrで置換させちまった
088787604/08/25 00:25ID:N00bMw4b
ありがとうございます。
$_SERVER['QUERY_STRING']で解決できました。
もう一つ、恥ずかしいのですが、"url="以下を取り出す際、
$URL = $_SERVER['QUERY_STRING'];
$URL = strstr($URL,"url=");
$length = strlen($URL);
$URL = substr($URL,4,$length);
としています。
なんか不恰好な気がするのですが、もう少しスマートなアイデアありませんか?
088887304/08/25 00:37ID:2ASjXTcy
>>874>>875
THX。

#age進行でいいのか・・・?
0889nobodyさん04/08/25 00:57ID:???
>>887
$URL = $_SERVER['QUERY_STRING'];
$URL = substr($URL, strpos($URL,"url=")+4);
とか
preg_matchとか。
0890nobodyさん04/08/25 00:59ID:hWDzpod0
>>887
おれならこうする。
$URL=preg_replace("/^url=/,"",$_SERVER['QUERY_STRING']);

0891nobodyさん04/08/25 01:00ID:???
>>887
ていうか
$length = strlen($URL);
は何がしたいんだ?
0892nobodyさん04/08/25 01:06ID:???
>>890
発想がちょうど逆だったw
preg_replace('/url=(.*)$/','$1',$_SERVER['QUERY_STRING']);
089387604/08/25 01:12ID:N00bMw4b
再度感謝です。
もやもやがすっきりしました。よく眠れそうです。
>>891
長さを指定しなきゃいけないもんだと思い込んでました。
ありがとうございました。
0894nobodyさん04/08/25 16:29ID:???
PHPを普通にインストールすると、勝手にPearも入るけど、
やっぱりPearは最新版に更新してから使った方が無難?
0895nobodyさん04/08/25 16:37ID:???
>>894
つい先日php(rpm形式)をupdateしたら、
DB::DataObject pgsql.php のLIMITの扱いが LIMIT $count,$from になってて、
チョロっと2,3滴出てしまった。
(ある時期以降、PostgreSQLは LIMIT $count OFFSET $from しか受け付けないようになった)
0896nobodyさん04/08/25 16:58ID:???
>>895
げ。それはやだなぁ・・・
むー。
0897nobodyさん04/08/25 17:00ID:???
RSSを作る方法としては、どんな感じでやってますかー?
教えてエロイ人。

普通にSmartyとかでテンプレート作っといて、
assignするだけでもいいような気もするけど・・・。
0898nobodyさん04/08/25 17:04ID:hvemyQ1Y
ちと質問を。
phpのテキストカウンターで。
xxx.phpで使うのなら
include("./count.php");
などで読み出しできるけど、
これをjavaスクリプトを使わないで
xxx.htmlで読み出し出来ないかなと思ってるのだけど、
何か方法ないですか?
本体ページがhtmlのみでCGI使えないサーバ−でphpは他サーバーで使ってるのだけど。
0899nobodyさん04/08/25 17:18ID:???
>>898
<iframe>もしくは<ilayer>を使うしかないのでは。
どっちゃにしろ板違い。
0900nobodyさん04/08/25 17:24ID:???
>>899
どこが板違いなんだよw
なんでもかんでも板違いって言えばいいってもんじゃないだろが。

iframe&ilayerか。さんきゅ。やってみるよ。
でも。それだと、BGに画像がある場合はその部分だけおかしなことになるかな。
ま。ありがとね。

0901nobodyさん04/08/25 17:38ID:???
はぁ・・・
夏休みもあと1週間ですよ
もう少しの辛抱です
0902nobodyさん04/08/25 17:51ID:???
ああいう板違いの質問も少しは減るだろうね。
090389904/08/25 18:38ID:???
(T_T)
0904nobodyさん04/08/25 18:55ID:???
元気だせ。
夏厨っていう蚊に刺されただけさ。
0905nobodyさん04/08/25 19:01ID:???
はぁ、板違いに気づかない夏厨ってかなり悪質な部類だな
0906nobodyさん04/08/25 19:05ID:???
気付かないんじゃなくて分からないんじゃないかな。質問側は。
分からないからこそ聞いてるわけだし。
0907nobodyさん04/08/25 19:09ID:???
>>906
分からん奴は板違いを指摘されて「板違いじゃねぇよw」なんて言わない
0908nobodyさん04/08/25 19:10ID:JWj1Ppy8
それはもっと悪質だと思ふ。。
レス数が900を超えています。1000を超えると表示できなくなるよ。