Foros del Web » Programando para Internet » PHP »

Problema con envio de datos (algo raro)

Estas en el tema de Problema con envio de datos (algo raro) en el foro de PHP en Foros del Web. He echo este codigo que quiero utilizar para poder subir imagenes al server, y que me añada todos los datos del formulario a la base ...
  #1 (permalink)  
Antiguo 17/10/2005, 11:17
 
Fecha de Ingreso: marzo-2005
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Información Problema con envio de datos (algo raro)

He echo este codigo que quiero utilizar para poder subir imagenes al server, y que me añada todos los datos del formulario a la base de datos y que tambien me genere un thumbnail, pero lo que pasa es que una vez rellenas el formulario y das a enviar y te sale la pagina que los procesa hace como que los envia pero solo envia los datos a la base de datos, las imagenes no las hace nada y hay que dar a actualizar para que los añada (todo esto en localhost) cuando lo hago en el servidor lo que pasa es que me sube la imagen pero no me gener el thumbnail, ... es muy raro debe de ser algun problema de orden o algo asi, haber si me pueden ayudar aqui les paso el codigo:
-En local me funciona de una manera y en el server de otra ...



Código PHP:

<?
include ('mostrar.php');
include (
'user_auth_fns.php');
require_once (
'conexion.php'); 


session_start();


function 
filled_out($form_vars)
{
  
// comprueba que cada variable tiene un valor
  
foreach ($form_vars as $key => $value)
  {
     if (!isset(
$key) || ($value == ""))
        return 
false;
  }
  return 
true;
}

do_html_header("Añadir un libro");
if (
check_admin_user())
{
  if (
filled_out($HTTP_POST_VARS))
  {
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo 
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>La imagen se ha subido con exito!<br> Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo Archivo: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Tamaño: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                           
        } 
    } 



  
$imagenio=$HTTP_POST_FILES['fichero']['name'];
   
$query "insert into muebles values
            ('null', '$title', '$description', '$price', '$estado', '$alto', '$ancho', '$fondo', '$cantidad', '$catid','null','$imagenio')"
;
   
$result mysql_query($query);
   
   require_once (
'imagen.php'); 
   
thumbjpeg($imagenio100);
   
   
   if (!
$result)
     echo 
"El $title no ha podido ser insertado a la base de datos<br>" ;
   else
     echo 
"El $title  ha sido insertado en la base de datos<br>" ;
  }
  else
    echo 
"No has cubierto el formulario.  Prueba de nuevo por favor.";
  
do_html_url("admin.php""Volver al menú de administración");
}
else
  echo 
"No estás autorizado a ver esta página.";

do_html_footer();

?>
  #2 (permalink)  
Antiguo 17/10/2005, 14:16
 
Fecha de Ingreso: marzo-2005
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Por favor es muy importante, si necesitan ver algun archivo o algo mas pidanmelo,gracias
  #3 (permalink)  
Antiguo 17/10/2005, 14:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si dices que tienes problemas con la generación del thumbnail .. pon el código que genera esa imagen .. ¿supongo que esa función "thumbjpeg()"?, por qué no vemos si generas un archivo con esa imagen o como la trabajas ..

Un saludo,
  #4 (permalink)  
Antiguo 17/10/2005, 15:25
Avatar de TortugaChat  
Fecha de Ingreso: julio-2004
Ubicación: Coatzacoalcos, Veracruz, México.
Mensajes: 150
Antigüedad: 13 años, 4 meses
Puntos: 0
Que raro, tu problema se parece mucho al que yo tengo.

Puedes checarlo aquí,

http://www.forosdelweb.com/f18/imagenes-cargadas-con-formulario-generado-php-no-ven-342338/


Si yo sé de la solución al mio te comento, a ver si te sirve.


Saludos.
  #5 (permalink)  
Antiguo 17/10/2005, 16:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Gracias, aqui les paso la función pero yo creo que el problema no se encuentra hay se encuentra en la estructura del codigo pero es que es muy raro, bueno a ver si lo solucionamos.

Código PHP:
<?

function thumbjpeg($imagen,$altura) { 
     
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande". 
     
$dir_thumb "thumbs/"
     
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg", 
     // el thumbnail se llamaría "tn_imagen1.jpg" 
     
$prefijo_thumb "tn_"

     
// Aquí tendremos el nombre de la imagen. 
     
$nombre=basename($imagen); 
     
// Aquí la ruta especificada para buscar la imagen. 
     
$camino=dirname($imagen)."/"

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente. 
     
if (!file_exists($camino.$dir_thumb)) 
          @
mkdir ($camino.$dir_thumb0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb); 

     
// Aquí comprovamos que la imagen que queremos crear no exista previamente 
     
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) { 
          echo 
$camino.$dir_thumb.$prefijo_thumb.$nombre." No existía<br>\n"
          
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n"); 

          
// miramos el tamaño de la imagen original... 
          
$datos getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n"); 

          
// intentamos escalar la imagen original a la medida que nos interesa 
          
$ratio = ($datos[1] / $altura); 
          
$anchura round($datos[0] / $ratio); 

          
// esta será la nueva imagen reescalada 
          
$thumb imagecreatetruecolor($anchura,$altura); 

          
// con esta función la reescalamos 
          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]); 

          
// voilà la salvamos con el nombre y en el lugar que nos interesa. 
          
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre); 
     } 


 
?>
  #6 (permalink)  
Antiguo 18/10/2005, 06:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
luisetto

En tu función usas un montón de @ delante de funciones .. eso de por sí oculta el posible mensaje de error que puedas obtener. Si tienes problemas y no ves un mensaje de error, comienza quitando esos @ delante de las funciones y observa si obtienes algún mensaje de error.

Un saludo,
  #7 (permalink)  
Antiguo 18/10/2005, 07:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Pues lo que parece es que el problema se encuentra en la siguiente linia:

$img = imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");

-En localUnas veces por que no encuentra la imagen (y al dar a actualizar ya la encuentra) pero se me añaden dos a la base de datos.

-Y en el server parece que no encuentra esa funcion "Call to undefined function: imagecreatefromjpeg()"


Gracias Cluster
  #8 (permalink)  
Antiguo 18/10/2005, 07:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Y en el server parece que no encuentra esa funcion "Call to undefined function: imagecreatefromjpeg()"
Esto es por qué no tienes instalado las librerías GD (www.php.net/gd) en tu servidor.

Revisa haciendo un phpinfo() si ves algún módulo de información sobre GD .. si no lo ves es que definitivamente no tienes instalado las librerías GD en tu servidor y tendrás que instalarlas si deseas usar esa funcionalidad de tu código.

Un saludo,
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 16:41.