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

【PHP】くだらねぇ質問はここに書き込みやがれpart6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/06/05(日) 13:17:11ID:xiGnsMS4
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
0655nobodyさん2005/06/30(木) 07:00:03ID:???
>>651
ちょっとトリッキーだけど。

$ser = '123abc';
$arr = array('abc', 'def', 'ghi');

if (str_replace($arr, '', $ser) != $ser)
 echo "exist";
0656nobodyさん2005/06/30(木) 08:38:01ID:???
>>655
調べるだけなのに、書き換えるとか…
>>654 の言うように関数化が良いだろう
06576512005/06/30(木) 13:55:30ID:???
みなさんご意見ありがとうございます。関数化することにしました。
(;´Д`)
0658nobodyさん2005/06/30(木) 16:45:33ID:???
くだらないけど、PHPコーディングするときってバージョン管理してる?
0659nobodyさん2005/06/30(木) 18:18:52ID:???
ttp://php.s3.to/data/dl.php?dl=short
でIPもしくはhostをログに取得するにはどうすればいいでしょうか?
教えてください
0660nobodyさん2005/06/30(木) 18:26:19ID:???
くだらないんじゃなくて物臭なだけじゃねえか
0661nobodyさん2005/06/30(木) 18:28:50ID:???
>>659
DLするのマンドクセ
phpinfo()すれば IPアドレスを取得できる環境変数名が分かるから、
それ或いはgethostbyaddr()を使って取得したホスト名をログ書き込み部分に追加する。
0662nobodyさん2005/06/30(木) 20:13:41ID:???
>>661
ありがとうございます!表示されました!
しかし本体(掲示板)の方にもIPが表示されてしまいます。
ログにだけ保存したいのですが簡単にできますか?
06636512005/06/30(木) 20:49:56ID:Xb073jdm
すいません。651で書いた者ですがうまくいきません。
以下の文字列"123xyz"でも"exist"になってしまいます。
何がまずいんでしょうか。。。

例
$ser = '123xyz';
$arr = array('abc', 'def', 'ghi');

$chk = 'false';

foreach ($arr as $arrs) {
if(stristr($ser, $arrs) !== "false") {
$chk = 'true';
break;
}
}

if ($chk){
echo "exist";
}else{
echo "no exist";
}
0664nobodyさん2005/06/30(木) 21:57:06ID:???
true や false を文字列にすんなって。
06656512005/06/30(木) 22:41:04ID:Xb073jdm
>>664
true や false を文字列にしなければうまく動くんでしょうか?
どうやってもうまくいきません。
ヒントでもいただけませんでしょうか?
0666nobodyさん2005/06/30(木) 22:43:50ID:???
falseが文字列なせいで

if ($chk)

が真になってるんだよ。

"で括るなよ。
0667nobodyさん2005/06/30(木) 22:59:56ID:???
>>665
君は型の概念が理解できてないようだ
マニュアル読もう
06686512005/06/30(木) 23:09:30ID:Xb073jdm
>>666
ありがとうございました。できました。
勉強不測なようで恥ずかしいです。
0669nobodyさん2005/06/30(木) 23:15:28ID:???
phpでStrutsみたいなMVCフレームワークがいくつか出てますがphpで
そんな大きなシステム作るの?
だったらJavaで作ればいいのにって思うんだけど。
Apache+phpに比べてアプリケーションサーバーは重いから
それようのサーバーも無いし、購入する余裕も無くてphpって選択肢になってるの?
0670nobodyさん2005/07/01(金) 00:10:34ID:???
>>669
PHPで大きなシステム作っちゃだめなの?
0671nobodyさん2005/07/01(金) 00:15:32ID:???
>>670
関係無い話を振るなヴォケ
0672nobodyさん2005/07/01(金) 00:22:15ID:???
>>671
aho
0673nobodyさん2005/07/01(金) 00:27:29ID:???
>>669
AP再起動の手間がないから客先で作業しやすかったりした。
0674nobodyさん2005/07/01(金) 00:27:41ID:???
ごめんごめん、攻撃してるように見えちゃったかな?
phpは最近触り始めたばかりなんだけど、すごい手軽に作れちゃう
のがphpの良いところだと思っていて、MVCなんか持ち出すなと。。。

phpで大規模は作れないなんて思わないけど、セッションの異なる
ユーザー間でのデータ共有がファイルかDBしかないって、ちょっと
パフォーマンス的にきつく感じる。
JavaならServletのオブジェクト変数にスレッド間で共有したいデータを
入れておけばよいだけだから。
06756692005/07/01(金) 00:36:29ID:???
674も漏れです。

>>673
TomcatでもVer5からかな、オートロードしてくれたキガス。
商用は言うまでも無く。
0676nobodyさん2005/07/01(金) 00:55:32ID:???
>>675
673じゃないけど。

漏れの客の中には業務時間中は許可なくシステムやプロセスの再起動を
禁じるとのおふれを出してくれるDQNな顧客がいるので
再起動がないPHPはありがたい。
0677nobodyさん2005/07/01(金) 01:13:32ID:???
>>674
ヒント:共有メモリ
0678nobodyさん2005/07/01(金) 02:25:21ID:???
おいらは高々「セッションの異なるユーザー間でのデータ共有」に
AppServerが必要な点で、条件が厳しいと感じる。

MVCはJavaだろうがPHPだろうが、Webアプリ作るなら
それに沿った方がトータルでは簡単(楽)だと思うけどね。
素のStruts&支援ツール未使用では少々使いづらいと思ったけど。
06796462005/07/01(金) 02:58:07ID:UlstNgah
>>647,649
どうもありがとうございますた!
0680nobodyさん2005/07/01(金) 08:30:53ID:???
PHPは混ぜ混ぜでも適当でも結構何とかなっちゃうから潔癖性には辛いかもな。
個人的にはそこが利点だと思うんだけど。
0681nobodyさん2005/07/01(金) 08:47:29ID:???
くだらねぇ質問でスイマセン

1つのファイルで複数のページを作りたいのですが
どのように行ったらいいでしょうか?
0682nobodyさん2005/07/01(金) 08:51:16ID:???
どこへでも行けばいい
0683nobodyさん2005/07/01(金) 10:01:11ID:???
つ[ttp://www.php.net/manual/ja/control-structures.else.php]
0684軟式PHP2005/07/01(金) 11:54:52ID:???
>>680
同意。俺もそういう点が気に入ってる。
0685nobodyさん2005/07/01(金) 13:29:04ID:???
time() でえた数字を分かりやすく2005 07/01 00:00:00に
直すのってどうやるのですか?
0686nobodyさん2005/07/01(金) 13:30:17ID:???
date()
06876852005/07/01(金) 13:39:56ID:???
ありがとう
0688nobodyさん2005/07/01(金) 14:27:34ID:???
ちょっと長いですが、よろしくお願いします。とある本からの抜粋です。2レスにまたがります。
<?php
extract($_POST);
echo "<form action=\"menu.php\" method=\"post\">\n";
echo "<p>タイトル <br><input type=\"text\" name=\"t\" value='$t' size=45></p>\n";
echo "<p>本  文 <br><input type=\"text\" name=\"h\" value='$h' size=45></p>\n";
echo "<input type=\"hidden\" name=\"sig\" value=\"kb\">\n";
echo "<input type=\"submit\" value=\"検索\">\n";
echo "<input type=\"reset\" value=\"クリア\">\n";
echo "</form><hr>\n";
//データ検索結果の実行部分
if($sig == "kb") {
mysql_connect("localhost","root","xxxxxx");
mysql_select_db('database1');
$wt =="";
$wh =="";
$wk =="";
//検査区分の分解(タイトル)
if($t <>"") {
$xt = str_replace(" " , " " ,$t);
$gt = explode(" ",$xt);
$wt = "title like '%$gt[0]%'";
$i = 1;
$n = count($gt) - 1;
while ($i <= $n) {
$wt = $wt . " and title like '%$gt[$i]%'";
$i++;
}}
//検査区分の分解(本文)
(上の”タイトル”と似たようなコード。$t が $hに、$xt が $xhに、等)
0689nobodyさん2005/07/01(金) 14:30:27ID:???
//クエリの作成
$sql = "select * from table1 where ";
if($wt<>"") {$sql = $sql . $wt;}

if($wh<>"") {
if($wt<>"") {$sql = $sql . " and ";}
$sql = $sql . $wh;
}
//ここからが本検索
$result = mysql_query($sql);
$rows = mysql_num_rows($result);

if($rows == 0) {
print "検索データが見つかりませんでした。";
exit;
}
else {
echo "<font color=\"red\">" , $rows, "件のデータがヒット<br></font>\n";
echo "<a href=\"zemken.php?s=", $sql ,"\" target=\"main\">全検索</a><br>\n";

while($row=mysql_fetch_array($result)) {
echo $row["title"];
}}}
?>
以上です。フォーム(「タイトル」と「本文」)に入力された文字列を自身へポストし、
検索をかけ表示するというものです。
「//データ検索結果の実行部分」の「if($sig == "kb") {」と、その数行前の「echo "<input
type=\"hidden\" name=\"sig\" value=\"kb\">\n";」の意図が分かりません。
「if($t <> "") {」だとecho文の一行もいりませんよね?  またその後の
$wt ==""; $wh ==""; $wk =="";
が何のためにあるのかも良くわかりません。試しに削ってみましたが、ちゃんと機能するようです。
0690nobodyさん2005/07/01(金) 15:00:48ID:???
>>689
$wt ==""; $wh ==""; $wk =="";
は
$wt =""; $wh =""; $wk ="";
としたかったんだと思う
formからpostされたときだけ
if($sig == "kb") { 以下の処理を行うということでしょう
(タイトルや本文などの他の項目は任意でこの値だけは必ずセットされている)
0691nobodyさん2005/07/01(金) 15:04:03ID:???
そんな脆弱性満載なコードは参考にするな。
で、質問書いてからコード引用しろよ。
06926902005/07/01(金) 15:06:18ID:???
if ($t != "" or $h != "")
にしたら$sigはいらないかな
入力値が無いときの動作についての仕様しだいだけど
06936892005/07/01(金) 15:36:24ID:???
>>690
>(タイトルや本文などの他の項目は任意でこの値だけは必ずセットされている)

あぁ、そういうことか。フォームは2つ有るんですもんね(´・ω・`)
でも
$wt =""; $wh =""; $wk ="";
はいまだに?です。なんか要らないような・・。
06946892005/07/01(金) 15:41:15ID:???
>>691
>で、質問書いてからコード引用しろよ。

