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

【PHP】下らねぇ質問はここに書き込みやがれpart16

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/05(日) 22:35:34ID:sf8bx52D
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/

過去スレは>>2
0103992006/02/07(火) 17:06:24ID:???
>>102
・・・・・・・あ・・・そうか・・・ありがとうございます
0104992006/02/07(火) 17:14:43ID:???
ふときづいたのですが、
php4とphp5がみにいくphp.iniを別個に用意することはできないでしょうか?
0105nobodyさん2006/02/07(火) 17:32:16ID:???
>>104
PHP5ならhttpd.confにPHPIniDirで指定できる。
0106nobodyさん2006/02/07(火) 17:54:04ID:???
>>104
PHPのコンパイル時にかっちり指定してもいいし、
CGI版なら普通な設定ならば、違うものを読みにいくでしょ?
0107nobodyさん2006/02/07(火) 18:34:21ID:???
SQLiteで聞けと言われました
ここでいいのか判らないけど、質問します

現在ロリポップでmovable type(SQLite)を運営していますが
さくらのプレミアムプランへの移行を考えています

この場合、例えば設定を書き換えた上で
ダウンロードしたファイルをそのまま丸ごとアップして
パーミッションさえ設定すればデータは復旧できるのでしょうか?
それとも、インストールから一通りの手順を踏む必要があるのでしょうか
0108nobodyさん2006/02/07(火) 18:44:11ID:z2Ed5501
PHPでPDFを出力したいと思い、
ttp://www.php.net/manual/ja/ref.fdf.php
を読み、Adobeのサイトで FDF Toolkit というのを
ダウンロードしようとしましたが、住所氏名電話番号使用目的など
たくさん書いて、Adobeの人に承認されないとダウンロードできません。
ttp://partners.adobe.com/public/developer/acrobat/fdf/topic.html

なので誰かください。
# FDF Toolkit for Windows (ZIP: 2.2MB) [FDF Toolkit access approval required]

FPDFはあまりに煩雑すぎてイヤです。
0109nobodyさん2006/02/07(火) 18:51:04ID:???
>>107 >>108
PHP 関係無い。>>107 は DB 板へ >>108 は ダウソ板へ
0110nobodyさん2006/02/07(火) 18:52:34ID:???
ぐぐっても出てこないのですが、mail関数で送信する
簡単なメール送信フォームを作成したのですが、メール送信後に

511 Headers specify no receipients.
というエラーメッセージが出ます。

mb_language("ja");
mb_internal_encoding("sjis");
も指定してます。どうしたら出ないように出来るのでしょうか?
0111nobodyさん2006/02/07(火) 19:11:13ID:???
>>109
108がダウソ板ってのはちょっと違う希ガス
0112nobodyさん2006/02/07(火) 19:15:33ID:???
>>107
DB板つうよりも、ブログ板のMTスレだな。
0113nobodyさん2006/02/07(火) 20:49:13ID:???
>>110
そのメール内容は送信相手にちゃんと届いてますか?
そのエラー訳したら

「ヘッダーは受取人を全く指定しません」

ってなったけど。あとreceipientsではなくrecipientsだと思う
0114nobodyさん2006/02/07(火) 21:25:39ID:QxUNaPeI
preg_replaceで
test/&test2/&test3/&
という文字列から&の直前のスラッシュのみをすべて取り除きたいのですが
正規表現に詳しい方がいたらやり方を教えてください。
0115nobodyさん2006/02/07(火) 21:25:43ID:xKyeolaW
既出かもしれませんが、お分かりの方がいたら教えて下さい。

methodがPOSTになっているフォームの内容をPHPで送信したいんですが、どうやれば良いんでしょうか?
例えば、ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
そのあと、戻って来たページ(html)を読み込みたいんです。

fopen()でURLを指定する事も出来ませんよね。

よろしくお願いします。
0116nobodyさん2006/02/07(火) 21:34:21ID:???
>>114
&の直前のスラッシュって条件なら、
正規表現使わなくても

$text = test/&test2/&test3/&;
$text = str_replace("/&", "/", $text);

