Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: simchgab en 01 de Junio 2016, 01:52
-
Chicos me surgio una duda, quiero saber si me completaron todos los campos de un formulario de registro en php, que estos no tengan errores, y que no se haya enviado el formulario en principio. en dicho caso muestra el formulario
Se me ocurrio el tema de la cantidad de campos, con un count($_POST) === x donde x es la cantidad de campos del formulario, dado que POST es un vector, Es posible eso o me estoy mandando un moco al existir una funcion especifica para dicho fin?
Dejo parte del codigo
<head>
<meta charset="utf-8"/>
<meta lang="es"/>
<title> Registro </title>
<link rel="stylesheet" type="text/css" href="css/front_end/front-end.css"/>
</head>
<body>
<!-- SCRIPT -->
<script src="js/validaciones.js"></script>
<!-- Div contenedora de toda la pagina -->
<div class="general">
<!-- Div barra Superior -->
<div class="barra_superior">
<!-- Div buscador -->
<div class="buscador">
<label for="productoBuscar">Buscar Producto: </label>
<input type="text" name="productoabuscar" id="productoBuscar"/>
<!-- Selector de las categorias de la base -->
<label for="selcat"></label>
<select name="selcat" class="selectbuscador" id="selcat">
<option value="hogar">Hogar</option>
<option value="electrodomestico">Electrodomesticos</option>
<option value="deportes">Deportes</option>
<option value="construccion">Construcción</option>
</select>
<input type="button" id="sendsearch" value="buscar"/>
</div>
<!-- div links registrarse | loguin -->
<div class="reglog">
<a href="registro.php" >Registrarse </a>
<a href="login.html"> Ingresar </a>
</div>
<!-- div nombre de empresa + logo -->
</div>
<div class="nomempresa">
<a href="index.html">
<img src="imagenes/logo.png" class="logo" alt="logo" />
</a>
<p> VENTA DE PRODUCTOS </p>
</div>
<!-- contenedor menu izquierdo y datos -->
<div class="contenedor">
<div class="formulario_registro" >
<?php
//Si no se envio el formulario, el mismo no tiene todos los campos del formulario cargados o hubo un error en el mismo.
if(empty( $_POST ) || $errores === TRUE || ){ //Si no existe la variable global POST, es porque no se envio el formulario
//Entonces Lo muestro
?>
<form action="registro.php" method="post" autocomplete="on" name="formReg">
<label for="frusuario">Ingrese su N° de usuario:</label>
<input type="number" name="Usuario" id="frusuario"/>
<label for="frpass">Password:</label>
<input type="password" name="pass" id="frpass"/>
<label for="frrepass">Repita su Password:</label>
<input type="password" name="repass" id="frrepass"/>
<label for="frname">Nombre:</label>
<input type="text" name="nombre" id="frname"/>
<label for="frape">Apellido: </label>
<input type="text" name="apellido" id="frape"/>
<label for="frcel">Teléfono</label>
<input type="text" name="telefono" id="frcel"/>
<label for="frcorreo">Correo Electronico</label>
<input type="email" name="email" id="frcorreo"/>
<input type="button" value="Enviar" onClick="validarRegistro()"/>
</form>
</div>
<?php
} else{ //Si la variable superglobal $_POST existe quiere decir que js ya valido el formulario y sigo procesando
?>
</div>
</div>
MIL GRACIAS
-
Hola simchgab.
¿Has intentado probarlo?
Te dejo un pequeño ejemplo.
html con formulario:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Prueba form</title>
</head>
<body>
<form action="prueba.php" method="post">
Campo1: <input type="text" name="dato0"><br>
Campo1: <input type="text" name="dato1"><br>
Campo1: <input type="text" name="dato2"><br>
Campo1: <input type="text" name="dato3"><br>
Campo1: <input type="text" name="dato4"><br>
Campo1: <input type="text" name="dato5"><br>
<input type="submit">
</form>
</body>
</html>
php:
<html>
<head>
<meta charset="UTF-8">
<title>Prueba form</title>
</head>
<body>
<div>
<?php
echo '$_POST contiene: ' . count($_POST) . " elementos. <br/><br/>";
echo count($_POST)===6;
foreach ($_POST as $indice => $valor) {
echo "<p>$indice : $valor</p>";
}
?>
</div>
</body>
</html>
Sobre $_POST puedes actuar como con cualquier otro array asociativo.
Saludos.
-
Para obligar al usuario a rellenar todos los campos, tienes en html la opcion required.
<input type="text" name="nombre" required/>
Luego para asegurarte que se envian todos bien ya deberías usar previamente al envio JavaScript y sino en PHP, sabiendo tú previamente todos los campos que deben ser llenados, asegurarte con count o alguna otra forma que se te ocurra.
Saludos.
-
Muchísimas gracias chicos, La verdad me fue de gran utilidad, aunque ahora tengo problemas con agregar datos a la SESSION jaja