Foros del Web » Programando para Internet » PHP »

No le entiendo esta condicion ?

Estas en el tema de No le entiendo esta condicion ? en el foro de PHP en Foros del Web. Me encontre este codigo y la verdad no le entiendo muy bien esa condicion ya logre subir y leer la imagen pero tengo el caso ...
  #1 (permalink)  
Antiguo 09/03/2010, 18:30
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
No le entiendo esta condicion ?

Me encontre este codigo y la verdad no le entiendo muy bien esa condicion ya logre subir y leer la imagen pero tengo el caso de que el cliente pueda o no tener fotografia lo que quisiera es que me valide para tenga o no tenga foto y me deje insertar otros datos ?

Código PHP:
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && (    $tamano_archivo 100000)))
            { 
             echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de             100 Kb máximo.</td></tr></table>";
            
         }
               else
             { 
             
$nom_img$nombre_archivo;
             
$directorio 'modulos/jugadores/vistas/fotos/';
             
                    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio "/" $nom_img))
                    { 
                            if (empty(
$id)) {
                        
                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img)){
                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                echo 
"<center>Historial exitoso!. Espere unos instantes</center>";
                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                            } else {
                                echo 
"El registro no fue exitoso";
                            }
                        } else {
                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img,$id)){
                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                echo 
"<center>Historial Guardado exitosamente!. Espere unos instantes</center>";
                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                            } else {
                                echo 
"<center>El historial no fue exitosa</center>";
                            }
                        }
                        
                
                
                
              }
              else
                {
                echo 
"error al subir la foto";
              } 
Agradezco su tiempo
  #2 (permalink)  
Antiguo 09/03/2010, 18:34
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No le entiendo esta condicion ?

puedes validar antes
Código PHP:
Ver original
  1. if(empty($tipo_archivo)){
  2.    //no hay imagen
  3. }else{
  4.   //codigo para subir la imagen
  5. }
esto es un ejemplo, espero y te sirva o te de una idea,
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 09/03/2010, 18:45
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No le entiendo esta condicion ?

La idea es que si tiene foto el usuario y quiere subir esa foto que la pueda subir, ahora si el usuario tiene una foto pero no quiero cargar a su perfil entonces que le deje meter los otros datos y no le muestre el mensaje de:

La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
  #4 (permalink)  
Antiguo 09/03/2010, 19:06
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No le entiendo esta condicion ?

te lo planteo de otra forma, por lo que entiendo $tipo_archivo es la variable que tiene el nombre de la imagen, si es que el usuario sube una, entonces
Código PHP:
Ver original
  1. //cambiando un poco, preguntamos si la variable $tipo_archivo no esta vacia
  2. if(!empty($tipo_archivo)){
  3.    //si no lo esta, haces el proceso de verificar el tipo, tamaño, etc. a la imagen
  4.    //aqui todo el codigo para eso
  5. }
  6. //quitamos el else, pues si no hay imagen sigue el resto del procedimiento.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 09/03/2010, 19:26
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No le entiendo esta condicion ?

Gracias eits pero no logro entender donde quedaria esta condicion que es muy importante sin esto no suble el archivo
Código PHP:
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio "/" $nom_img)) 
Me gustaria por favor si es posible que seas un poco mas detallado ya que hice lo que me recomendaste pero no logro encontrar mi error tal vez viendo como era tu idea armada me pueda dar cuenta donde estoy fallando ?

Gracias por tu tiempo
  #6 (permalink)  
Antiguo 09/03/2010, 20:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: No le entiendo esta condicion ?

Tengo una idea que espero sea la adeacuda y si no es asi espero sus consejos