でできないかな。
的外れならスマン
0117nobodyさん2006/02/07(火) 21:34:54ID:???
$text = "test/&test2/&test3/&";
だった
0118nobodyさん2006/02/07(火) 21:35:11ID:???
>>114
preg_replace('/\/\&/', '&', "test/&test2/&test3/&");
01191182006/02/07(火) 21:35:58ID:???
>>116
ああ、その方が適切。
0120nobodyさん2006/02/07(火) 21:41:49ID:???
Array
(
[0] => あああ
[1] => いいい
[2] =>
[3] => ううう
[4] => えええ
)
から、空の要素を削除して
Array
(
[0] => あああ
[1] => いいい
[2] => ううう
[3] => えええ
)
にするにはどうすればよいのでしょうか。
0121nobodyさん2006/02/07(火) 21:44:53ID:???
array_map
0122nobodyさん2006/02/07(火) 21:50:12ID:QxUNaPeI
>>116
おお!!ビンゴです!!
わたしが難しく考えすぎていたみたいです。
どうもありがとうございました。本当に助かりました。
0123nobodyさん2006/02/07(火) 21:50:54ID:???
>>120
$new = preg_grep("/./", $old);
01241202006/02/07(火) 22:08:36ID:???
>>123
できました。ありがとうございます。
正規表現で.(全ての文字)にマッチするのだけを返すんですね。メモメモ。
0125nobodyさん2006/02/07(火) 22:08:52ID:???
>>115
エヌパーキボンス(´_ゝ`)
0126nobodyさん2006/02/07(火) 22:26:44ID:???
>>115
PEARのHTTP_Requestが楽。
またはsocket通信。
0127nobodyさん2006/02/07(火) 23:29:30ID:xKyeolaW
>>126
なるほど、参考になりました。
どうもありがとうございました。
0128nobodyさん2006/02/08(水) 01:14:09ID:???
よくパスワードの関係で、表示された画像に写る文字列を入力すると言うのがありますが、
あれってGDでも出来るんですか?
普通の文字ならまだしも、無駄にふにゃふにゃしてますよね。
何かフォントでもあるんでしょうか。
0129nobodyさん2006/02/08(水) 01:27:12ID:???
ふにゃふにゃってかわいいなお前(*´Д`)
0130nobodyさん2006/02/08(水) 02:03:14ID:???
>>128
GDでできなくはないけど結構面倒くさいと思う。
元のフォント自体があんな風になってるわけじゃなく、フォントから生成した画像に対して
ピクセル単位にデータの位置をずらしていく、いわゆる画像フィルタ処理のライブラリを
用意しておいて、それを通して加工した画像を表示させてる感じ。
PHP+GDでもピクセル単位での読み出しと出力はできるので頑張れば同じような
画像加工も可能だとは思うけど、一発でそういう変換ができるわけじゃない。
自分で頑張って座標変換の計算をするような演算式を書く必要あり。
ま、画像の加工と言っても基本的には座標位置の変換だけなので、
画像変換処理の中では比較的楽な部類ではあると思うけどね。
(左右ずらしだけじゃなく回転や歪みが入ってくると計算が面倒になってくるけど)
0131nobodyさん2006/02/08(水) 02:13:16ID:???
そんな面倒な事せずにImageMagic使ったら?
0132nobodyさん2006/02/08(水) 02:18:08ID:xBsMO0LF
>>128
そういうのを作ってくれるCGIがあったはずなので
それ探して使えば?
0133nobodyさん2006/02/08(水) 02:30:02ID:xmigkNJp
http://www.ihot.jp/?heichan
0134nobodyさん2006/02/08(水) 02:40:34ID:T0ghpS/6
ヤホートピックスの仕様が変わったらしく、エラーになったので直しているのだけれど、以下だと文字化けしてしまう所が出ます。
どうしたらいいのかなぁ。

