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

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

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

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

過去スレは>>2
0166nobodyさん2006/07/26(水) 01:30:03ID:???
>>162
requireで外部からヒアドキュメントを読み込んだ場合と、
それをそのままhtml内に記述した場合

この二つものがソース上では一緒なのに、なぜか違う結果になる(ブラウザ上で空行が入る)、
というのが問題だったのですが、一応解決?しました。

ネストの親に当たる部分のdiv要素(.hogehoge)もhoge.phpの中身に一緒に書き込んでやると、
問題ない表示が実現しました。

単にネストされてるだけでクラス的には親子関係にないから関係ないと思っていたのですが…。
requireすると読み込みの遅れが生じてCSSの判断にバグでも出るんですかねえ、以下ソースです。
やっぱりCSS噛んだ話でごめんなさい

.hogehoge{
width: 100%;
margin: 0 0 10px 0;
display: inline;
}
.hoge{
float: left;
margin: 0 14px 0 0;
display: inline;
width: 127px;
}

<div class="hogehoge">
 <div class="hoge">
 テキスト
 </div>
</div>
0167nobodyさん2006/07/26(水) 01:33:09ID:???
>>164
なるほど〜!サンクス!
0168nobodyさん2006/07/26(水) 01:33:59ID:???
>>166
全体的に hoge だらけで意味不明。
> requireすると読み込みの遅れが生じてCSSの判断にバグでも出るんですかねえ、以下ソースです。
読み込み遅れ(って言い方も変だが)で問題とかあり得ない。
0169nobodyさん2006/07/26(水) 01:34:57ID:???
>>166
> requireすると読み込みの遅れが生じて
読み込みしてるのはApacheであってブラウザじゃない。
CSSの解釈はブラウザが行っている。
よってCSS解釈のタイミングでは遅延は一切発生していない。原因はまた別にある。
0170nobodyさん2006/07/26(水) 01:44:20ID:???
>>166
んーと?つまり、「テキスト」に対して
class=hogehogeが適用されると「テキスト」の下に空行が出て、
class=hogeが適用されてる場合は空行は出ない、ってことなんだな?

<html>
<style type="text/css">
.hogehoge{
width: 100%;
margin: 0 0 10px 0;
display: inline;
}
.hoge{
margin: 0 14px 0 0;
display: inline;
width: 127px;
}
</style>
<body>
aaaaaaaaaaa<br>
<div class="hogehoge">
<div class="hoge">
テキスト
</div>
</div>
aaaaaaaaaaa<br>
</html>

このHTMLをIE6で見たら普通に空行が出てくるぞ。PHP関係ない。
むしろ空行が消える=CSSの指定が一部無視されている、ように思うが?
0171nobodyさん2006/07/26(水) 02:00:28ID:???
>>170
ああ、大事な空行の出る場所を書き忘れてましたね

ちがうんです、requireすると空行が出るのは下ではなく上なんですよ
下に出るのはCSSでマージン取ってるから問題ないんです
その例だとrequireした結果は

aaaaaaaaaaaa

テキスト

aaaaaaaaaaaa

になっちゃうのが困ってるんです

html側
<div class="hogehoge">
<?require='hoge.php'?>
</div>

hoge.php側
<?
echo <<< EOF
<div class="hoge">
テキスト
</div>
EOF;
?>
0172nobodyさん2006/07/26(水) 02:03:06ID:???
>>171
小出しにしないで再現するスクリプト提示したら?
CSS の定義はどこよ?
0173nobodyさん2006/07/26(水) 02:12:38ID:???
>>172
同階層のbasic.cssですー
headタグ内に書いてますので当然bodyより先読みです
<link rel="stylesheet" href="basic.css" type="text/css" media="all" />

ついでにいうと互換モードで書いてます
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