En vez de querer cambiar esa condicion decidi hacer un cambio en aqui:
Código PHP:
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && (    $tamano_archivo 100000)))
            { 
             
//echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de             100 Kb máximo.</td></tr></table>";
             //echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
              
$pordefecto 'modulos/jugadores/vistas/2.jpeg';
               
                    if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$pordefecto)){
                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                echo 
"<center>Historial exitoso!. Espere unos instantes</center>";
                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                            } else {
                                echo 
"El registro no fue exitoso";
                            }
            }
               else
             { 
Si es que no tiene foto el usuario que el sistema le asigne uno de manera automatica y pero es ahi mi duda no se y no me puedo dar cuenta si lo q estoy hacciendo esta correcto pq cuando pongo en marcha esta idea tengo este problema por decir el usuario solo quiere modificar su foto o aumentar algun comentario hago click en enviar y me muestra en mi listado un nuevo registro en blanco ??? y el registro donde estaba queriendo aumentar alguna cosa o poner su foto no presenta ningun cambio

Espero que me hayan entendido y que mi idea este correcta

Gracias por su tiempo
  #7 (permalink)  
Antiguo 09/03/2010, 20:05
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No le entiendo esta condicion ?

esta es la idea
Código PHP:
Ver original
  1. if(!empty($tipo_archivo)){
  2. if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && (    $tamano_archivo < 100000))){
  3.     echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de             100 Kb máximo.</td></tr></table>";
  4. }else{//no tiene fin
  5.     $nom_img= $nombre_archivo;
  6.     $directorio = 'modulos/jugadores/vistas/fotos/';
  7.     if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio . "/" . $nom_img)){
  8.         if (empty($id)){
  9.             if ($MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img)){
  10.                 echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  11.                 echo "<center>Historial exitoso!. Espere unos instantes</center>";
  12.                 echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
  13.             }else{
  14.                 echo "El registro no fue exitoso";
  15.             }
  16.         }else{
  17.             if ($MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img,$id)){
  18.                 echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  19.                 echo "<center>Historial Guardado exitosamente!. Espere unos instantes</center>";
  20.                 echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
  21.             }else{
  22.                 echo "<center>El historial no fue exitosa</center>";
  23.             }
  24.         }
  25.     }else{
  26.         echo "error al subir la foto";
  27.     }
  28. //hasta donde termine el else
  29. }
  30. //quitamos el else, pues si no hay imagen sigue el resto del procedimiento.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #8 (permalink)  
Antiguo 09/03/2010, 20:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No le entiendo esta condicion ?

eits creo que realizamos nuestros comentarios al mismo tiempo que te parece la nueva idea que tengo es la adecuada pero voy a hacer prueba de su sugerencia primero
Gracias
  #9 (permalink)  
Antiguo 10/03/2010, 10:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: No le entiendo esta condicion ?

Amigos no se en q puedo estar fallando hice los siguiente.
Código PHP:
        
if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==X)||($_SESSION['usuario_nivel']==X)){
             
$comentario trim($_POST['comentario']);
            
//$passwd = trim($_POST['passwd']);

            //subir imagen
            
            //datos del arhivo 
            
$nombre_archivo $HTTP_POST_FILES["userfile"]["name"]; 
            
$tipo_archivo $HTTP_POST_FILES["userfile"]["type"]; 
            
$tamano_archivo $HTTP_POST_FILES["userfile"]["size"]; 
     if(!empty(
$tipo_archivo)){        
            if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && (    $tamano_archivo 100000))){ 
                     echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de             100 Kb máximo.</td></tr></table>";
                    echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
            }else{ 
//no tiene fin
                     
$nom_img$nombre_archivo;
                     
$directorio 'modulos/jugadores/vistas/fotos/';
             
                            if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio "/" $nom_img)){ 
                                    if (empty(
$id)) {
                                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img)){
                                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                                echo 
"<center>Historial exitoso!. Espere unos instantes</center>";
                                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                                            } else {
                                                echo 
"El Historial no fue exitoso";
                                            }
                                      } else {
                                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img,$id)){
                                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                                echo 
"<center>Historial Guardado exitosamente!. Espere unos instantes</center>";
                                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                                            } else {
                                                echo 
"<center>El historial no fue exitosa</center>";
                                            }
                                    }
                           }else{
                                 echo 
"error al subir la foto";
                           } 
           }
    }       
} else {
       echo 
" <center> Usted no tiene permisos </center>";

La idea es que cuando un usuaio no tenga foto que igual le deje meter sus comentarios. Pero es aqui mi problema cuando hago esto inserto algun comentario pero sin una foto me sale el mensaje de echo "La extensión o el tamaño de los archivos no es correcta. lo que quiero es que tenga o no tenga su foto le deje actualizar su informacion ???
Las condiciones deberia cambiarlas ???
  #10 (permalink)  
Antiguo 10/03/2010, 11:00
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No le entiendo esta condicion ?

creo que no me terminas de comprender lo que quiero decirte, no entiendo del todo tu código, pero a ver si ahora queda
Código PHP:
Ver original
  1. if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==X)||($_SESSION['usuario_nivel']==X)){
  2.     $comentario = trim($_POST['comentario']);
  3.     //$passwd = trim($_POST['passwd']);
  4.     //datos del arhivo
  5.     $nombre_archivo = $HTTP_POST_FILES["userfile"]["name"];
  6.     $tipo_archivo = $HTTP_POST_FILES["userfile"]["type"];
  7.     $tamano_archivo = $HTTP_POST_FILES["userfile"]["size"];
  8.     if(!empty($tipo_archivo)){//si $tipo _archivo no esta vacio
  9.         //averiguo el tipo de imagen y el tamaño, si no son correctos
  10.         if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))){
  11.             //muesto un mensaje
  12.             echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
  13.             echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
  14.         }else{//de lo contrario
  15.             $nom_img= $nombre_archivo;
  16.             $directorio = 'modulos/jugadores/vistas/fotos/';
  17.             //y el resto del código para subir la imagen
  18.         }
  19.     }
  20.     //aqui lo demás del código para meter los demás datos a la base de datos
  21.     //si es que tienes
  22. }else{
  23.     echo " <center> Usted no tiene permisos </center>";
  24. }
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #11 (permalink)  
Antiguo 10/03/2010, 11:24
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: No le entiendo esta condicion ?

Gracias eits pero hice esto me funciona pero espero que sea lo correcto aunque desde el punto de vista del programador es un poco repetir codigo pero funciona espero tu opinion sobre como procedi a resolver el problema.
Código PHP:
 if(empty($tipo_archivo)){
                         if (empty(
$id)) {
                                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img)){
                                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                                echo 
"<center>Historial exitoso!. Espere unos instantes</center>";
                                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                                            } else {
                                                echo 
"El Historial no fue exitoso";
                                            }
                                      } else {
                                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img,$id)){
                                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                                echo 
"<center>Historial Guardado exitosamente!. Espere unos instantes</center>";
                                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                                            } else {
                                                echo 
"<center>El historial no fue exitosa</center>";
                                            }
                                    }           
     }else{ 
Bien pregunto si no tiene foto que inserte todo y la foto este nula o 0

ahora si tiene foto recien hago todo lo anterior:
Código PHP:
 }else{
             
                    if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && (    $tamano_archivo 100000))){ 
                        echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de             100 Kb máximo.</td></tr></table>";
                        echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
            
              
            
                    }else{ 
//no tiene fin
                             
$nom_img$nombre_archivo;
                             
$directorio 'modulos/jugadores/vistas/fotos/';
             
                            if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio "/" $nom_img)){ 
                                    if (empty(
$id)) {
                                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img)){
                                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                                echo 
"<center>Historial exitoso!. Espere unos instantes</center>";
                                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                                            } else {
                                                echo 
"El Historial no fue exitoso";
                                            }
                                      } else {
                                            if (
$MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img,$id)){
                                                echo 
"<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
                                                echo 
"<center>Historial Guardado exitosamente!. Espere unos instantes</center>";
                                                echo 
"<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
                                            } else {
                                                echo 
"<center>El historial no fue exitosa</center>";
                                            }
                                    }
                           }else{
                                 echo 
"error al subir la foto";
                           } 
                    }
     } 
Como te decia repito codigo en dos partes de mi case se que no es la solucion ideal desde el punto del programador pero funciona
QUE opinas ? al respecto eits gracias por tu tiempo ha sido de gran ayuda
  #12 (permalink)  
Antiguo 10/03/2010, 11:49
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: No le entiendo esta condicion ?

si ahora lo entendi bien, esto te debe de funcionar correctamente
Código PHP:
Ver original
  1. if(!empty($tipo_archivo)){//si la variable no esta vacia checamos la imagen
  2.     if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && (    $tamano_archivo < 100000))){
  3.         echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de             100 Kb máximo.</td></tr></table>";
  4.         echo '<meta http-equiv= "refresh " content="3;URL=index.php?mod=jugadores&pag=listado">'."\n";
  5.     }else{
  6.         $nom_img= $nombre_archivo;
  7.         $directorio = 'modulos/jugadores/vistas/fotos/';
  8.         //si no se pudo subir la imagen mandamos error
  9.         if (!move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio . "/" . $nom_img)){
  10.             echo "error al subir la foto";
  11.         }
  12. }
  13. //haya o no imagen esto lo tiene que hacer
  14. if ($MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img) || $MOD['jugadores']->setHistorial($comentario,$passwd,$nom_img,$id){
  15.     echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  16.     echo "<center>Historial exitoso!. Espere unos instantes</center>";
  17.     echo '<meta http-equiv= "refresh " content="3;URL=index.php?mod=jugadores&pag=listado">'."\n";
  18. } else {
  19.     echo "El Historial no fue exitoso";
  20. }
solo unos pequeños cambios(broma )

espero que te funcione saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: Ninguno
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 03:18.