<?php
include("jcode-LE.php");
if ($fp = @fopen("http://www.yahoo.co.jp", "r")) {
while (!feof($fp)) $data .= mb_convert_encoding(fgets($fp, 1024), "SJIS", "EUC-JP");
fclose($fp);
}
$match_all = preg_match_all("%<a href=\"http://rd.yahoo.co.jp/toppage/topics/(.+?)\">(.+?)</a>%is", $data, $item);
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc1\" target=\"_blank\">トピックス</a>\n";
echo "<ul>\n";
for ($i=0; $i< $match_all; $i++) {
$url = "http://dailynews.yahoo.co.jp/fc/". $item[1][$i];
$title = $item[2][$i];
$title = strip_tags($title);
echo "<li><a href=\"". htmlspecialchars($url) ."\" target=\"_blank\">". htmlspecialchars($title) ."</a></li>\n";
}
echo "</ul>\n";
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc2\" target=\"_blank\">一覧</a>\n";
?>
0135nobodyさん2006/02/08(水) 02:49:53ID:???
テキトーにテメーで考えろよ。
0136nobodyさん2006/02/08(水) 03:01:28ID:???
>>134
それを解決したら、いくらくれるんだ。
0137nobodyさん2006/02/08(水) 05:28:53ID:???
>>128
php|architectまたはPHPプログラマーズマガジンの2003年2月号で
「Building a Turing Test with PHP and the GD Library
(PHPとGDライブラリでチューリングテストを試みる)」
http://www.asial.co.jp/magazine/backnumber/200302/
という記事がある。自分で作るなら参考にすると良い。
やってるのは描画位置ずらしと違う色の線を重ねるパターンだけだけど。

他に回転や複数フォントの組み合わせもやると、更に高度になるけど
スクリプトローダー相手にはそこまでしなくても、まあ大丈夫。
あと探せばライブラリは何個かあるよ。
0138nobodyさん2006/02/08(水) 05:33:22ID:???
>>128

http://www.linkclub.or.jp/~ma3ki/webutil/jpgraph/howtomake-jpgraph.html#antispam
0139nobodyさん2006/02/08(水) 08:40:33ID:???
jcode使ってる奴っているんだ。。
0140nobodyさん2006/02/08(水) 09:44:40ID:???
>>115
>ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
sessionとかcookieとか使ってみたらどうよ。
0141シャットダウン2世@初心者2006/02/08(水) 09:50:48ID:HTXUrlQx
>>12->>14
レスサンクスです。SQL5を再インストールしたら(汗)
PHPで書いた文でWebページにテーブルが表示されるようになりました。
いろんなバージョンをいじくってたら、ポートが3307になってたり
したけど、今はSQL5ひとつだけのポートは3306になっている模様。
3つほどさらに質問があるんですが、

1、PHPの設定はSJISにしてるんですが、とってきたレコードが文字化けします。
2、PHPのプログラムで接続、クローズしてもW2kのサービスで反映されてません。
ブラウザでは「connect DB」とか「close DB」とか
ちゃんと表示されているのに。
3、「insert into …」で新しい行を書き込んだら、
ブラウザでは「書き込みました」と出るのに、Mysqlで見てみるとレコードが
入ってません。
オレのPCには魔物が天狗がひそんでいるんでしょうか。
0142nobodyさん2006/02/08(水) 10:02:29ID:???
>>140

そこでsessionやcookieきたのにワラタwwwwww

>>126 がいってる通りPEARのHTTP_Requestを使うのが一番楽い。

コードで記述すると以下みたいな感じになる。

$req = new HTTP_Request("URI");
//POSTを定義
$req->setMethod(HTTP_REQUEST_METHOD_POST);
//実際に渡すPOSTデータをセット
$req->addPostData("foo", "var");
//リクエスト
$req->sendRequest();
//ヘッダー取得
$header = $req->getResponseHeader();
//レスポンスコード取得
$code = $req->getResponseCode();
//リクエスト後のHTMLを取得
$body = $req->getResponseBody();

詳しくは以下参照
ttp://pear.php.net/manual/ja/package.http.http-request.php


そういやHTTP_RequestのsetProxyメソッドを使用した際に
timeout処理の部分にバグがあったから手直しした事があるな。
0143nobodyさん2006/02/08(水) 10:13:59ID:???
>>141

まず1に関して
何をSJISにしてるんだ?
内部コード?出力コード?
まぁどっちにしろ、MySQL側の文字コードとPHP側の文字コードがあっていないからそういう事態が発生する。

2に間して
MySQLの終了が出来ないと言ってるのか?

もしそうならば勘違いしている。
PHP側がMySQLを起動終了させるわけではなく、アクセスのオープン、クローズをしているわけだ。

