Je moet aanhalingstekens plaatsen rond $secpass
in de vraag:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Ter informatie, er zijn nog veel andere problemen met uw code hier. De grootste zijn dat zout willekeurig moet zijn. Je kunt het in de database naast het wachtwoord opslaan, maar als je voor elk wachtwoord een ander willekeurig zout gebruikt, wordt het gebruik van regenboogtabellen enorm verminderd.
Ten tweede, en dit is een veel groter probleem, moet je aan je variabelen ontsnappen met mysql_real_escape_string()
of door uw databasetoegang te converteren om PDO te gebruiken. Anders stel je jezelf open voor een wereld van pijn in de vorm van SQL-injectie-aanvallen.