Questo comunque
e' concettualmente errato. In uno statement come quello sia la seconda parte che la terza dovrebbero restituire un valore da assegnare a $c_p, usare l'operatore ternario cosi' e' solo un modo di scrivere un if inutilmente offuscato.codice:$c_p = ($_POST['c_p'] == $_POST['c_pa']) ? sha1($_POST['c_p']) : header("Location: register.php");
Se l'header viene ignorato, probabilmente hai gia' inviato dell'output (e hai la visualizzazione degli errori disabilitata).