Lo que sucede es que no esta permitido poner instrucciónes print, printf, echo, etc. antes de poner el header es por eso que nunca va a redirigir despues de mostrar el mensaje de error.
print '<p>debe entrar correo y password <br/> go back and try again<p>';
header("location:index-1.php");
Lo que se acostumbra hacer es recargar el formulario mostrando al inicio de la página el mensaje de error, para esto no se necesita redireccionar con header basta con usar las condicionales if que ya existen, esta puede ser una manera.
Código PHP:
Ver original<?php
$formulario= '<form action="index-1.php" method="post">
<p>email addres:<input type="text" name="email" size="20" /></p>
<p>password:<input type="password" name="password" size="20" /></p>
<p><input type="submit" name="submit" value="Log In!" /></p>
<p><input type="hidden" name="submitted" value="true" />
</form>';
if (isset($_POST['submitted'])) {
if ((!empty($_POST['email'])) && (!empty($_POST['password']))) {
$_session['email'] = $_POST['email'];
$_session['loggedin'] = time();
header ('location: welcome.php');
}else{ //equivocacion 1
print '<p>No combinan la clave ni el password <br/> go back and try again<p>';
print $formulario;
}
}else{ //equivocacion 2
print '<p>debe entrar correo y password <br/> go back and try again<p>';
print $formulario;
}
}else{
print $formulario;
}
?>