Foros del Web » Programando para Internet » PHP »

Dirección de imagen dentro de la base de datos para los usuarios

Estas en el tema de Dirección de imagen dentro de la base de datos para los usuarios en el foro de PHP en Foros del Web. Hola amigos ya casi termino el aporte pero me a surgido algunos problemas yo que creía que con todo lo que eh aprendido podía resolver ...
  #1 (permalink)  
Antiguo 02/04/2016, 23:56
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 3 meses
Puntos: 4
Dirección de imagen dentro de la base de datos para los usuarios

Hola amigos ya casi termino el aporte pero me a surgido algunos problemas yo que creía que con todo lo que eh aprendido podía resolver esto pero pensé hasta donde me llevo la lógica trata de esto.

Tengo un formulario donde el usuario se registra. La foto que el usuario visualiza esta grabada en una carpeta llamada imagenes la ubicación de la imagen es sugerida en el formulario donde se registra. para que tenga un idea de lo que pasa.

Código PHP:
Ver original
  1. mysql_query("INSERT INTO usuarios VALUES ('','$ip',[B]'imagenes/people.jpg'[/B],'$fecha_hora','$nick','$pass','$email')");
lo que pasa en este insert es que introduce una dirección

bueno ya el usuario se le visualiza una foto por default se llama people.jpg en la carpeta imagenes
cuando ingresa en la pagina de usuario hay unas variables de session que le dan el valor a su nombre la foto que la esta buscando en imagenes/people.jpg bueno todo bien desde ahí.
aunque tenia un problema que la imagen no me aparecia por que segun veo dentro del php las direcciones se leen según a partir donde esten si la web esta dentro de una carpeta que se llama inicio el buscara la dirección partiendo des esa carpeta si no ve dentro una carpeta que se llama imágenes no la imprimirá para resolver este hice la carpeta dentro de todo los directorio donde pedía la foto si el archivo visualizar imagen esta dentro de una carpeta que se llama sesión pues dentro le puse la carpeta con imagen, bueno... un poco tosco pero trabajo con lo que se. Luego cuando cambio la foto en editar con este codigo

Código PHP:
Ver original
  1. session_start(); // inicia la sesion
  2.  
  3. if (isset($_SESSION['email']))  // pregunta si existe la sesion si es true ejecuta lo primero
  4. {
  5.     echo "sexion exitosa <br>";
  6.     echo "<a href='cerrar_sesion.php'>Cerrar sesion </a><br>";
  7.     echo "<a href='../../funciones/editar_user/index.php'>Editar usuario </a><br>";
  8. }
  9.  
  10. else  // si el if no es cierto
  11. {
  12.     header("location: ../../index.php" );
  13. }
  14. ?>
  15. <?php
  16. $conexion = mysql_connect('localhost', 'root', '') or die("erro de conexion de base de datos");
  17. $db= mysql_select_db('roomvs',$conexion)  or die("no existe la base de datos");
  18. // codico para subir la iamgen //
  19. $rutaEnServidor = 'imagenes'; //nombre de la carpeta
  20. $rutaTemporal = $_FILES['imagen']['tmp_name'];
  21. $nombreImagen = $_FILES['imagen']['name'];
  22. $rutaDestino = $rutaEnServidor.'/'.$nombreImagen; // esto '/' pone un slash
  23. move_uploaded_file($rutaTemporal, $rutaDestino);
  24.  
  25. //mysqli_query($conexion, "UPDATE registro set  pass='$pass' where nick='$nick' ") or die ("error al actualizar");
  26. $email = $_SESSION['email'];
  27. $cambio = " UPDATE usuarios set img='$rutaDestino' where email='$email' ";
  28. $res = mysql_query($cambio,$conexion);
  29. if ($res)
  30. {
  31.     echo 'inserto con exito <font color="blue">'.$_SESSION["nick"].'!</font></b><br> ' ;
  32. }
  33. else
  34. {
  35.     echo 'no se pudo insertar los datos ';
  36. }
  37. ?>

la información se introduce en la base de datos y en el usuario que quiero pero cuando le doy hacia atras la foto no se carga con la nueva información que esta en la base de datos tengo que cerrar sesion del usuario para que se visualice y tampoco se ve la imagen hasta que entre a editar esto pasa por que la foto nueva no se sube en la carpeta del el directorio donde esta la imagen subida ya que mi codigo solo sube la imagen a una carpeta que esta dentro del mismo código donde esta la web con el código. Osea se graba en funciones/editar_user/index.php y la web del inicio es otro directorio pero visualiza la de default por que la carpeta la tengo en la dos directorio pero esto no lo puedo hacer con mi código que se grabe en dos directorio a la vez. como se hace esto de la imagen yo soy novato lo hice con lo que tenia a mano.

gracias por todo amigos este pos es un poco largo espero haberme explicado bien
  #2 (permalink)  
Antiguo 03/04/2016, 00:11
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Dirección de imagen dentro de la base de datos para los usuarios

suponiendo que sea la ruta donde las guarda

dominio.com/funciones/editar_user/index.php

debes editar $rutaEnServidor

