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

Título: Consulta, saber cuantos datos vienen en $_POST PHP count($_POST)
Publicado 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

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
Título: Re:Consulta, saber cuantos datos vienen en $_POST PHP
Publicado por: pedro,, 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.
Título: Re:Consulta, saber cuantos datos vienen en $_POST PHP
Publicado por: Lorenzo31 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.
Título: Re:Consulta, saber cuantos datos vienen en $_POST PHP
Publicado por: simchgab 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