Foros del Web » Programando para Internet » PHP »

Problema subir foto

Estas en el tema de Problema subir foto en el foro de PHP en Foros del Web. Hola compañeros, tengo una página en php y mi problema es que al subir una foto o imagen se sobreescribe la imagen de otros registros ...
  #1 (permalink)  
Antiguo 01/09/2012, 10:56
 
Fecha de Ingreso: diciembre-2011
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Problema subir foto

Hola compañeros, tengo una página en php y mi problema es que al subir una foto o imagen se sobreescribe la imagen de otros registros que ya tenían su propia foto. Os dejo el enlace de la parte donde pasa.

http://euroamericanacademy.com/cursos.php

Y aquí el codigo:

Código PHP:
<?php
session_start
();
if(
$_SESSION["acceso"]==true)
{

include(
"../../resize/resize-class.php");
require(
"../../resize/class.imageconverter.php");
include(
"../../com/conectarse.php");
$link=Conectarse();

$empresa=$_SESSION['empresa'];

if(
$_POST["opcion"]=="Guardar")
{
    
    

    
/* nuestros cursos */ 
    
        
        
mysql_query("insert into titulos values(NULL,'".$_POST["titulo"]."')");
        
        
        
mysql_query("insert into contenidos values(NULL,'".$_POST["contenido"]."')");
        
        
        if (
$_FILES['imagenes']['name'][0]<>'')
        {


                
$directorio '../../../foto_admin/';



                foreach (
$_FILES['imagenes']['error'] as $key => $error) {


                   if (
$error == UPLOAD_ERR_OK) {
                            
$cont_=$cont_+1;
                            
$fichero strtolower($_FILES["imagenes"]["name"][$key]) ;  

                            
$extension split("[/\\.]"$fichero);

                            
$extension_2 split("/"$_FILES["imagenes"]["type"][0]) ;  


                            
$n count($extension)-1;  
                            
$extension $extension[$n];  
                            
$name_2=date("dmY_His_").$cont_.".jpg";

                            
$name_=date("dmY_His_").$cont_.".".$extension;


                            echo 
"$error_codes[$error]";

                            echo 
$_FILES["imagenes"]["tmp_name"][$key];
                            
move_uploaded_file($_FILES["imagenes"]["tmp_name"][$key],$directorio.$name_) or die("Ocurrio un problema al intentar subir el archivo.");

                            if (
strtolower($extension_2[1])=='png' || strtolower($extension_2[1])=='x-png' || strtolower($extension_2[1])=='gif'
                            {
                                
$img = new ImageConverter($directorio.$name_,"jpg",$directorio);
                                
unlink($directorio.$name_);
                            }    
                            
mysql_query("insert into galeria values(NULL,'".$name_2."')");

                            
//echo "UPDATE galeria SET foto='".$name_2."' WHERE id='".$row["img"]."'";


                   
}
                }
            }

        
        
        
/*mysql_query("INSERT INTO titulos VALUES (NULL,'lorem ipsu')");
        mysql_query("INSERT INTO contenidos VALUES (NULL,'lorem ipsu')");
        mysql_query("INSERT INTO galeria VALUES (NULL,'lorem ipsu')");*/
        
            
$SQL mysql_query("SELECT max(id) as contenido FROM contenidos",$link);
                 
            
$row mysql_fetch_array($SQL);
            
$maxcontenido=$row['contenido'];
            
            
$SQL mysql_query("SELECT max(id) as galeria FROM galeria",$link);
                 
            
$row mysql_fetch_array($SQL);

            
$maxgaleria=$row['galeria'];
            
            
$SQL mysql_query("SELECT max(id) as titulos FROM titulos",$link);
                 
            
$row mysql_fetch_array($SQL);

            
$maxtitulos=$row['titulos'];
            
            
                
$SQL mysql_query("SELECT a.id as usuario from usuario a inner join empresas b on a.empresa=b.id WHERE a.empresa=$empresa",$link);
                  
$row mysql_fetch_array($SQL);
            
$usuario=$row['usuario'];
            
            
mysql_query("INSERT INTO contenido_secciones VALUES (NULL,'$maxtitulos','130','$maxcontenido','$maxgaleria','$usuario',0)");
        

    
    
}


if(
$_POST["opcion"]=="Editar")
{
    
$id=$_POST['id'];
        
$SQL mysql_query("SELECT a.seccion as seccion,a.titulo as titulo,c.web as web,d.nombre as contenido,d.id as id_cont,e.nombre as sec,a.galeria as imagen FROM contenido_secciones a inner join usuario b on a.usuario=b.id inner join empresas c on b.empresa=c.id inner join contenidos d on a.contenido=d.id inner join secciones e on a.seccion=e.id inner join titulos f on a.titulo=f.id WHERE e.nombre='nuestros cursos' and b.empresa=$empresa and a.id=$id",$link);
          
$row mysql_fetch_array($SQL);


    
mysql_query("UPDATE contenidos SET 
    nombre='"
.$_POST["contenido"]."'
    WHERE id='"
.$row['id_cont']."'");
    
    
mysql_query("UPDATE titulos SET 
    nombre='"
.$_POST["titulo"]."'
    WHERE id='"
.$row['titulo']."'");
    
    


    if (
$_FILES['imagenes']['name'][0]<>'')
    {

    
            
$directorio '../../../foto_admin/';
            
            

            foreach (
$_FILES['imagenes']['error'] as $key => $error) {
                
            
               if (
$error == UPLOAD_ERR_OK) {
                        
$cont_=$cont_+1;
                        
$fichero strtolower($_FILES["imagenes"]["name"][$key]) ;  
                        
                        
$extension split("[/\\.]"$fichero);
                        
                        
$extension_2 split("/"$_FILES["imagenes"]["type"][0]) ;  
                        
                        
                        
$n count($extension)-1;  
                        
$extension $extension[$n];  
                        
$name_2=date("dmY_His_").$cont_.".jpg";
                    
                        
$name_=date("dmY_His_").$cont_.".".$extension;
                        
                        
                        echo 
"$error_codes[$error]";
                        
                        echo 
$_FILES["imagenes"]["tmp_name"][$key];
                        
move_uploaded_file($_FILES["imagenes"]["tmp_name"][$key],$directorio.$name_) or die("Ocurrio un problema al intentar subir el archivo.");
                   
                        if (
strtolower($extension_2[1])=='png' || strtolower($extension_2[1])=='x-png' || strtolower($extension_2[1])=='gif'
                        {
                            
$img = new ImageConverter($directorio.$name_,"jpg",$directorio);
                            
unlink($directorio.$name_);
                        }    
                        
mysql_query("UPDATE galeria SET foto='".$name_2."' WHERE id='".$row["imagen"]."'");
                        
                        
                        
                    
               }
            }
        }    
    
    
    
    
    
}

if(
$_GET["opcion"]=="Eliminar")
{
    
    
$id=$_GET['id'];
    echo 
$id;
        
$SQL mysql_query("SELECT * FROM contenido_secciones a  WHERE id=$id",$link);
          
$row mysql_fetch_array($SQL);
    
    
$contenido=$row['contenido'];
    
$galeria=$row['galeria'];
    
$titulo=$row['titulo'];
    
    
$SQL mysql_query("delete from contenido_secciones  WHERE id=$id",$link);
      
$row mysql_fetch_array($SQL);

    
$SQL mysql_query("delete from contenidos WHERE id=$contenido",$link);
      
$row mysql_fetch_array($SQL);

    
$SQL mysql_query("delete from titulos  WHERE id=$titulo",$link);
      
$row mysql_fetch_array($SQL);

    
$SQL mysql_query("select * from galeria id=$galeria",$link);
      
$row mysql_fetch_array($SQL);
    
$name_=$row['foto'];
    
$directorio '../../../foto_admin/';
    
unlink($directorio.$name_);
    
$SQL mysql_query("delete from galeria  WHERE id=$galeria",$link);
      
$row mysql_fetch_array($SQL);
    
    
}


mysql_close($link);
echo 
"<meta http-equiv='refresh' content='0;URL=nuestros cursos.php'>";
}
else
{
echo 
"<meta http-equiv='refresh' content='0;URL=index.php'>";
}
?>


Ese es el código donde subo las fotos. Si alguien puede decirme si ve algún error.
  #2 (permalink)  
Antiguo 01/09/2012, 11:18
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema subir foto

En las sentencias de la base datos por ejemplo:
Código PHP:
Ver original
  1. mysql_query("insert into galeria values(NULL,'".$name_2."')");
Te falta añadir el al final el parámetro WHERE que es para quien se cambiaría la imagen
por ejemplo:
Código PHP:
Ver original
  1. mysql_query("insert into titulos values(NULL,'".$_POST["titulo"]."') WHERE usuario='".$usuario."' ");
  2.        .........      
  3. mysql_query("insert into contenidos values(NULL,'".$_POST["contenido"]."') WHERE usuario='".$usuario."' ");
  4.      ...........
  5. mysql_query("insert into galeria values(NULL,'".$name_2."') WHERE usuario='".$usuario."' ");

Quien dice usuario, dice ID, es solo algo para que reconozca a quien este logueado en ese momento y quiera cambiar solo su foto. ¿Entiendes?
  #3 (permalink)  
Antiguo 01/09/2012, 11:39
 
Fecha de Ingreso: diciembre-2011
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema subir foto

Sí, voy a probar y comento el resultado.
  #4 (permalink)  
Antiguo 01/09/2012, 12:10
 
Fecha de Ingreso: diciembre-2011
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema subir foto

Sigo con el mismo problema y en la base de datos no me sube un registro nuevo sino que se sobreescribe uno antiguo.
  #5 (permalink)  
Antiguo 01/09/2012, 15:42
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema subir foto

Entonces lo que quieres es insertar filas por cada imagen nueva no? Entendí sobrescribir solo una imagen...
  #6 (permalink)  
Antiguo 01/09/2012, 15:52
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema subir foto

De ser así, seria algo así...
Código PHP:
Ver original
  1. $titulo = utf8_decode($_POST['titulo']);
  2. $contenido = utf8_decode($_POST['contenido']);
  3. $identificador = AQUÍ VA EL CÓDIGO QUE TE IDENTIFIQUE QUIEN SUBE, USUARIO O ID;
  4. mysql_query("insert into NOMBRETABLA (titulo,contenido,identificador) values ('{$titulo}','{$contenido}','{$usuario}'')"

Claro que lo tienes que adaptar a las columnas de tu tabla y sustituir NOMBRETABLA por el nombre de tu tabla.

Etiquetas: duplicada, foto, bases-de-datos
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 10:19.