3に関してはコードを見ないとなんとも言えないな。
0144nobodyさん2006/02/08(水) 10:18:18ID:???
>>142
俺の足りない脳を笑って楽しいか?
0145nobodyさん2006/02/08(水) 10:49:21ID:???
>>144
イキロ
0146nobodyさん2006/02/08(水) 11:58:52ID:???
php4で動いていたスクリプトを5の環境でも使用する場合、
特に変更する必要がある点などあるのでしょうか?
4で動いていれば基本的に5でも問題なく動作するのでしょうか?
0147nobodyさん2006/02/08(水) 12:09:46ID:???
>>146
>>1
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
0148nobodyさん2006/02/08(水) 12:41:15ID:???
>>146
多くの場合はそのまま動くけど一部仕様変更あり
0149nobodyさん2006/02/08(水) 15:55:23ID:zajb1emB
PEAR 自身のアップグレードをしたくて
pear upgrade pear
したら、
requires package 'PEAR' >= 1.3.3
とメッセージが出てアップグレードできません。
確かにインストールされてる PEARは1.3.1 です。

アーカイブをダウンロードしてきて、
手動で pear/PEAR ディレクトリを書き換えてしまっていいのでしょうか?
0150nobodyさんNGNG
php.iniではなくphpスクリプトの方で
ポストされるファイルのサイズを制限したいんですが
どうしたらいいですか?
0151nobodyさん2006/02/08(水) 18:16:28ID:???
>>150
upload_max_filesizeは.htaccessでも設定できるよ
0152nobodyさん2006/02/08(水) 18:21:31ID:???
>>150

<?
$max_size = 1024 * 100;
$kb = $max_size / 1024;
if($_FILES["hoge"]["size"] > $max_size){
exit("アップロードされたファイルは最大ファイルサイズ(".$kb."KB)を超えています。");
}
?>
0153nobodyさん2006/02/08(水) 18:23:28ID:0zkvAuO5
くだらなくてすみません。
phpのコードに出てくる「 => 」の意味は何ですか?
貰ってきたコードに出てきました。
数字=>"ファイル名"みたいになってます。
0154nobodyさん2006/02/08(水) 18:32:38ID:???
>>153

つ ttp://jp.php.net/manual/ja/function.array.php
0155nobodyさん2006/02/08(水) 18:34:06ID:???
>>153
配列の時に使う。
key => value
キーと値という意味。
0156nobodyさん2006/02/08(水) 18:35:32ID:???
>>150-151
ini_set関数でも設定は変えられるわな。
場合によっては、upload_max_filesizeだけでなく、post_max_sizeも変える必要もあるかと。

>>152
これって、実際にPOSTされた後でしか実行できないよね?
01571492006/02/08(水) 18:36:25ID:zajb1emB
だれかおしえて
0158nobodyさん2006/02/08(水) 18:37:04ID:0zkvAuO5
>154,155
うひょー。どうもです。
=>を使えば、順番にかかわらず配列の中身をコントロールできますね。
すげー。わかりやすいし。
ありがとうございました。
0159nobodyさんNGNG
>>151-152>>156
どうもありがとうございます。

>>151
あ、.htaccessでもできるんですか。
それは知りませんでした。
てっきりphp.iniでしかできないのかと思ってました。

>>152
その方法でやってみたんですが、
>>156のとおり
アップロードされた後にチェックする感じになってしまいましたorz

>>156
phpスクリプトの中からも変えられるんですね。
できるだけphpスクリプトの中だけやりたいので
それで行こうと思います。
0160nobodyさん2006/02/08(水) 18:43:25ID:o/oLkGrK
CGI/perlで質問ですが
$cnt1〜$cnt100まで、今のところ100個の変数にそれぞれ数値が格納されています。
コレを「一番大きいもの」を見つけるにはどうやったらいいのでしょうか?
正規表現でこういうのとかあるんですか?
それとも比較して1つ1つ気の遠くなるような作業をするんですか。。。orz

