こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

phpで困ってます。

phpでNotice: Undefined offset:のエラーが出て困っています。ご指導よろしくお願いします。
まず、name.txtの内容からチェックボックスを生成し、そのチェックボックスにチェックを入れて送信します。

<?php
$name_file = "name.txt";
$name_log = array();
// ログファイルの読み込み
if (file_exists($name_file)) { $name_log = file( $name_file ); }
// ログの内容をHTMLに変換する
$html = "";
$count = 0;
//チェックボックスの生成
foreach ($name_log as $line) {
$checkbox = '<label><input class="che" type="checkbox" name="n['.$count.']" value="'.$line.'"><img src="'.$line.'"></label></br>';
$html .= $checkbox;
$count ++;
}
$html .= '<input type="hidden" name="count" value="'.$count.'">';
?>
 
後略

次に受け取る側ですが,チェックが入っている情報をもとにimgタグを生成しようとしています。

<?php
$html = "";
$max = $_POST['count'];
//n[ ]に送信されきた内容を代入
for ($i = 0; $i < $max; $i++) {
if($_POST['n'][$i] != ''){
$img_src = htmlspecialchars($_POST['n'][$i], ENT_QUOTES);
$img = '<img src="'.$img_src.'">';
$html .= $img;
}
}

$fhn = fopen("show_html.txt","w");
fwrite($fhn,$html);
fclose($fhn);
?>
後略


if($_POST['n'][$i] != '')の部分で

Notice: Undefined offset:0 ..............
Notice: Undefined offset:1 ..............
Notice: Undefined offset:2 ..............
.
.
.
.
のエラーが出ます。

投稿日時 - 2014-12-14 09:11:58

QNo.8857743

すぐに回答ほしいです

質問者が選んだベストアンサー

エラーになっているoffset番号はチェックが入っていないチェックボックスの番号じゃありませんか?
チェックボックスはチェックが入っていない時、name・value共にPOSTされてきませんので、エラーになっているのでしょう。

何が入ってくるか判らないので、以下のようにforeachで展開するといいのではないでしょうか。

if(isset($_POST['n'])){
foreach ($_POST['n'] as $imgValue) {
$img_src = htmlspecialchars($imgValue, ENT_QUOTES);
$img = '<img src="'.$img_src.'">';
$html .= $img;
}
}

投稿日時 - 2014-12-14 10:11:34

お礼

早速の回答ありがとうございます。ご指摘のとおりエラーになっているのはチェックが入っていないチェックボックスの番号でした。教えていただいたように修正したらうまく動きました。助かりました。ありがとうございました。また機会があれば、ご指導よろしくお願いします。

投稿日時 - 2014-12-14 12:45:32

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問