Devi mettere le virgolette intorno a $secpass
nella query:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Per tua informazione, ci sono molti altri problemi con il tuo codice qui. I più grandi sono che il sale dovrebbe essere casuale. Puoi archiviarlo nel database accanto alla password, ma avere un salt casuale diverso per ogni password riduce enormemente l'uso delle tabelle arcobaleno.
In secondo luogo, e questo è un problema molto più grande, devi sfuggire alle tue variabili usando mysql_real_escape_string()
o convertendo l'accesso al database per utilizzare PDO. Altrimenti ti stai aprendo a un mondo di dolore sotto forma di attacchi SQL injection.