Musisz umieścić cudzysłowy wokół $secpass
w zapytaniu:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Tylko do Twojej wiadomości, jest tu wiele innych problemów z Twoim kodem. Największe są takie, że sól powinna być losowa. Możesz przechowywać go w bazie danych obok hasła, ale posiadanie innej losowej soli dla każdego hasła znacznie zmniejsza użycie tęczowych tabel.
Po drugie, i to jest znacznie większy problem, musisz uciec od swoich zmiennych za pomocą mysql_real_escape_string()
lub poprzez konwersję dostępu do bazy danych na używanie PDO. W przeciwnym razie otwierasz się na świat bólu w postaci ataków SQL injection.