Código PHP:
Ver original
  1. $rutaEnServidor = '../../imagenes'; //nombre de la carpeta

de esta manera las guardará en dominio.com/imagenes, recuerda que imagenes debe tener permisos de escritura si estas en servidor online linux
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 03/04/2016, 00:13
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Dirección de imagen dentro de la base de datos para los usuarios

ok ok ok y porque no simplemente haces esto:

tu indicas que el archivo esta en esta ruta: funciones/editar_user/index.php eso quiere decir:

directorio 1: funciones
directorio 2: editar_user
archivo: index.php

si quieres que la imagen se guarde en funciones por ejemplo:

Código PHP:
Ver original
  1. //Esto partiendo de donde esta el archivo index.php
  2. $rutaEnServidor = '../../imagenes'; //nombre de la carpeta
y listo

ahora lo de que la tienes en 2 directorios y toda esa logica ilogica no se, creo que te estas enredando tanto la vida que ni te cuento, con una sola carpeta de imagenes bastaba y en ella colocabas los directorios que necesites por ejemplo

images
|-users
|-icons
|-banners
|-etc...

NOTA: llego tarde el comentario jejeje
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 03/04/2016, 13:44
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 3 meses
Puntos: 4
Respuesta: Dirección de imagen dentro de la base de datos para los usuarios

petit89 gracias resolvi con tu ayuda. xfxstudios también gracias por tu comentario
Lo unico que tengo un otro problema que la imagen no se actualiza al momento, tengo que cerrar sesion y luego entrar para ver los cambios. Me gustaría que se actualize al momento de hacer el cambio.
Se que se queda grabada en al base de datos al hacer el cambio pero no cambia la imagen al instante me imagino que es por que cuando graba la variables de sesion en la memoria no cambia jamas, deve de aver una forma en la cual se reinicie las variables sin salir de ella.
alguien sabe ?
  #5 (permalink)  
Antiguo 03/04/2016, 13:56
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Dirección de imagen dentro de la base de datos para los usuarios

destruyendo la sesión y volviendo a crearla, o únicamente sobreescribirla. Y aunque te moleste, aquí está el manual: unset

Código PHP:
Ver original
  1. unset($_SESSION['cualquiera']);
  2. $nuevaruta = "etc/etc/etc/imagen.jpg";
  3. $_SESSION['cualquiera'] = $nuevaruta;

¿Por qué la guardas en una sesión? no es mejor mandar a llamar a la ruta directamente de la bd?
  #6 (permalink)  
Antiguo 03/04/2016, 19:50
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 3 meses
Puntos: 4
Respuesta: Dirección de imagen dentro de la base de datos para los usuarios

Mucha gracias rodocoyote15 esto fue lo que hice con el unset. lo que pasa es que desconozco de las funciones predefinida de PHP voy aprendiendo según tenga el problema y gracias a su ayuda por supuesto. voy a leer esto que es algo que puedo entender link


Código PHP:
Ver original
  1. include("../../conexion/conexionmsqli.php");
  2. $proceso = mysqli_query($conexion, "SELECT * FROM usuarios WHERE email='".$email."' ");
  3. if($resultado = mysqli_fetch_array($proceso))
  4.     {
  5.         $_SESSION['img'] = $resultado["img"];
  6.     }
  7.     else {echo "problema extrayento datos" ;}

Gracias a ti me decidi descubri que existe las funciones predifinida. una función predefinida que se llama rename() esto lo quería para implementar para cambiar los nombre de la las imágenes para que no se repitan pero buscando descubri que tambien se puede mezclar las variables con la funciones y nada lo resolvi con esto

Código PHP:
Ver original
  1. // codico para subir la iamgen //
  2. $rutaEnServidor = '../../imagenes'; //nombre de la carpeta
  3. $rutaTemporal = $_FILES['imagen']['tmp_name'];
  4. $nombreImagen = $_FILES['imagen']['name'];
  5. //renombrando el nombre de la iamgen para no causar confligto
  6. $renameip = $_SESSION['email'].$nombreImagen;
  7. $rutaDestino = $rutaEnServidor.'/'.$renameip; // esto '/' pone un slash
  8. move_uploaded_file($rutaTemporal, $rutaDestino);

le estoy tomando mucho amor a esto de programar quiero probar ademas de compartir esto que estoy haciendo lo del usuario completo y que em niego a programar en POO y PDO me encuentro qeu hay que escribir mucho mas y eso hace mas lento la carga yo soy muy novato no se pero gracias a todos por comentar se lo agradesco mucho.
  #7 (permalink)  
Antiguo 03/04/2016, 19:52
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 3 meses
Puntos: 4
Respuesta: Dirección de imagen dentro de la base de datos para los usuarios

Cita:
Iniciado por rodocoyote15 Ver Mensaje

¿Por qué la guardas en una sesión? no es mejor mandar a llamar a la ruta directamente de la bd?
estoy trabajando con las sesiones por que trabajo con un usuario específicos que se diferencia uno de otros y el email y el ip es algo que solo un usuario posea diferente a otro

Etiquetas: fecha, formulario, mysql, registro, select, usuarios, 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 16:45.