どうやればいいのか分からないので、アドバイス下さい。
0161nobodyさん2006/02/08(水) 19:02:41ID:???
>>160
ここは PHP の質問スレだ。帰れ。
0162nobodyさん2006/02/08(水) 19:19:51ID:???
>>160
PHPだったら、整形してmax()で一発なのに
残念だったねぇ(w
0163150NGNG
すみません。>>156の方法でやってみたんですが
なんかうまくいきませんでした。
で、なんでだろうとググったりしてみたら
>>156の方法が有効なのはPHP 4.2.3 までらしいです。
それ以降のバージョンでは
upload_max_filesizeとpost_max_sizeが
PHP_INI_PERDIRという分類になってて
.htaccessとかphp.iniからしか変更できないっぽいです。
なのでphpスクリプトから制限するのは諦めて
.htaccesで制限する方向でやってみようと思います。
0164nobodyさん2006/02/08(水) 19:27:48ID:???
>>156
あれ?upload_max_filesizeってPHP_INI_SYSTEM|PHP_INI_PERDIRじゃなかったっけ?
0165nobodyさん2006/02/08(水) 19:28:50ID:???
ああ。4.2.3まではPHP_INI_ALLだったのか
0166nobodyさん2006/02/08(水) 19:38:24ID:???
>>162
push(@cnt, ${"cnt$_"}) foreach(1..100);
$max = (sort(@cnt))[-1];
だからPerlでもあんまりかわらんと思う
0167nobodyさん2006/02/08(水) 19:46:15ID:???
激分かりにくいけどな
01681562006/02/08(水) 20:00:58ID:???
>>163
うぉ、すまんかった。
パラメータによって有効無効があるのは知っていたけど、いちいち確認してなかった…

htaccessからでも、<FilesMatch>ディレクティブか<FilesMatch>ディレクティブを使えば、
ファイルごとに設定を変更できるよ。
0169nobodyさん2006/02/08(水) 20:05:19ID:???
$max = (sort(map{${"cnt$_"}}(1..100)))[-1];
ここまでやんなきゃ大したことないって。ふつーふつー
0170150NGNG
>>168
ありがとうございます。
一応うまくいきました。

でもちょっと気になることがあるんですが、
upload_max_filesize を10Kにして、さらに
<input type="hidden" name="MAX_FILE_SIZE" value=100000000000>
というタグを入れてブラウザに知らせるマックスファイルサイズを大きくした上で
100Mbyteのファイルをアップロードしようとすると、
upload_max_filesize が10Kなのにもかかわらず
ブラウザはずいぶんと長い時間送信し続けるようになります。
そして最終的にアップロード失敗や成功の画面ではなく
投稿フォームの初期の画面に戻ります。
スクリプトは実行されていないみたいで
テンポラリファイルのサイズを調べることができません。

これってブラウザが勝手に送りつけてるだけで
サーバー側は upload_max_filesize 以上受け取っていないと考えて良いんでしょうか?

読みにくい文章ですみません(・・;
0171nobodyさん2006/02/08(水) 22:07:23ID:???
>>170
Apache自体は全部受信してて、それをPHPコアがフォーム分解してテンポラリを作る際に、
サイズが大きすぎたら処理を中断してエラーフラグを設定して、スクリプトの実行を開始、
って感じだと思う。
サーバー負荷を下げるのが目的ならname="MAX_FILE_SIZE"で指定してやんないといけないし、
それを無視するブラウザを弾きたいということであればApache側でPOSTの制限をするなどの
設定をしてやる必要があると思う。
01721562006/02/08(水) 22:08:28ID:???
>>170
んー、PHPマニュアルには、
『MAX_FILE_SIZEはブラウザへの勧告に過ぎません。この最大値を 出し抜くのは簡単なことなので信頼してはいけません。
しかし、 PHP側の最大サイズの設定を欺くことはできません。 しかしそれでもMAX_FILE_SIZEを指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、
実はそれが大きすぎて転送できないということを長時間待ったあとで知らされるのを防げるからです。 』

とあるので、

MAX_FILE_SIZE(HTML) < POSTしようとするファイルサイズ < upload_max_filesize(PHP) の場合は、
(MAX_FILE_SIZEを欺くことは簡単にせよ)ブラウザ側で警告が出る。

upload_max_filesize(PHP) < POSTしようとするファイルサイズ < MAX_FILE_SIZE(HTML) の場合は、
ブラウザ側で警告は出ずに、サーバ側から"大きすぎて転送できないということを長時間待ったあとで知らされる"。

ということだろうから、その挙動は合っていると思う。
エラーコード、$_FILES['userfile']['error'] をechoしてみれば分かるんじゃ?
0173nobodyさん2006/02/08(水) 22:32:04ID:???
SJISとereg系って文字化け起きやすいように思うのですが、そうなのでしょうか?
ini_setで関係のありそうな場所を設定してるのですが、気を付けた方がいい所はありますか?
漠然とした内容ですいませんが、第一引数に「ー」や「]」などを入れると文字化けして、ini_setや他の関係ありそうな関数を使っても必ずどっちかが文字化けしたりで途方に暮れてます…
0174nobodyさん2006/02/08(水) 23:36:23ID:???
>>173
SJISを、どうしても使いたければ最終的な出力だけにしとけぇ
0175nobodyさん2006/02/08(水) 23:41:03ID:???
はじめまして。お世話になります。
現在ある掲示板を、携帯絵文字対応にしようと思っております。

既存の掲示板では携帯から絵文字を投稿すると
<img src="img/i/F8C7.gif" width="12" height="12" border="0">

と変換されているのですが、これを携帯から見た時に


と変換したいのです。
このような変換を行う場合はどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
01761752006/02/08(水) 23:41:43ID:???
?=&#63687;
です。文字化けしてしまいました・・。
0177nobodyさん2006/02/08(水) 23:46:27ID:???
>>173
SJISで正規表現をまともに動かすのはかなり難しいよ。
0178nobodyさん2006/02/09(木) 00:06:23ID:MhSFpTrN
携帯から使いやすいように2chの窓口を作りたい、といっても何すれば良いかよくわかんないので とりあえず書き込み画面作ろうと思うんですが
http://c-others.2ch.net/test/-/php/1139146534/w ←こんな感じで書き込めるようにするにはどうしたらよいでしょうか
hiddenの値とかは何とかなると思いますが、ソケットプログラミングが全くわかんないので、できたら実際に書き込みできるスクリプトを見せていただきたいのですが・・・
よろしくお願いします。
0179nobodyさん2006/02/09(木) 00:12:01ID:???
>>178
すでに「p2」というPHP製の非常に優れたGATEWAYプログラムが存在してますので、
まずはそちらの中身を解析してみて、それ以上のものを作って公開してくださいね。
0180nobodyさん2006/02/09(木) 00:15:47ID:???
>>179
死ねカス
01811792006/02/09(木) 00:21:24ID:???
>>180の罵倒の意味が判らない
>>178で参考になるスクリプトが見たいといってるから、
存在するオープンソースで一番目的に近いものを紹介して
なんで、「死ね」とか言われなきゃならんのだ・・・凹むぞ
0182nobodyさん2006/02/09(木) 00:37:21ID:???
解らんのなら相当お前性格悪いな
0183nobodyさん2006/02/09(木) 01:00:28ID:???
ここって上級者向けスレッド?
0184nobodyさん2006/02/09(木) 01:21:00ID:???
わかんないんだから性格じゃなくて頭が悪いんだろ わかっててやってるなら性格悪いけど
0185150NGNG
>>171-172
ありがとうございます。
そして遅レスですみません。

>>171
Apache側の設定のこと完全に忘れてましたw
それでApache方面でググった今の自分にぴったりな(?)文章を見つけました。
http://multix.jp/html/memo/030521.html#00010201
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LimitRequestBody
クライアントから送信されてくる POSTや PUTデータを受け入れる
最大値を指定します。初期値は 0(無制限)で、バイト単位で
2147483647(2GB)までを指定できます。これを使えば CGIで
ファイルアップローダを運用するような場合、CGIプロセスが
起動する前に巨大すぎるデータの受け入れを容易く拒否することができます
(CGIプロセスに渡ってからではほとんどの場合、手遅れ)。
それ以外でもバッファオーバーフローやサーバクラッシュ目的での
DoS攻撃を回避するのに有効ですから、サーバ管理者は必ず再設定しておくべきです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

>>172
upload_max_filesize以上post_max_size未満のサイズなら
$_FILES['userfile']['error']でちゃんとエラーを拾えるんですが
post_max_sizeを超えてしまうと拾えなくなってしまいます。
というか何もPOSTされなかったかのような反応になります。
しかも送信してる間にハードディスクがガリガリいってるぽいので
どうも>>171のとおりPOSTされたデータをApache側で
全部受け取ってるのかもしれません。

うーんでもApache側で一旦受け取るんだったら
upload_max_filesizeとupload_max_filesizeの意味無いような気がするし。。。
もうわけわかめ。
0186nobodyさんNGNG
あ、ハードディスクガリガリは勘違いだったかもしれません。
それにphpのテンポラリディレクトリは
ウェブディレクトリの外側なので
LimitRequestBodyで設定できませんでした。
0187nobodyさん2006/02/09(木) 02:07:21ID:???
>>178
鯖のリソース余ってるやつちょっと来い@自宅サーバ
http://pc8.2ch.net/test/read.cgi/mysv/1137564375/l50
0188150NGNG
>post_max_sizeを超えてしまうと拾えなくなってしまいます。
>というか何もPOSTされなかったかのような反応になります。
良く調べたらこれはMAX_FILE_SIZEに引っかかっただけでしたorz
MAX_FILE_SIZEを100000000000000000000にして
やってみたらエラーを拾えるようになりました。

いろいろやってみた結果、
結局サーバー側は upload_max_filesize 以上受け取っていない
ということかもしれません。

ご迷惑をおかけてすみませんでした。
0189nobodyさんNGNG
phpでperlでいうuse strict;みたいなことは出来るんでしょうか?
0190nobodyさん2006/02/09(木) 03:40:24ID:???
ログをE_ALLで取るとか?
0191nobodyさん2006/02/09(木) 03:43:14ID:???
>>189
error_reportingの設定でE_NOTICEを入れてやれば似たようなもんなんじゃないの?
0192nobodyさんNGNG
ラジャーです。
01931732006/02/09(木) 06:57:36ID:???
>>174>>177
そうなんですか。諦めて出力だけ変換します。ありがとうございました。
0194nobodyさん2006/02/09(木) 07:55:13ID:???
use strictが効いてE_NOTICEが効かない例

(my) $hoge = 1;
(my) $hige = 2;
// hogeにhigeを加える
$hage = $hoge + $hige; //hogeをhageに間違える
print $hoge;
0195nobodyさん2006/02/09(木) 08:07:16ID:???
>>181
イキロ
0196nobodyさん2006/02/09(木) 09:01:55ID:???
テキストエリアに改行を入れた場合、<br>が入るように
str_replace("\n", "<br>", stripslashes($textarea))
としているのですが、テキストエリアにタグを入れた場合、改行が入っていると
<br>が入ってしまいます(当然ですが)

例)
<table>
<tr>
<td>テキスト </td>
</tr>
</table>

