$secpass
を引用符で囲む必要があります クエリ内:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
参考までに、ここのコードには他にも多くの問題があります。最大のものは、塩がランダムでなければならないということです。パスワードの横のデータベースに保存できますが、パスワードごとに異なるランダムソルトを使用すると、レインボーテーブルの使用が大幅に削減されます。
次に、これははるかに大きな問題です。mysql_real_escape_string()
を使用して変数をエスケープする必要があります。 または、データベースアクセスをPDOを使用するように変換します。そうしないと、SQLインジェクション攻撃の形で苦痛の世界に自分自身を開放することになります。