Autor Tema: Consulta, saber cuantos datos vienen en $_POST PHP count($_POST)  (Leído 4751 veces)

simchgab

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 16
    • Ver Perfil
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

Código: [Seleccionar]
<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&oacute;n</option>
</select>
                    <input type="button" id="sendsearch" value="buscar"/>
</div>
<!-- div links registrarse | loguin -->
<div class="reglog">
<a href="registro.php" >Registrarse </a> &nbsp;
<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&eacute;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
« Última modificación: 06 de Junio 2016, 22:35 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Consulta, saber cuantos datos vienen en $_POST PHP
« Respuesta #1 en: 01 de Junio 2016, 14:26 »
Hola simchgab.

¿Has intentado probarlo?

Te dejo un pequeño ejemplo.

html con formulario:
Código: [Seleccionar]
<!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:
Código: [Seleccionar]
<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.

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Consulta, saber cuantos datos vienen en $_POST PHP
« Respuesta #2 en: 01 de Junio 2016, 22:23 »
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.

simchgab

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 16
    • Ver Perfil
Re:Consulta, saber cuantos datos vienen en $_POST PHP
« Respuesta #3 en: 01 de Junio 2016, 22:50 »
Muchísimas gracias chicos, La verdad me fue de gran utilidad, aunque ahora tengo problemas con agregar datos a la SESSION jaja

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".