Du måste sätta citattecken runt $secpass
i frågan:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Bara för att veta, det finns många andra problem med din kod här. De största är att salt ska vara slumpmässigt. Du kan lagra det i databasen bredvid lösenordet, men att ha olika slumpmässiga salt för varje lösenord minskar användningen av regnbågstabeller avsevärt.
För det andra, och detta är ett mycket större problem, måste du undkomma dina variabler med mysql_real_escape_string()
eller genom att konvertera din databasåtkomst till att använda PDO. Annars öppnar du upp dig för en värld av smärta i form av SQL-injektionsattacker.