これを改行無しに記述すれば問題はないのですが、ホームページ作成ソフトなどから
直接タグをコピペする時もあります。
どうすれば整形済みのタグを入れても<br>だらけにならないように出来るのでしょうか?
説明が下手ですが、何かアドバイスをいただければと思います。
0197nobodyさん2006/02/09(木) 09:24:25ID:???
>>196
<br>に変換しなければいいんじゃないの
01981962006/02/09(木) 09:29:55ID:???
>>197
それが、普通のテキスト文字の場合は改行した時、<br>に変換が必要なんです。
ブログの記事書き込み部分のようなイメージです。

ブログ(MTなど)でも記事フォームにタグを入れている場合は、改行せずに
入れているような気がしないでもないですが、もし何か良い方法があれば、ご教授願います。
0199nobodyさん2006/02/09(木) 09:49:35ID:???
>>198
HTMLでの記事書き込みとテキストでの記事書き込みとをモード切替してるとこはある。


同一のものとして扱うのであれば、タグの開始と終了<hoge></hoge>を判別して、
その間だけ<br>変換やめるとか。
同じ名前のタグをネストされた時の対処が必要だしちょっと面倒かもしれんが…
XMLパーサとか使ってみるのもテではないでしょうか?
0200nobodyさん2006/02/09(木) 09:51:04ID:???
該当箇所にhtmlspecialchars通すってのはだめか?
02011962006/02/09(木) 10:12:05ID:???
>>199-200
なるほど。やっぱり、入力フォームを分けるという対処しかありませんよね。。
1つのテキストエリア上で出来たら、便利だと思っていたのですが、
入力する側が手間になるといけませんので、断念します。
アドバイスありがとうございました。
02021492006/02/09(木) 10:17:13ID:g3a/RWdO
ネタでも何でもなくマジなんだけど、誰か教えてもらえませんか?
■ このスレッドは過去ログ倉庫に格納されています