-1

未定義の定数 ugDept の使用 - 「ugDept」と仮定

以下のコードを実行しようとすると、このエラーが表示されます

$_10thPercentage=number_format($_POST['tenthPercentage'], 2, '.', ' ');
$query="
INSERT INTO academic 
    VALUES (
        '".$_SESSION['roll']."', 
        '".$_POST[tenthMedium]."',
        ".$_10thPercentage.",
        '".$_POST[twelthStudiedStatus]."',
        ".$_10thPercentage.",
        '".$_POST[techStudiedStatus]."',
        '".$_POST[techDept]."',
        '".$_POST[techPercentage]."',
        '".$_POST[appStudiedStatus]."',
        '".$_POST[appDept]."',
        '".$_POST[appPercentage]."',
        '".$_POST[ugStudiedStatus]."',
        '".$_POST[ugDept]."',
        '".$_POST[ugCgpa]."',
        '".$_POST[pgStudiedStatus]."',
        '".$_POST[pgDept]."',
        '".$_POST[pgCgpa]."')";

mysql_query($query);

特定の値のみがポストに渡されます。コードが機能していないので、解決する方法を提案してください

4

4 に答える 4

11

すべての $_POST 変数を変更して引用符を使用する必要がある場合があります (定数を使用していない場合)。そのようです:

$_POST['ugDept']

それ以外の場合、PHP はugDeptという名前の定数値を探しますが、存在しない可能性があります。定数を使用している場合は、適切に定義したことを確認してください。次のようにできます。

define('ugDept', 'someValueHere');

また、他の人が示唆しているように、入力をサニタイズする必要があり、 ではなくMysqli 拡張機能を使用する必要がありますmysql_*。現状では、データベースは SQL インジェクションの危険にさらされていますが、これは悪いことです。

更新:mysql_query呼び出しが成功したかどうかを確認するには、次のようにします。

$result = mysql_query('{YOUR QUERY HERE}');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

これにより、SQL エラーが報告されます。dieing は、実稼働環境で実行するのが必ずしも最善ではないことに注意してください。しかし、開発では、それは仕事をします。

于 2012-08-22T12:43:47.897 に答える
1

また、入力のサニタイズも検討してください。

于 2012-08-22T12:45:39.183 に答える
0

これは、constactugDeptが定義されていないことを意味します。たとえば、行った必要があるように定義するだけですtenthMedium

于 2012-08-22T12:43:43.917 に答える
0

$_10thPercentage は投稿配列から取得されていませんね。また、テーブルの作成ステートメントも役立ちます。

于 2012-08-22T12:45:37.513 に答える