プロが教える店舗&オフィスのセキュリティ対策術

PHPを使って配列をループしています。
以下のようにifとelseをつかってまわすとフリーズしてしまいます。
無限ループになっているのでしょうか?

この回避方法をどなたかご教授いただきたくお願いします。

foreach ($lines as $line) {
list($DATE,$ID,$POINT,$NAME,$EMAIL,$TEL,$PREF,$SEX,$AGE,$blood,$body,$length,$type,$why,$PASS,$PROF,$BOX,$DAY_LIMIT,$A_ID,$MILE_POINT,)= split(",",$line);
if($EMAIL == $_POST{"EMAIL"} && $PASS == $_POST{"PASS"}){print "$line<br>";
$NEWSTOCK .= "$DATE,$ID,$NOWPOINT,$NAME,$EMAIL,$TEL,$PREF,$SEX,$AGE,$blood,$body,$length,$type,$why,$PASS,$PROF,$BOX,$DAY_LIMIT,$A_ID,$MILE_POINT,";

}else{

print "$line<br>";

}

}

A 回答 (2件)

どんなデータが入ってきてるのか


どんな処理をしようとしてるのか
全く不明なので何とも言えませんが…。
以下のように単純化してデバッグされたらいかがでしょう

1.foreachだけ
foreach ($lines as $line) {
print "$line<br>";
}

2.foreachにlistを加えてみる
foreach ($lines as $line) {
print "$line<br>";
list($DATE,$ID,$POINT,$NAME,$EMAIL,$TEL,$PREF,$SEX,$AGE,$blood,$body,$length,$type,$why,$PASS,$PROF,$BOX,$DAY_LIMIT,$A_ID,$MILE_POINT,)= split(",",$line);
print "$DATE<br>";
print "$ID<br>";
print "$POINT<br>";
・・・以下略
}

3.foreach、listにifを加えてみる
foreach ($lines as $line) {
list($DATE,$ID,$POINT,$NAME,$EMAIL,$TEL,$PREF,$SEX,$AGE,$blood,$body,$length,$type,$why,$PASS,$PROF,$BOX,$DAY_LIMIT,$A_ID,$MILE_POINT,)= split(",",$line);
if($EMAIL == $_POST{"EMAIL"} && $PASS == $_POST{"PASS"}){
print "$line<br>";
}else{
print "$line<br>";
}
}
    • good
    • 0
この回答へのお礼

さっそくの返信ありがとうございます。
おっしゃるように1.2のように切り分けてみると問題ないのですが
elseを使うとフリーズしてしまいます。

お礼日時:2006/04/17 14:51

#1です。


不足部分を適当に付加して実行しましたが、私の環境では特に問題ありませんでした。
恐らくこれだけで完結したスクリプトではないと思いますが情報が足りないのでこれ以上は分かりません。
if~elseの問題ではなく何か別の原因のような気がします
(例えば配列の件数が多すぎるとか…)
お役に立てず申し訳ありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!