あとさっきのちょっと間違ってましたね
○ <?require( 'hoge.php' )?>
× <?require='hoge.php'?>
0174nobodyさん2006/07/26(水) 02:15:51ID:???
>>173
結局全部は提示しないのね。
書かない所に原因があるかもしれない訳じゃない?
後出しじゃんけんばっかりやってると、誰も相手しなくなるよ。
0175nobodyさん2006/07/26(水) 02:20:53ID:???
話が噛み合ってない。文章もロクに理解してない。出なおしてきなさい。
0176nobodyさん2006/07/26(水) 02:24:33ID:???
>>173
コピペで同じの作ってみたが再現せんぞ。再現する内容を一式よこせ。
0177nobodyさん2006/07/26(水) 02:37:24ID:???
すいません、jsファイル3つ呼んでcssも二つ呼んでなので
まんま渡すと何がなにやらわからなくなると思うので、
自分なりに絞ってみたんですが、それがよくなかったようですね

もうちょっと条件を絞り込んでから出直してきます
ありがとうございます
0178nobodyさん2006/07/26(水) 02:59:01ID:???
>>177
自分とこで調べるにしても、まず余分なものを除去したもので再現させて
原因となりうるものを絞り込むのはデバッグ手法の常識。
01791632006/07/26(水) 03:13:33ID:+cVLS530
>>165さんありがとうございます。

mbstringの設定は

mbstring.encoding_translation = On
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0

というような感じになっています。
あまり良くわからないのですが、いろいろ調べて推奨されているもので自分の環境に合うものを選んだつもりです。
いろいろ弄ってはみたのですが状況は変わりません。

文字コードが認識されていないとのことですが
ここの設定で何とかなるものなのでしょうか?
0180nobodyさん2006/07/26(水) 03:28:38ID:???
>>179
当然だが、>>163のソースはEUCで書かれているんだよな?
0181nobodyさん2006/07/26(水) 03:31:40ID:???
ちなみにinternalがEUC-JPのPHPにSJISで書いた>>163のソースを実行させると
物の見事に>>163と同じ結果になったりするわけだが。

とりあえず一言。「意味も分からないまま真似だけするのはやめれ」
0182nobodyさん2006/07/26(水) 07:07:37ID:???
>>163
print mb_strlen( $word1, "sjis") . "<br>\n";
print mb_strlen( $word2, "sjis") . "<br>\n";
print mb_strlen( $word3, "sjis") . "<br>\n";
0183nobodyさん2006/07/26(水) 08:16:20ID:???
?, echo ?ぬ? . ?る? . ?ぽ?
href=?htt?://www.2ch.net?
0184nobodyさん2006/07/26(水) 14:37:04ID:cMjm+LpN
phpぁぷろだの削除パスを暗号化(?)してるのってどんなプログラムですか?
0185nobodyさん2006/07/26(水) 15:46:13ID:???
ソース読めば
0186nobodyさん2006/07/26(水) 16:32:43ID:ZgT+QHaO
破壊タグて他サイト潰してみたいんですがどのようにタグを使えばいいのですか?
0187nobodyさん2006/07/26(水) 17:10:12ID:???
>>186
天才ハッカー登場
http://pc8.2ch.net/test/read.cgi/hp/1137589842/1-5
0188nobodyさん2006/07/26(水) 17:10:23ID:???
>>186
スレ違い
0189nobodyさん2006/07/26(水) 17:16:22ID:???
破壊タグってこんなの?
<div class="comment">
こんにちは!!</div>
</div>
0190nobodyさん2006/07/26(水) 17:23:39ID:???
>>189
ばか!こんなトコに書くな!!素人が真似したらどうする
0191nobodyさん2006/07/26(水) 17:53:30ID:???
<B><FONT SIZE="999" COLOR="RED">
・・・・・・・・・・・掲示板破壊・・・・・・・・・・
</FONT></B>
0192nobodyさん2006/07/26(水) 17:58:45ID:???
>>191
おまい、これはやり過ぎだろw糞ガキが真似したらどうすんだボケ!
0193nobodyさん2006/07/26(水) 18:06:18ID:???
>>190
189じゃないけど、ほとんどの掲示板で無効だから杞憂ではないかと。
0194nobodyさん2006/07/26(水) 19:11:42ID:kip7lvkm
PHPってHTMLと同じところに書くんだよね?
でも訪問者にソース見られてもスクリプトのところは隠れるって凄いね。どうやってんだろ?
俺が書いたら丸見えなんだけど・・・。
0195nobodyさん2006/07/26(水) 19:18:56ID:???
くっ!!!これが夏休みの力か・・・・!
0196nobodyさん2006/07/26(水) 20:55:14ID:???
そうぢゃお
0197nobodyさん2006/07/26(水) 21:17:03ID:???
>>193
・・・・・・それ、マジレスじゃないよね?
01981932006/07/26(水) 21:23:34ID:???
>>197
ほとんどの掲示板は <>& が実体参照に置き換えられるから、クロスサイトスクリプティングは使えないという認識だけど、見当違いの事を言ってる?
01991632006/07/26(水) 21:54:15ID:???
>>180,181,182 の方々アドバイスありがとうございました。