すみません。以後気をつけます。
0695nobodyさん2005/07/01(金) 15:43:36ID:???
>>693
error_reportimg(E_ALL);
ってつけると意味わかるかも
06966952005/07/01(金) 15:44:57ID:???
error_reporting(E_ALL);
です
06976892005/07/01(金) 15:55:20ID:???
>>695
ハイ、やってみます (`・ω・´)
0698nobodyさん2005/07/01(金) 16:20:28ID:???
phpで外部テキストの内容をそのまま表示させたいんですが、どうすればいいのでしょうか。
感じとしては

print hogehote.txt

でhogehoge.txtの内容をそのまま表示してくれるような・・。
分かりにくかったらごめんなさい
0699nobodyさん2005/07/01(金) 16:26:33ID:???
>>698
つ[ttp://jp2.php.net/manual/ja/ref.filesystem.php]
0700nobodyさん2005/07/01(金) 16:28:01ID:???
readfile( 'hogehoge.txt' );
0701nobodyさん2005/07/01(金) 16:29:53ID:???
>>699
どうもです、fopenで出来そうな気がしますので試してみます。
0702nobodyさん2005/07/01(金) 16:45:45ID:uNU+fZm1
レッツPHPさんのソースでは

ファイルオープン
flock($fp,LOCK_EX);
fputs
ファイルクルーズ

としてるのが多いんですが
flock($fp,LOCK_UN);は書かなくても勝手に解除されるんでしょうか?
0703nobodyさん2005/07/01(金) 16:55:57ID:???
include('hogehoge.txt');
0704nobodyさん2005/07/01(金) 16:58:42ID:???
>>702
fcloseで自動的に解除されるが、レッツは"w"で開いてるから意味無い
0705nobodyさん2005/07/01(金) 17:07:49ID:???
>>699-701
ありがとうございます
readfile("./test.txt")
で表示するだけは出来ました。

ちょっと
$fp = readfile("./test.txt"):
print "$fp";

としてみたんですが結果が

----------------
hoghoge.com
hogyohogyo.com
87
----------------
となりキャラクター数が最後に付いてしまっているようです。
えーと変数をテキストだよって宣言する作業をすればいいのかな・・
0706nobodyさん2005/07/01(金) 17:16:07ID:???
>>705
readfileはファイルから読み込んだバイト数を返します。
0707nobodyさん2005/07/01(金) 17:17:12ID:uNU+fZm1
>>704さん
ありがとうございます。
レッツのカウンタを使ってたら壊れたのでロック関係の処理を検索してました。
wでなくでr+で開いてftrancate($fp,0);でファイルサイズ0にして書き込み

に変更すれば大丈夫でしょうか?
0708nobodyさん2005/07/01(金) 17:17:29ID:???
バイト数いらない場合は・・ orz
また違う方法を探さないと駄目なんですね・・
0709nobodyさん2005/07/01(金) 17:18:36ID:???
>>708
$fpに何が入っていて、print "$fp"; で何をしてるのか分かってる?
0710nobodyさん2005/07/01(金) 17:26:37ID:???
>>709
$fpにはテキストの中身とバイト数?
07117072005/07/01(金) 17:34:29ID:???
ftruncateの間違いです。

$fp = fopen($file,"w");
flock($fp,LOCK_EX);
fputs($fp,$data);
fclose($fp);
を

$fp = fopen($file,"r+");
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,$data);
flock($fp,LOCK_UN);
fclose($fp);
にしたら大丈夫でしょうか?
ディレクトリとかを使いたくありません。
0712nobodyさん2005/07/01(金) 17:52:40ID:???
readfileはファイルから読み込んだバイト数 のみ を返します。
0713nobodyさん2005/07/01(金) 18:13:36ID:???
>>712
なるほどでも
readfile("./test.txt");
だけだとファイルの中身だけが表示されるのは何故?
もと分かって無いと怒られそうかな・・ ;-;


で
<a href=http://hogehoge.com>;hogehoge</a>
ってurlが羅列されているテキストをHPの色んなページにチョコっとリンクとして表示させたかったので。


$lines = file("./test.txt");
foreach ( $lines as $val){
print $val . "<br>";
}

って感じにしてみました。
今後は元テキストが
http://hogehoge.com<;>hogehoge
urlとリンク先HPのみを自動でリンクにとして表示するようにしようかなぁと
0714nobodyさん2005/07/01(金) 19:11:14ID:???
指定したフォルダ内にあるファイルのファイル名を全て返す関数とか無いのか?
0715nobodyさん2005/07/01(金) 19:13:57ID:???
>>714
ディレクトリ関数を使え
0716nobodyさん2005/07/01(金) 19:24:23ID:???
>>713
つ[http://jp2.php.net/manual/ja/function.readfile.php]
0717nobodyさん2005/07/01(金) 19:52:51ID:???
>>716
何回も読みました・・w
動作は分かったのでひとまずいいです
動けばいい趣味スクリプトなんで

プログラムの基礎が無いので読んでも大まかにしか分かって無いようです。
0718nobodyさん2005/07/01(金) 19:57:19ID:???
じゃ、あんたはいつまでたってもそのレベルなわけだ
07197172005/07/01(金) 20:03:10ID:???
まあ、マッタリ自分のペースでやれるだけ頑張ります。
ありがとうございました <(_ _)>

分かりたいんですが、何が分かって無いのか分からないので。
phpいじくりながら勉強します
0720nobodyさん2005/07/01(金) 20:58:06ID:???
ま、いいんじゃねぇの
0721nobodyさん2005/07/01(金) 22:33:46ID:???
php歴2週間で、セキュリティのことなんてチンプンな者です。
閲覧者が検索ワードを入力し結果を表示させるだけのものををphpとmysqlで
作りたいんですけど、やはりセキュリティと言うものに気を配らなければ
ならないのでしょうか。全く気を配らなかったとして、どのような被害が
考えられますか?
0722nobodyさん2005/07/01(金) 22:45:17ID:???
MySQLのデータを改ざんされる。
0723nobodyさん2005/07/01(金) 23:02:28ID:???
dbの脆弱性を疲れて、root剥奪
07247212005/07/01(金) 23:16:38ID:???
えっ、そんあ事まで出来ちゃうんですか!?怖い。でもどうやって・・?
急に自身が無くなって来ました。最低限これだけはやっとけって事にどんなもの
がありますか?答えづらい質問で申し訳ない。
0725nobodyさん2005/07/01(金) 23:21:57ID:???
>>724
SQLデータベースを使わない
0726nobodyさん2005/07/01(金) 23:40:55ID:???
>>724
XSSに気を配る
0727nobodyさん2005/07/01(金) 23:58:56ID:???
chmod( hogehoge.log )や
fopen( "hogehoge.log" , "w" )
などで作成されたファイルの文字コードは何になるのでしょうか。
07287212005/07/02(土) 00:10:50ID:???
>>725 >>726
回答ありがとうございます。
XSSでググって見たらジャンジャンひっかかりますね。これだけでも進歩です。
これを足がかりに勉強します。
0729nobodyさん2005/07/02(土) 00:14:54ID:???
>>727
hogehoge.logが画像だったとして、それがchmodやfopenで左右されると思う?
書き込もうとする内容が文字コード(さらに言えばテキストに限らず画像のようなものまで)を決定します。
そしてその内容は、phpへの入力・php.iniの設定・スクリプト内のコード変換等 いろいろな場所で文字コードを変換される可能性があります。
07307272005/07/02(土) 00:20:10ID:???
>>729
なるほど。詳しくありがとうございます。
0731nobodyさん2005/07/02(土) 07:40:56ID:???
>>728
XSSよりSQLインジェクション
0732nobodyさん2005/07/02(土) 18:04:14ID:???
くだらな過ぎなのですが勇気を出して質問します。
下記でエラー(T_ECHO)になります。何処がいけないのでしょうか。

<?php
extract($_GET);
mysql_connect('localhost','root','xxxxxx');
mysql_select_db('lesson');
if($i<>"") {
$sql = "select * from tbl where id=$i";
$result = mysql_query($sql);
$row = mysql_fetch_array($result)
echo $row["id"];
}
?>

『$rows = ・・・』以下を下記のように直せば大丈夫なんですが。

while($row = mysql_fetch_array($result)){
echo $row["id"];
0733nobodyさん2005/07/02(土) 18:17:30ID:???
>>732
まずは蝉コロンを忘れるな。話はそれからだ。
0734nobodyさん2005/07/02(土) 18:28:01ID:???
>>733

やっちまった。気をつけていたはずなのに・・・。鬱
まりがとう。
0735nobodyさん2005/07/03(日) 00:40:30ID:???
$file=fopen("sample.dat","a");
flock($file,LOCK_EX);
$line =date("Y年 m月 d日 H:i:s")."\t";
fputs($file,$line."\n");
flock($file,LOCK_UN);
fclose($file);

複数のファイル名で保存するにはどうしたらいいですか?
(aaa.dat , bbb.dat , ccc.datで保存)
0736nobodyさん2005/07/03(日) 00:58:37ID:???
>>735
同じ事を後3回やっちゃ駄目なの?
それとも、ファイルそのものをコピーして別名で保存する?
0737nobodyさん2005/07/03(日) 01:34:54ID:???
ttp://script.s16.xrea.com/index2.php

このPHP版JoyfulNoteで新規投稿が着たら
メールで知らせてくれる機能使ってるんですが、
なぜか???だらけのメールが着ます。
このメールを普通の文体のメールに変えるためにはどうしたら良いですか?

ちなみにサーバーはXREAのs151鯖です。
よろしくお願いします。
0738nobodyさん2005/07/03(日) 02:11:30ID:???
>>737
症状から察するに、ただ単に文字コードがおかしいだけかと。
0739nobodyさん2005/07/03(日) 10:19:30ID:???
s151は仕様が他と違う
0740nobodyさん2005/07/03(日) 13:07:47ID:???
>>738
文字コードをいじるためにはどこを弄ればいいんですかね?
Joyful.phpのメール発射するらへんを見てみたんですが、
イマイチわかりませんでしたorz
0741nobodyさん2005/07/03(日) 18:10:19ID:???
>>740
mb_language ("ja");
mb_internal_encoding("sjis"); //この行を追加
mb_send_mail($mailto,$MailSub,$MailBody,"From: $email");
0742nobodyさん2005/07/03(日) 18:24:21ID:???
>>741
おお!できました!
ありがとうございますm(_ _)mペコリ
0743nobodyさん2005/07/03(日) 19:23:17ID:sGU6ge/d
関数側の参照返し指定
function & hoge()
と、
受け取り側の参照受け取り指定
$moge =& hoge()
の関係がいまいち分かりません。

・両方とも記述しなければいけない
・関数側だけでも同じ結果
・受け取り側だけでも同じ結果

どうなっているのでしょうか?
0744nobodyさん2005/07/03(日) 19:45:27ID:6wIeYByt
PHPからPDFを出力をしたいのですが、
たとえばベースとなるフォームをPDFや画像を用意しておき、
そのフォームの特定位置に対応する情報を出力する
差込印刷のようなことは可能なのでしょうか?
それともすべてをPHPで出力するか、
あるいはこういう差込印刷をしようと思ったらOpenOfficeなりを利用するほかはないのでしょうか?
0745nobodyさん2005/07/03(日) 20:11:28ID:???
>>744
たとえば、fpdf+fpdiのような外部ライブラリを使えば、差込印刷っぽいことはできる。
んでも、細かな調整等は自分で実装しなきゃいけないよ。
07467442005/07/03(日) 20:47:37ID:???
>>745
おおお、FPDIなんてものがあったとは知りませんでした。
さっそく調べてみます。
情報ありがとうございました。
0747nobodyさん2005/07/03(日) 21:56:45ID:6wIeYByt
フォームについて質問です。
ひとつのFORMにsubmitボタンを複数設置することは可能なのでしょうか?
具体的には、掲示板を表示するphpにおいて各書き込みに「編集」「削除」のボタンを設置し、
共通のphpで処理したいのです。
例えば
<TR><TD>774:nanashitaso</TD>
<TD>本文:ちょっと1聞いて(ry</TD>
<TD><FORM method='POST' action='sakujonin.php'>
<INPUT type='submit' value='編集' name='editflg'>
<INPUT type='submit' value='削除' name='editflg'>
<INPUT type='hidden' value='774' name='kakikoid'>
</FORM>
</TD></TR>

このような記述をしておき、sakujonin.phpではeditflgの内容によって処理を切りかえることが可能か?という疑問です。
あるいはsubmitボタンそれぞれのnameを変えておき、セットされている変数(name)によって処理を変えるのでもよいのですが。

よろしくおねがいします。
0748nobodyさん2005/07/03(日) 22:08:47ID:???
>>747
dekiru
0749nobodyさん2005/07/03(日) 22:09:58ID:???
>>747
sakujonin.php を以下のようにして実験してみたらすぐ判ることを
なぜワザワザ聞くんだ?
友達が居なくてかまって欲しいのか?

<?php
echo $_POST['editflg'];
?>
0750nobodyさん2005/07/03(日) 23:38:09ID:???
>>747
編集と削除、それぞれを違うnameに汁。
それから、それぞれのボタンを押した際の$_POSTの中身を見比べて見る
07517472005/07/04(月) 00:50:43ID:???
おおお。あっさりできました。
どうもありがとうございました。
0752nobodyさん2005/07/04(月) 04:27:21ID:???
PHP4.3.10で、公式サイトのドキュメントのfsockopen()の例を参考にHTTP Clientを作ったのですが、
たまに4000とか14feといった、4桁の数字だけで構成された行を受け取ってしまいます。
場所も不特定で、このせいでタグが分断されてページが乱れたりしてしまいます。
fgetsのバッファを大きくしたり、socket_set_blocking()を使って非ブロックモードにしたり、
漢字コードまわりをいじったりしましたが、一向に改善されません。
fsockopenのかわりにpopenでwget -O -を実行するようにしたら、この現象がぴたりと止まったので、
fsockopen()の例では、なんらかのエラー処理がかけているのではないかと思われるのですが、
原因のわかる方はいらっしゃいますか?

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
0753nobodyさん2005/07/04(月) 08:57:15ID:???
>>752
chunkっぽいので、
HTTP/1.1に拘る必要がなければHTTP/1.0にするとか。
マニュアルのuser notesの所にあるスクリプトの方を参考にするとか。
0754nobodyさん2005/07/04(月) 11:58:45ID:???
長いのでコードは別に書きます。
よそからGETメソッドで飛んできた「$i」により、レコードがセレクトされ内容を表示。
その後フォームによりそのレコードを削除します。
はじめはそのまま$iで削除しようとしましたが、サブミット後は$iの値が何故か消えて
しまうので削除できず。
上記のように<input type=\"hidden\"〜で新たに「$id」を定義したら無事できました。
何故サブミット後に$iの値が消えてしまうのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています