Foros del Web » Programando para Internet » PHP »

¿Porque utilizar "if count($_POST))" en un formulario?

Estas en el tema de ¿Porque utilizar "if count($_POST))" en un formulario? en el foro de PHP en Foros del Web. Hola amigos, como estan? Como comente en otro post estoy aprendiendo PHP, voy de apoco pero creo que bien... por ahora, ja ja ja. Tengo ...
  #1 (permalink)  
Antiguo 05/01/2009, 11:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 4 meses
Puntos: 0
¿Porque utilizar "if count($_POST))" en un formulario?

Hola amigos, como estan?
Como comente en otro post estoy aprendiendo PHP, voy de apoco pero creo que bien... por ahora, ja ja ja.

Tengo una gran duda, siempre que comunico un formulario html con un script php, veo que el script tiene:


Código:
if (count($_POST)
{
   //Trabajo con los datos del formulario.
}else{
   //No trabajo con los datos del formulario.
}
Se muy bien que cuando se envia algo por POST, se almacena en el array $_POST, pero, porque verificamos if (count($_POST), no entiendo que hace...
pense que verificaba que el vector contenia info, pero para eso usaria el issets.

google y lo que encontre es que count devuelve la cantidad de elementos de un array o matriz, pero no puedo entender el uso.

Muchisimas gracias!!!
  #2 (permalink)  
Antiguo 05/01/2009, 11:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

pues revisa el manual...

http://php.net/count

count devuelve el numero de indices en un array, entonces... si el POST viene vacío da cero, en caso contrario devuelve algo mas que cero...

y eso es suficiente para elaborar el resto, aun que personalmente... yo uso isset (revisa el manual)

Código PHP:
if (isset($_POST['submit']))
{
  
// OK

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/01/2009, 11:26
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

Sera que se usa para ver si tiene algo la variable ?? , pero claro como vos decis sino se usaria ISSET
Yo lo uso asi ...
Código PHP:
 if(isset($_POST['ok'])){
// Aca lo que necesites hacer
 

Y mas abajo un boton submit con el name="ok".
Saludos, Ricardo
__________________
Mail: [email protected]
  #4 (permalink)  
Antiguo 05/01/2009, 11:28
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

Hola, gracias por la respuesta, entonces si cont da 0 no se hace el if...
Pero, toda mi consulta surge por este codigo:
Código:
<?php
/** Todo lo referente a archivos se guarda en el array $_FILES */

/** ESTO MUESTRA INFO DEL ARCHIVO, LA CARGA SE REALIZA A UNA CARPETA TEMPORAL Y PARA GUARDAR EL ARCHIVO DEBE COPIARSE A SU CARPETA FINAL*/

//Me dice el nombre del archivo. Cambiar fmrArchivo por como se llame el campo del formulario.
echo "El nombre original del archivo es: <br/>";
echo $_FILES['frmArchivo']['name'];
echo "<br /><br />";

//Me dice la extension del archivo.
echo "El tipo MIME del archivo es: <br />";
echo $_FILES['frmArchivo']['type'];
echo "<br /><br />";

//Me dice cuanto pesa el archivo.
echo "El archivo pesa (bytes): <br />";
echo $_FILES['frmArchivo']['size'];
echo "<br /><br />";

//Me dice el nombre temporal del archivo. Cuando se envia un archivo PHP Guarda el archivo en un directorio temporal, si se quiere mantener el archivo, tiene que ser copiado al direcctorio definitivo.
echo "El nombre temporal es: <br />";
echo $_FILES['frmArchivo']['tmp_name'];
echo "<br /><br />";


/** MUEVO EL ARCHIVO A SU CARPETA DEFINITIVA:*/
if(count($_POST))//Si no le saco este if no anda.
{
    $temp = $_FILES['frmArchivo']['tmp_name'];//A $temp le asigno el nombre temporal del archivo subido.
    if(is_uploaded_file($temp))//Verifico que el archivo halla sido cargado.
    {        //Si fue cargado lo mueve a la carpeta de destino final.
            $destino = "images/".$_FILES['frmArchivo']['name'];//A $destino le asigno la ruta con el nombre de donde voy a guardar el archivo de forma definitiva.
            move_uploaded_file($temp, $destino);//Funcion que mueve el archivo $temp a la direccion $destino.
            echo "El Archivo ah sido subido correctamente!"
    }else{
        //Si no fue cargado...
        echo "Error! No se cargo el archivo..<br />";
        echo "Ni idea porque..";    
    }
}


?>
El codigo, no me mueve el archivo a la carpeta images, la unica forma de que lo haga es que le saque el "if (count($_POST). Si elimino este iff todo and perfecto.
  #5 (permalink)  
Antiguo 05/01/2009, 11:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

quizá, esa sea tu equivocación...

ya que es obvio, que POST viene vacío... en este caso usa is_uploaded_file o has un count() de la variable $_FILES

Cita:
[...] Todo lo referente a archivos se guarda en el array $_FILES [...]
¿entiendes la diferencia???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 05/01/2009, 11:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

Cita:
Iniciado por pateketrueke Ver Mensaje
quizá, esa sea tu equivocación...

ya que es obvio, que POST viene vacío... en este caso usa is_uploaded_file o has un count() de la variable $_FILES



¿entiendes la diferencia???

PERFECTAMENTE!!
Si, entiendo la diferencia, no lo habia pensado.
Mas tarde lo pruebo, ahora debo irme, y digo como me fue.
El libro que estoy leyendo esta mal entonces.
Muchisimas gracias!!
  #7 (permalink)  
Antiguo 05/01/2009, 21:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

Hola, acabo de probar, cambiando el $_POST por el $_FILES y funciona correctamente.

Ahora que lo pienso no me queda del todo claro.
La informacion de los archivos es almacenada en el array $_FILES, eso esta claro.
Pero la informacion de la info enviada mediante el formulario html, puede ser enviada mediante GET o POST, en mi formulario html la info es enviada por POST (lo dice el formulario), entonces, cuando se trabaja con archivos, no importa si el metodo sea POST o GET, siempre se usa el $_FILES para hacer las comprobaciones?

Eso no me queda muy claro...

Muchisimas gracias por su ayuda!!
  #8 (permalink)  
Antiguo 06/01/2009, 13:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

1- En $_GET se almacenan todas las variables incluidas en la URL, independientemente de si llegan por formulario (metodo GET) o por click en un enlace.
2- En $_POST se almacenan todos los campos de un formulario enviado por metodo POST
3- En $_FILES se almacena toda la informacion de archivos subidos, solo se reciben por metodo POST y enctype="multipart/form-data", nunca por metodo GET

Si envias un archivo y ademas tienes otros campos como para asignarle titulo o nombre, habra contenido tanto en $_POST como en $_FILES

Imagina un formulario asi:
Código:
<form method="post" action="subir.php?paso=3" enctype="multipart/form-data">
Titulo: <input type="text" name="titulo" value="" /><br />
Archivo: <input type="file" name="archivo" /><br />
<input type="submit" value="Enviar" />
</form>
En ese ejemplo recibiras valores en $_GET, $_POST y en $_FILES, por lo que tendrias que validar cada variable esperada antes de procesar el formulario y el count($_xxxx) no resulta tan util.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 06/01/2009, 19:37
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: ¿Porque utilizar "if count($_POST))" en un formulario?

Muchisimas gracias!
Muy buena la respuesta y la explicacion, ahora todo me queda mas claro!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:28.