いろいろ試してみて、結局はApacheとphpをインストールしなおして同じように設定したら直りました。
(私は、WindowsにApacheを組み込んでいます。)
結局アンインストールしてしまったので、原因が特定できなかったのですが
私が思うに、php.iniの書き換えた情報が適応されていなかったのではないかと思いました。
phpinfo()をみても、表示が変わらなかったので・・

折角アドバイスいただいたのに、結果がこれでごめんなさい(泣
また何かあったらお願いします。
0200nobodyさん2006/07/26(水) 21:56:52ID:???
>>199
PHP.ini書き換えたら、ちゃんとApacheを再起動したか?
じゃないと、反映されないぞ
0201nobodyさん2006/07/26(水) 22:54:36ID:l/6BBPaW
ブラウザから送られて来たデータが、整数かどうか調べるにはどうすれば
良いのでしょうか?

思いついたのは、以下の2つですが、合っていますか?

intval($_POST['id']) してから、is_int する
is_numeric($_POST['id']) する


よろしくお願いします。
0202nobodyさん2006/07/26(水) 23:08:32ID:???
>>201
聞く前に自分で試せ
02031632006/07/26(水) 23:16:04ID:???
>>200

Apacheを再起動してもダメで
PCも再起動してもダメだったので
再インストールしました。
0204nobodyさん2006/07/26(水) 23:24:00ID:oSPf1yZU
>>156

多分文字コードを 「UTF-8 で ボムを含める」でやってるからだと思う。
AJAXをやると、「UTF-8 で ボムを含める」の文字コードを使用するのが
常識だけど、それやると header 関数も動かなくなるんだよね。
ということで、解決策。

「UTF-8 で ボムを含めない」 に変換して下さい。
(マックだとAJAX動かなくなるけど、この際無視)
0205nobodyさん2006/07/26(水) 23:26:03ID:???
>>198
見当違い以前に、冗談にマジレスしてどーすんだ、って感じ
0206nobodyさん2006/07/26(水) 23:39:39ID:???
ま、昔の人は火星人が攻めてきた〜でパニックになったんだから
勘弁してやれなり。
0207nobodyさん2006/07/27(木) 01:53:44ID:???
PHP4でDOMXMLをつかっているのですが
二つのXMLファイルを読み込んだ後
それぞれのノードを統合してほげほげしたいのですが
配列のように統合する方法はないのでしょうか?
0208nobodyさん2006/07/27(木) 01:55:23ID:???
>>201
普通に考えたらis_numericじゃ?
つか、intvalしちゃったらどんなデータでも整数になっちゃうだろ。チェックの意味ねぇ。
ノーチェックで、何がきてもエラーを出さないようにする対策として使うなら前者。
0209nobodyさん2006/07/27(木) 02:22:11ID:???
>>194
わろすwwww
0210nobodyさん2006/07/27(木) 02:32:55ID:???
なんかもう凄い夏休みな奴らがいるな
0211nobodyさん2006/07/27(木) 02:46:08ID:???
どう見てもわざとだろ・・・
0212nobodyさん2006/07/27(木) 03:25:03ID:J0an5vjc
PHPから別のアプリケーションを起動することってできますか?

環境はwindowsXP、IIS、PHP5です。
今やりたいのはexec()を使って

exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p /h hoge.pdf');

などとして印刷する処理をしたいのです。
でも、これだととまってしまいます。
PHPから外部アプリケーションの起動ができないのかと思い、
試しに

exec("c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe");

とやっても起動しませんでした。(コマンドプロンプトでは起動確認済み)
サーバ側のプログラムは起動しない仕様なんでしょうか?
それとも別のやりかたがあるのでしょうか?
0213nobodyさん2006/07/27(木) 04:28:02ID:???
>>212
IISのユーザ権限とかも影響するかもしれないので何とも言えないが、
PHPからexec()でサーバー上のアクロバットリーダーのプログラム起動や印刷は可能。

> exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p /h hoge.pdf');
hoge.pdfもフルパスで指定してみては?

> exec("c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe");
これは
exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"');
と指定しないとパスに空白を含むのでシェルが認識できない。
0214nobodyさん2006/07/27(木) 05:14:20ID:???
>>212
「起動しませんでした」てのは何を確認したの?
実行時のメモリー足りてる?
exec('"・・・・・ hoge.pdf > c:\hoge.txt');
とかしてコマンドの出力を調べてみれば何かわかるかも
0215nobodyさん2006/07/27(木) 08:44:29ID:???
>>212
execに第2第3引数を付けてチェック
0216nobodyさん2006/07/27(木) 09:07:25ID:???
フォーム認証後、指定ページを表示させることができていますが
当たり前のように、指定ページは「直リン」できてしまう状況です

直リンさせないようにするには、どのような方法があるのでしょう?
ぐぐる先生も上手くヒットさせてくれませんでした

IIS6+PHP5+mySQL5です
おながいします
0217nobodyさん2006/07/27(木) 09:12:37ID:???
>>216
認証後、各ページでセッションチェックして、セッションが無いか無効な場合は403を返す
02182162006/07/27(木) 09:16:32ID:???
>>217
ありがとうございました
session_start()関数を使ってTRYしてみまつ
0219nobodyさん2006/07/27(木) 12:10:51ID:???
質問です
PHPのsessionってどれくらいの期間サーバーに保存されるんですか?
あまり保存期間が長すぎたらサーバーに負担かかる?
0220nobodyさん2006/07/27(木) 12:37:44ID:???
>>219
保存期間はphp.iniで設定できる
0221nobodyさん2006/07/27(木) 12:57:56ID:???
あるディレクトリ以下を圧縮しながらダウンロード、
ということをしたいんですが、
どんな関数使えばいいでしょうか?
zlib とか gz とか色々調べたんですがよくわからないのですorz
02222122006/07/27(木) 12:59:34ID:J0an5vjc
>>213
>>214
>>215
回答ありがとうございました!

まず>>213さんの
>exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"');
>と指定しないとパスに空白を含むのでシェルが認識できない。
ということだったので

  exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"');

としたところ、ブラウザが「・・・を開いています」のまま動きません。
>>214さんのように

  exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" > hoge.log');

としてみましたが、同じ結果でした。
>>215さん
exec()の第2、第3引数ですね?リファ確認してみます。


0223nobodyさん2006/07/27(木) 13:15:03ID:OicfcVgw
> exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" > hoge.log');
>としてみましたが、同じ結果でした。
hoge.logを見てみろって
0224nobodyさん2006/07/27(木) 13:59:37ID:???
>>221
shell_exec() でシェルスクリプトを動かして圧縮
出来上がったファイルに対してリンクをはる
0225nobodyさん2006/07/27(木) 18:04:59ID:02auc3if
正規表現にマッチしたファイルを探すglob()関数について質問します。
「20030710.txt」←のように、数字が8個並ぶ拡張子「.txt」のファイルを探したいのですが

glob('[0-9]{8}\.txt');
↑数字を8回繰り返すこれだとマッチせず、

glob('[0-9]*\.txt');
↑数字を一回以上繰り返すこちらだとマッチします。

数字が8回繰り返す正規表現は[0-9]{8}でいいと思うのですが、glob()関数だと違うのでしょうか。

ちなみに文字列検索ではマッチします
ereg('[0-9]{8}\.txt','20030710.txt');
0226nobodyさん2006/07/27(木) 18:21:21ID:???
>>225
正規表現検索とワイルドカード検索の違い
0227nobodyさん2006/07/27(木) 18:21:30ID:???
grobってたいていシェルパターンマッチじゃないの?
PHPは知らんけど。
0228nobodyさん2006/07/27(木) 18:25:04ID:???
>>225
glob 正規表現
でググってごらん。
違いが分かると思う。
0229nobodyさん2006/07/27(木) 18:26:09ID:???
誰か>>194に答えて・・・orz
0230nobodyさん2006/07/27(木) 18:29:06ID:???
>>194
拡張子はサーバからPHPスクリプトだと認識されてるものか?
0231nobodyさん2006/07/27(木) 18:39:23ID:???
index.php
0232nobodyさん2006/07/27(木) 18:41:12ID:???
>>194
おそらく全員が釣りだと思っていたはず。

<?php
phpinfo();
?>

と書いたファイルにtest.phpという名前をつけて
アップロードしてアクセスしてみて。
0233nobodyさん2006/07/27(木) 19:19:40ID:s2/F2cYJ
ファイルを開いて行を読んでくる処理なんですが、
実在する行より1行多く読んできて、最後が空行になってしまいます。
次のような簡単なソースです。

$fp = fopen("data.txt", "r+");
 if ($fp){
  flock($fp, 2);
  while (!feof($fp)){
   $list[] = fgets($fp);
   $i++;
  }
 }
}

data.txtには3行の記述があり、最後の行もきちんと改行で終わり、
最後に余計な改行などは入っていません。

ところが、 $i が 4となってしまい、$listも、 $list[3]まで作られ、中身は空です。
PHPは前からやっていたんですがこうなったことはないのですが、
いったいどんな原因が考えられますか?
02342252006/07/27(木) 19:23:50ID:???
>>226
>>227
>>228
どうもありがとう。
解決しました。
0235nobodyさん2006/07/27(木) 19:31:44ID:h5ch3/9D
正規表現で文字検索しているんですが、
下記のような場合、どうすればこちらが意図した通りに処理してくれますか?

$text = '!0! !1! !2!';
$serach = '!([0-9]{1,3})!';
ereg($serach,$text,$key);
foreach($key as $key_arr) {
echo $key . 'ですぅ<br>';
}

0ですぅ
1ですぅ
2ですぅ

こんな感じで表示させたいのですが$keyに0しか入らないみたいなんです。
教えていただけないでしょうか?
0236nobodyさん2006/07/27(木) 20:15:19ID:???
$text = '!0! !1! !2!';
$serach = '!([0-9]{1,3})!';
ereg($serach,$text,$key);
foreach($key as $key_arr) {
echo $key . 'ですぅ<br>';
}

これを

$text = '!0! !1! !2!';
$serach = '!([0-9]{1,3})!';
ereg($serach,$text,$key);
foreach($key as $key_arr) {
echo $key . 'です<br>';
}

こう変える
0237nobodyさん2006/07/27(木) 20:45:34ID:???
>>235
何処から突っ込んだら良いのか

とりあえずserach→searchな。
ereg系関数はpreg系関数と比べて大抵かなり遅いから出来れば使わないように。
foreachなのになんで$key_arr?
なんでforeach内で配列使う?


$text = '!0! !1! !2!';
$serach = '/!(\d{1,3})!/';
preg_match_all($serach, $text, $key_arr);
foreach($key_arr[1] as $key => $value) {
echo $key . 'ですぅ<br>';
}
02382372006/07/27(木) 20:47:10ID:???
echo $value .'ですぅ<br>';

だな、スマソ
02392372006/07/27(木) 20:48:44ID:???
痛いな、俺。

$text = '!0! !1! !2!';
$search = '/!(\d{1,3})!/';
preg_match_all($search, $text, $key_arr);
foreach($key_arr[1] as $value)
  echo $value . 'ですぅ<br>';
0240nobodyさん2006/07/27(木) 22:51:30ID:S/uf8GoH
switch構文なんですけど、
function test($a) {
switch ($a) {
case 'a':
return 'あいうえお';
case 'ka':
return 'かきくけこ';
}
}
こう書いても問題ないッスよね?
それとも、
function test($a) {
switch ($a) {
case 'a':
$result = 'あいうえお';
break;
case 'ka':
$result = 'かきくけこ';
}
return $result;
}
と書いた方がよいのでしょうか?
0241nobodyさん2006/07/27(木) 23:31:43ID:???
どっちでもいい。
まあ、caseが2つならif elseifで済ましてしまうが。

