Ok,
Para la primera opcion tenemos dos formas de hacerlo; la forma que te parezca mas facil es igual de viable te las pongo aqui para que las evalues y si tienes alguna duda me digas.
1.- (Hacerlo dentro del mismo formulario) utilizo post para enviar datos ya que get me parece muy inseguro
Ejemplo si nuestro archivo se llama formulario.php
<html>
<head>
<title>Hello!</title>
</head>
<body>
<?php
if(isset($_POST['nombre'])) // aqui reviso que exista una de las variables que envie en el formulario esto evita que me coloque errores por ser la misma pagina y que en un inicio no existen
{
if($_POST['usr']=='felipe' && $_POST['pass']=='luevano')//ESTO ES MUY VAGO AQUI TENDRIAS QUE HACERLO CON CONEXION A LA BASE DE DATOS
{
echo('AQUI TENDRIAS QUE HACER EL ENVIO DEL FORMULARIO Y REDIRECCIONAR LA PAGINA YA QUE YA REVISAMOS EL USUARIO');
}
else // en este caso solo volvemos a colocar los datos en su lugar correspondiente
{
echo('<form action="formulario.php" method="post">
<label>Nombre:</label>
<input type="text" name="nombre" value="'.$_POST['nombre'].'"/>
<br>
<label>Edad:</label>
<input type="text" name="edad" value="'.$_POST['edad'].'"/>
<br>
<label>Usuario:</label>
<input type="text" name="usr"/>
<br>
<label>Pass:</label>
<input type="text" name="pass"/>
<input type="submit" value="Enviar Form" />
</form>');
}
}
else // en caso de no existir variables solo dibujamos el form
{
echo('<form action="formulario.php" method="post">
<label>Nombre:</label>
<input type="text" name="nombre" />
<br>
<label>Edad:</label>
<input type="text" name="edad" />
<br>
<label>Usuario:</label>
<input type="text" name="usr"/>
<br>
<label>Pass:</label>
<input type="text" name="pass"/>
<input type="submit" value="Enviar Form" />
</form>');
}
?>
</body>
</html>
ok esto funciona corectamente si gustas copialo y pegalo para que veas como funciona es un ejemplo vago pero creo que da a entender el concepto
Ahora la segunda forma seria
2.- Aqui tendrias que hacer lo mismo que en la opcion anterior pero sin lo del usuario y pass esto lo harias en otro form llamado validar pero al igual que en este no pierdas los valores del form axiliandote del arreglo $_POST[]
Si tienes duda de como aplicar alguna de las dos opciones hazmelo saber