2016-04-17 23 views
0

私はコースで構成されるDBを作成しました。ログインした学生は、ダイナミックチェックボックスを使用してコースを選択し、フォームを介して提出することができます。エラー:未定義のインデックスphp

<form method="POST" action="checkbox.php"> 
<?php 
$sql1 = "SELECT course_id FROM course WHERE sem ='" .$_POST['sem']."'"; 
$result = mysqli_query($conn,$sql1); 
while($row = mysqli_fetch_array($result)) { 
echo "<input type='checkbox' name='course_id[]'    value='{$row['course_id']}'>" . $row['course_id']; 
} 
?> 
<br>  
<button ><span>Submit</span></button>            
</form> 

フォームは値をエコーする配列からなるPHPを呼び出します。しかし、私は "未定義のインデックス12IS36"と言うPHPからのエラーを取得しています..ここでは12IS36はDBに格納されているコースです。あなたは、インデックスのような値を使用すべきではありません

PHPコード

<?php 
//connection 
foreach($_POST['course_id'] as $course) { 
echo $_POST[$course]; 
} 
?> 
+2

[PHP: "注意:未定義の変数" と "注意:未定義のインデックス"]の可能な重複(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice – chris85

+0

'echo $ _POST [$ course];' => 'echo $ course;'(12IS36、...を出力します) – fusion3k

+0

'$ _POST [$ course]'が最初に入力されていることを確認してください。これはSQLインジェクションにもオープンです。 – chris85

答えて

1

..

<?php 
//connection 
    foreach($_POST['course_id'] as $course) { 
    echo $_POST[$course]; // in this case you are using a value like an index 
    } 
?> 

あなたはたぶんこれは私が「、あなたを助ける代わりに

<?php 
//connection 
    foreach($_POST['course_id'] as $course) { 
    echo $course;  
    } 
?> 
1

使用する必要がありますコードをわずかに改善し、SQLインジェクションを止めるためにこの句をエスケープしました。

<form method="POST" action="checkbox.php"> 
    <?php 
    $sem = mysqli_real_escape_string($conn, $_POST['sem']); 
    $sql = mysqli_query($conn, "SELECT course_id FROM course WHERE sem='$sem'"); 
    while($row = mysqli_fetch_assoc($sql)) { 
     echo "<input type='checkbox' name='course_id[]' value='{$row['course_id']}'> ".$row['course_id']; 
    } 
    ?> 
    <br> 
    <button><span>Submit</span></button>            
</form> 

<?php 
    //connection 
    foreach($_POST['course_id'] as $course) { 
     echo $course; 
    } 
?> 
関連する問題