こんにちは私は、subj_idを持つフォームを持っています。ここにシナリオがあります。私はsubj_ids 1、2、3、4、6持っていますが、何が、私はそれが0の値でレコードを挿入し、プラスそれは6ループ+間違ったレコードが挿入されました
FORMのsubj_idにレコードを挿入していないフォームを送信しています毎回起こる:
<tr>
<td width="225"><?= $row_subjects[1];?>
<?php if($row_active_term[0] == '1st' && $row_active_term[1] == '1') {?>
<td align="center" width="225">
<?php if($row_subjects['indicator'] == 'editable'){?>
<input type="hidden" name="subj_id_<?= $row_subjects[0]?>" id="subj_id_<?= $row_subjects[0]?>" value="<?= $row_subjects[0]?>" />
<input type="text" name="grade_<?= $row_subjects[0]?>" id="grade_<?= $row_subjects[0]?>" size="5" value="<?= number_format($row_subjects[4], 1)?>" />
<?php } else {?>
<a href="#" title="This is your downfall">?</a>
<?php } ?>
</td>
<?php } ?>
</tr>
投稿: これは悪いコードがある場所だと思います。 。 。
<?php
include('conn.php');
$uid = $_SESSION['uid'];
$rs_count_subjs = mysql_query("select count(*) as x from teachers_subjects where tid = $uid");
$row_count_subjs = mysql_fetch_array($rs_count_subjs);
$x = $row_count_subjs['x'];
$term = $_POST['term'];
//echo "select count(*) as x from teachers_subjects where tid = $uid";
$rs_subjs = mysql_query("select * from teachers_subjects where tid = $uid");
$row_subjs = mysql_fetch_array($rs_count_subjs);
for($i=0; $i<=$x; $i++) {
$t = $row_subjs[0];
$sid = $_POST['sid'];
$s = $_POST['subj_id_'.$i];
$y = $_POST['grade_'.$i];
$rs = mysql_query("select * from student_friggin_grades where sid = '$sid' AND subj_id = '$s' AND term = '$term' AND tid = $uid");
$row = mysql_fetch_array($rs);
$num = mysql_num_rows($rs);
if($num > 0) {
$update_grade = "update set grade = '$y' where sid = '$sid' AND subj_id = '$s' AND term = '$term' AND tid = $uid";
$updated_grade = mysql_query($update_grade);
$is_updated = mysql_affected_rows();
echo "update set grade = '$y' where sid = '$sid' AND subj_id = '$s' AND term = '$term' AND tid = $uid";
} else {
$update_grade = "insert into student_friggin_grades(`sid`, `subj_id`, `term`, `grade`, `tid`, `date_added`, `date_updated`)
values('$sid', '$s', '$term', '$y', $uid, NOW(), NOW())";
$updated_grade = mysql_query($update_grade);
$is_updated = mysql_affected_rows();
}
}
if($is_updated > 0) {
header("Location: show_grades.php?sid=$sid");
}
?>
$ xを想定し、私を助けてください
XXXXXXXXXXXXXXXX
回答を受け入れない場合、私はあなたを助けるインセンティブがありません。 – Phil
あなたはmysql注入の危険性を認識していますか? – Nobody
私の質問はmysqlの注入についてではありません。これは単なるローカルアプリケーションです。 。 。 – easyb