Foros del Web » Programando para Internet » PHP »

if isset muestra echos sin enviar nada en el form

Estas en el tema de if isset muestra echos sin enviar nada en el form en el foro de PHP en Foros del Web. Por aquí aprendiendo un poco más de PHP. Tengo un form con un imput para subir archivos multiple, con su botón de envio , mas ...
  #1 (permalink)  
Antiguo 26/01/2016, 19:21
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta if isset muestra echos sin enviar nada en el form

Por aquí aprendiendo un poco más de PHP.
Tengo un form con un imput para subir archivos multiple, con su botón de envio, mas la función isset y algunos echos 'name', 'size'...

Cuando presiono al boton enviar sin haber cargado nada se muestran los echos, o resultados...

[Elegir Archivos] Ningun archivo seleccionado
[ENVIAR]

Resultado:
0000000000000001000000

Código:
if (isset ($_FILES["archivos"])) {
$tot = count($_FILES["archivos"]["name"]);
 for ($i = 0; $i < $tot; $i++){


$size1 = $_FILES["archivos"]["size"][$i];
$size = dechex($size1);


echo("<br />");
echo str_pad($size,8,"0", STR_PAD_LEFT), '00000001000000';
echo("<br />");

}
He intentado con empty, is_null, pero no funciona.
¿Como puedo anular con el if al no cargarse nada en el Form?

Última edición por leo_search1; 26/01/2016 a las 19:30
  #2 (permalink)  
Antiguo 26/01/2016, 19:37
 
Fecha de Ingreso: julio-2011
Ubicación: Los Rios
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: if isset muestra echos sin enviar nada en el form

Para evitar el envio sin haber seleccxionado archivos coloca en tu input file el atributo required

Código HTML:
Ver original
  1. <input type="file" name="archivo" id="archivo" required="required" />
__________________
___________________________
Si te ayudo mi respuesta dale al +1
  #3 (permalink)  
Antiguo 26/01/2016, 20:22
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: if isset muestra echos sin enviar nada en el form

yo haría algo así :

Código PHP:
Ver original
  1. if($_FILES['archivo']['name'] == "") {
  2. // si esta vació  
  3. }
  4. //también puedes usar : ['size'] == 0

suerte!
  #4 (permalink)  
Antiguo 26/01/2016, 21:25
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por juancaalbarracin Ver Mensaje
Para evitar el envio sin haber seleccxionado archivos coloca en tu input file el atributo required

Código HTML:
Ver original
  1. <input type="file" name="archivo" id="archivo" required="required" />
Es bueno Únicamente que es como poner una capa al error
Aun así esta bueno, no sé si conozcas otras opciones similares.
  #5 (permalink)  
Antiguo 26/01/2016, 21:27
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: if isset muestra echos sin enviar nada en el form

pero eso no pasa de ser en HTML , tienes que validar en php también , cualquiera puede inspeccionar y editar.

suerte.
  #6 (permalink)  
Antiguo 26/01/2016, 21:28
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por sonystar_17 Ver Mensaje
yo haría algo así :

Código PHP:
Ver original
  1. if($_FILES['archivo']['name'] == "") {
  2. // si esta vació  
  3. }
  4. //también puedes usar : ['size'] == 0

suerte!
Sin embargo no crea efecto alguno, sigue mostrando el resultado. Exactamente ¿Como esta estructurada?. Podrías ayudarme con otra opción. :)
  #7 (permalink)  
Antiguo 26/01/2016, 21:31
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por sonystar_17 Ver Mensaje
pero eso no pasa de ser en HTML , tienes que validar en php también , cualquiera puede inspeccionar y editar.

suerte.
¿No se podría desde PHP? con algo similar a Null, isset o empty.

El problema es que hay dos Imput para subir archivos pero con diferentes variables, si lleno uno, al enviar me muestra el resultado de los dos.

Aunque seguire buscando con Html

Última edición por leo_search1; 26/01/2016 a las 21:39
  #8 (permalink)  
Antiguo 26/01/2016, 21:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
El problema es que hay dos Imput para subir archivos, si envió uno, al enviar me muestra el resultado de los dos.
Puedes revisar el "name" de dichos input para saber cual es el que se presionó:
Código HTML:
Ver original
  1. <input name="foo" type="submit">
  2. <input name="bar" type="submit">

Código PHP:
Ver original
  1. var_dump(isset($_POST['foo']), isset($_POST['bar']));

Ahora, el "problema" de isset() en el caso que comentas al inicio es muy simple.

isset() comprueba que exista una variable, pero no implica necesariamente que tenga un valor útil o que esperes, etc.

Por eso debes verificar ambas cosas: que exista y que tenga un valor que conoces.

Además tratándose de $_FILES debes verificar si hubo error o no, pues dicho array siempre trae datos, lee el manual: http://php.net/manual/es/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 26/01/2016, 21:52
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por sonystar_17 Ver Mensaje
pero eso no pasa de ser en HTML , tienes que validar en php también , cualquiera puede inspeccionar y editar.

suerte.

Ya que el otro if isset lo tengo aparte, pero exactamente están los dos, ya fuesen unidos con var_dump, y al dar Enviar como dices: ...isset() comprueba que exista una variable, pero no implica necesariamente que tenga un valor útil o que esperes... así que me da el resultado.

¿Como puedo corregir esto, ya que al no enviar nada me da los echo?.
  #10 (permalink)  
Antiguo 26/01/2016, 21:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: if isset muestra echos sin enviar nada en el form

Pues ya te he dicho, usa el "name" para identificar tus acciones del formulario:
Código PHP:
Ver original
  1. if (isset($_POST['name_del_campo'])) {
  2.   // OK
  3. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 26/01/2016, 21:58
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues ya te he dicho, usa el "name" para identificar tus acciones del formulario:
Código PHP:
Ver original
  1. if (isset($_POST['name_del_campo'])) {
  2.   // OK
  3. }
Mira como se ve la pagina dando a enviar sin ningun archivo http://walter123pruebas.comze.com/Dividir.php
Cada uno con su isset.
  #12 (permalink)  
Antiguo 26/01/2016, 22:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Cada uno con su isset.
Claro, vamos a adivinar exactamente cómo es tu código para saber que habrás hecho mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 26/01/2016, 22:09
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues ya te he dicho, usa el "name" para identificar tus acciones del formulario:
Código PHP:
Ver original
  1. if (isset($_POST['name_del_campo'])) {
  2.   // OK
  3. }
Ok Aquí esta todo el codigo http://pasted.co/c75a4699
  #14 (permalink)  
Antiguo 26/01/2016, 22:15
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: if isset muestra echos sin enviar nada en el form

Cita:
Iniciado por pateketrueke Ver Mensaje
Claro, vamos a adivinar exactamente cómo es tu código para saber que habrás hecho mal.
Acá arriba te deje el codigo, perdona
  #15 (permalink)  
Antiguo 26/01/2016, 22:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: if isset muestra echos sin enviar nada en el form

Pues deberías aprender a leer mejor:
Cita:
Además tratándose de $_FILES debes verificar si hubo error o no, pues dicho array siempre trae datos, lee el manual: http://php.net/manual/es/features.file-upload.php
Lo que te puse en negritas es porque isset() es algo "inútil" tratándose de $_FILES, pues dicho array sí existe, pero eso no implica que hayas subido algo.

Eso se explica perfectamente en el manual, saludos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 26/01/2016, 22:33
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: if isset muestra echos sin enviar nada en el form

¿Y cual podría usar, ya que como vi desde un principio isset no funciona?.

Pero no es error, el isset hace lo que puede.
  #17 (permalink)  
Antiguo 27/01/2016, 00:14
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: if isset muestra echos sin enviar nada en el form

bueno acabo de ver el código :
porque manejas estos elementos como array ?
Código HTML:
Ver original
  1. <input type="file" multiple id="arc" name="archivos[]" />
  2. <input type="file" multiple id="arc" name="archivos1[]" />

dejando de lado yo haría algo así :

Código PHP:
Ver original
  1. if(isset($_POST["submit"])) {
  2.    
  3. //valida que el formulario se envio
  4.  
  5. // cualquiera de las 2 formas
  6.  
  7. if($_FILES['accs']['name'] == "") {  
  8. echo "no envió nada.";
  9. }
  10.  
  11. if($_FILES['accs']['size'] == 0) {
  12. echo "no envió nada.";
  13. }
  14.  
  15. // puedes guardar una variable para manejar errores
  16.  
  17. if ($errores == "")
  18. {
  19. Ejecuto
  20.  
  21. }
  22. }
  23. else
  24. {
  25. echo "no envió el formulario";
  26. }

igual faltaría validar muchas mas cosas.
  #18 (permalink)  
Antiguo 27/01/2016, 00:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: if isset muestra echos sin enviar nada en el form

Creo que no me entendiste, ni tampoco leíste el manual.

Código PHP:
Ver original
  1. if (isset($_FILES['el_input']) && ($_FILES['el_input']['error'] === 0)) {
  2.   // OK
  3. }

Tratándose de $_FILES usar isset() no basta, también debes verificar que no exista un error: http://php.net/manual/es/features.fi...oad.errors.php

Cita:
UPLOAD_ERR_OK
Valor: 0; No hay error, fichero subido con éxito.

UPLOAD_ERR_INI_SIZE
Valor: 1; El fichero subido excede la directiva upload_max_filesize de php.ini.

UPLOAD_ERR_FORM_SIZE
Valor: 2; El fichero subido excede la directiva MAX_FILE_SIZE especificada en el formulario HTML.

UPLOAD_ERR_PARTIAL
Valor: 3; El fichero fue sólo parcialmente subido.

UPLOAD_ERR_NO_FILE
Valor: 4; No se subió ningún fichero.

UPLOAD_ERR_NO_TMP_DIR
Valor: 6; Falta la carpeta temporal. Introducido en PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE
Valor: 7; No se pudo escribir el fichero en el disco. Introducido en PHP 5.1.0.

UPLOAD_ERR_EXTENSION
Valor: 8; Una extensión de PHP detuvo la subida de ficheros. PHP no proporciona una forma de determinar la extensión que causó la parada de la subida de ficheros; el examen de la lista de extensiones cargadas con phpinfo() puede ayudar. Introducido en PHP 5.2.0.
Al no elegir archivos a subir, se devuelve el código de error 4.

No es que tu código tenga un error, eso no.

Eso que así funciona el sistema el upload de PHP, nada más.

Por favor lee el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: echo, empty, form, funcion, isset, múltiple, variable
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 02:59.