Pregunta:
Fecha: 20-09-2017 11:38:53
(En Español)
<?php
{
if (isset($_REQUEST['error']))
echo "Debe completar el campo<br>";
}
?>
<form method="post" action="pagina2.php">
<input type="" name="nombre">
<input type="" name="apellido">
<input type="" name="direccion">
<input type="submit" value="confirmar">
</form>
pagina2.php seria, acá, me valida el campo nombre y como validaría los demás:
<?php
if ($_REQUEST['nombre']=="")
{
header("Location: pagina1.php?error=1");
}
?>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php echo $_REQUEST['nombre']; ?>
</body>
</html>
gracias, espero puedan entender y responder.
Saludos
Votos: 0 - Respuestas: 1 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
validacion formulario header location php[No resuelta]
Buenas, quisiera saber como se puede validar mas de un campo de un formulario con header location en php y que muestre un mensaje distinto por cada validación de campo, por ejemplo pagina1.php:<?php
{
if (isset($_REQUEST['error']))
echo "Debe completar el campo<br>";
}
?>
<form method="post" action="pagina2.php">
<input type="" name="nombre">
<input type="" name="apellido">
<input type="" name="direccion">
<input type="submit" value="confirmar">
</form>
pagina2.php seria, acá, me valida el campo nombre y como validaría los demás:
<?php
if ($_REQUEST['nombre']=="")
{
header("Location: pagina1.php?error=1");
}
?>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php echo $_REQUEST['nombre']; ?>
</body>
</html>
gracias, espero puedan entender y responder.
Saludos
Votos: 0 - Respuestas: 1 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 20-09-2017 16:39:05 Acá te dejo modificado sobre tu mismo código, si no entiendes alguna parte pregunta :)
<?php session_start(); if(isset($_GET['error']) && $_GET['error'] == 1){ // echo "Debe completar el campo<br>"; if(isset($_SESSION['errors']) && is_array($_SESSION['errors']) && sizeof($_SESSION['errors']) > 0){ foreach($_SESSION['errors'] as $error){ switch($error){ case 'nombre' : echo 'Debe completar el campo nombre <br/>'; break; case 'apellido' : echo 'Debe completar el campo apellido <br/>'; break; case 'direccion' : echo 'Debe completar el campo direccion <br/>'; break; } } unset($_SESSION['errors']); } } ?> <form method="post" action="pagina2.php"> <input type="" name="nombre"> <input type="" name="apellido"> <input type="" name="direccion"> <input type="submit" value="confirmar"> </form> pagina2.php seria, acá, me valida el campo nombre y como validaría los demás: <?php // Investiga un poco sobre sesiones :) session_start(); $errors = array(); // Trata de validar mejor los datos. Valida formato, tipo y rango de datos, si vas con cadenas trata de usar trim para evitar que ' ' (espacios) al llenar el formulario logren pasar tu validacion. if(isset($_POST['nombre']) || strlen(trim($_POST['nombre'])) == 0){ $errors[] = 'nombre'; } if(isset($_POST['apellido']) || strlen(trim($_POST['apellido'])) == 0){ $errors[] = 'apellido'; } if(isset($_POST['direccion']) || strlen(trim($_POST['direccion'])) == 0){ $errors[] = 'direccion'; } if(sizeof($errors) > 0){ $_SESSION['errors'] = $errors; header("Location: pagina1.php?error=1"); // Siempre haz un return o die luego de una redireccion por header, un navegador configurado para no seguir redirecciones saltaria esta validacion return; } ?> <html> <head> <title>Problema</title> </head> <body> <?php // Nunca imprimas valores directamente sin procesarlos primero, vulnerable a XSS reflejado, trata de usar $_GET y $_POST en vez de $_REQUEST echo $_REQUEST['nombre']; ?> </body> </html>Votos: 2 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