個人的には下。returnする前に何か処理が入る必要が出た時のために。notice対策でswitchの前に$return = null;で初期化しておく。
02422402006/07/27(木) 23:46:58ID:???
>>241
レスサンクス。
やはり下の書き方の方がスマートなのか。
0243nobodyさん2006/07/28(金) 00:25:54ID:???
>>233
最後の行が改行で終わってる場合、3行目を読み込んだ時点ではeof()は立たない。
(EOFを認識する前に、改行を認識した時点でfgets()は制御を戻してしまうため)
さらに4回目のfgets()が動くとEOFを認識し戻り値がFALSEとなり、eof()が立つようになる。
(var_dump()してみれば分かるが、$list[3]は string(0) "" ではなく bool(false) になってるはず)

普通、そういう読み込みループは
  while (($line = fgets($fp)) !== FALSE){
   $list[] = $line;
   $i++;
  }
と書くか
  while (!feof($fp)){
   $line = fgets($fp);
   if($line === FALSE) break;
   $list[] = $line;
   $i++;
  }
のように書く。

PHPは前からやってたって言うけど、それにしちゃ経験浅すぎない?
その辺り、公式マニュアルのfgetsの説明に
ttp://www.php.net/manual/ja/function.fgets.php
> 陥りやすい罠:
> C 言語の fgets の動作に慣れている人は、EOF を返す条件の違いについて 注意する必要があります。
という感じで注意書きがされているよ。
0244nobodyさん2006/07/28(金) 00:46:54ID:???
>>224
全然、圧縮しながら、じゃないですね・・・
0245nobodyさん2006/07/28(金) 00:52:33ID:/hbJS61y
jpegファイルの縦横のサイズを取得するのにどうされています?
EXIFは空なのでここに書いてある情報は使えないものとします。
0246nobodyさん2006/07/28(金) 01:18:23ID:???
>>423
ヒント:夏休み
0247nobodyさん2006/07/28(金) 01:24:33ID:???
>>246
未来レス乙
0248nobodyさん2006/07/28(金) 01:28:16ID:???
>245
ttp://jp.php.net/manual/ja/function.getimagesize.php
02492452006/07/28(金) 01:29:16ID:???
>>248
ドウモデス( ´∀`)ノシ
0250nobodyさん2006/07/28(金) 01:39:36ID:???
>>249
これに反省したらもっとマニュアルをきちんと読むように。
そんな分かりにくい場所に書いてあるわけじゃないだろう。
02512452006/07/28(金) 01:40:36ID:???
(;´∀`)ノシ
0252nobodyさん2006/07/28(金) 01:51:28ID:???
顔文字で逃げる癖があるな
0253nobodyさん2006/07/28(金) 02:12:26ID:???
>>221,244
その知識で簡単に使えるものは無いだろうね。

>>222
exec("command -o -p -t", $returndata, $returncode);
var_dump($returndata); var_dump($returncode);
215はこういうこと。ちなみに214のhoge.log=$returndata
とりあえずIISはおいといて、タスクマネージャ見ながらCLIで動かしてみて。
02542122006/07/28(金) 04:22:07ID:hIe930sx
>>223
>hoge.logを見てみろって

