Debe poner comillas alrededor de $secpass
en la consulta:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Solo para su información, hay muchos otros problemas con su código aquí. Los más importantes son que la sal debe ser aleatoria. Puede almacenarlo en la base de datos junto a la contraseña, pero tener una sal aleatoria diferente para cada contraseña reduce enormemente el uso de las tablas de arco iris.
En segundo lugar, y este es un problema mucho mayor, debe escapar de sus variables usando mysql_real_escape_string()
o convirtiendo su acceso a la base de datos para usar PDO. De lo contrario, se está abriendo a un mundo de dolor en forma de ataques de inyección SQL.