hoge.logをnotepadで開いたところ、ファイルの中身は空っぽでした。
でも、ファイルは作られてます。

>>253
>exec("command -o -p -t", $returndata, $returncode);
>var_dump($returndata); var_dump($returncode);
>215はこういうこと。ちなみに214のhoge.log=$returndata
>とりあえずIISはおいといて、タスクマネージャ見ながらCLIで動かしてみて。

ブラウザ以外でやったことないので不慣れですが、CLIというのをやってみます。
回答ありがとうございました。


今のところ↓みたいなのになります。
CGI Timeout
The specified CGI application exceeded the allowed time for processing.
The server has deleted the process.
0255nobodyさん2006/07/28(金) 04:34:49ID:???
>>254
実はサーバー側でちゃんと起動してたんだがそのままウインドウが出たままになって終了せず、
その終了をずっと待ってたPHPがタイムアウトで終了しただけ、とかいうオチじゃないだろうな。
サーバーマシン側の画面はちゃんと見ているの?
そもそもIISってバックグラウンドのサービスで動かしてるのか?だとするとウインドウアプリケーションって
表示できずに裏で固まってたりするんじゃないのか?
0256nobodyさん2006/07/28(金) 04:51:56ID:???
245 じゃありませんが稀に getimagesize で値を取得できない .jpg があります。
拡張子偽装ファイルとかではなく真の .jpg です。

getimagesize に変わる方法や回避策などありませんでしょうか

環境はPHP Version 5.1.4 GD Version bundled (2.0.28 compatible) です。
0257nobodyさん2006/07/28(金) 05:04:30ID:???
>>256
SOF0 を解析
0258nobodyさん2006/07/28(金) 05:08:48ID:???
自己フォロー。なんぼなんでも GD の getimagesize でも同じことやってるか。
じゃ、基本 DCT 方式じゃない JPEG なのかも。
どういう JPEG ファイルか中身を見てみないと分からん。
0259nobodyさん2006/07/28(金) 06:32:58ID:???
(A)投稿フォーム → (B)内容確認画面 → (C)DBに保存して終了画面表示
上記のような画面遷移で、あるフォームから投稿された内容をDBに保存する前に、表示確認画面を挟むとします。

このとき、(A)で投稿された内容を(B)で表示する場合にはもちろんエスケープして表示するのですが、
(C)に渡すために(B)にhiddenで埋め込んだ内容データはエスケープしなくていいんですよね?

っていうか、エスケープしちゃったら元の内容と違っちゃう(たとえば改行が<BR>に変換されちゃう等)ので
(A)で投稿された生のままhiddenに入れるべきですよね?
それで何かセキュリティ上の問題って起きますでしょうか。
0260nobodyさん2006/07/28(金) 06:57:41ID:???
>>259
エスケープしとかないと途中に"とか入ってた場合にinputタグが壊れるだろう。
セキュリティとか以前の問題だぞそりゃ。
0261nobodyさん2006/07/28(金) 07:08:35ID:???
>>260
あっ、そっか・・・

でもエスケープしちゃったら、元のデータが再現できないですよね?
DBに入れたものを取り出してエスケープして表示するときに、<BR>が二重になっちゃうし・・・
0262nobodyさん2006/07/28(金) 07:26:10ID:???
>>260
ん? 試しにやってみたら壊れないみたいだけど???
0263nobodyさん2006/07/28(金) 07:33:18ID:???
>>261
というか、お前いったいどんなエスケープしてんの?改行が<BR>に変換って何の話だ?
0264nobodyさん2006/07/28(金) 07:46:40ID:???
>>263
htmlspecialchars
0265nobodyさん2006/07/28(金) 07:53:04ID:???
htmlspecialcharsで改行が<BR>に変換されたりはしないだろ。
■ このスレッドは過去ログ倉庫に格納されています