Foros del Web » Programando para Internet » PHP »

PHP OO imagenes en base de datos

Estas en el tema de imagenes en base de datos en el foro de PHP en Foros del Web. Alguien que me ayude es urgente aca tengo el archivo sube.php donde subira la imagen que selecciono @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?   ...
  #1 (permalink)  
Antiguo 25/11/2011, 01:22
 
Fecha de Ingreso: agosto-2011
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 13 años, 3 meses
Puntos: 1
imagenes en base de datos

Alguien que me ayude es urgente
aca tengo el archivo sube.php
donde subira la imagen que selecciono

Código PHP:
Ver original
  1. <?  
  2. if($_POST){
  3. // Creamos la cadena aletoria
  4. $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
  5. $cad = "";
  6. for($i=0;$i<12;$i++) {
  7. $cad .= substr($str,rand(0,62),1);
  8. }
  9. // Fin de la creacion de la cadena aletoria
  10. $tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
  11. $tamaño_max="50000000000"; // Tamaño maximo permitido
  12. if( $tamano < $tamaño_max){ // Comprovamos el tamaño  
  13. $destino = 'images' ; // Carpeta donde se guardata
  14. $sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
  15. $tipo=$sep[1]; // Optenemos el tipo de imagen que es
  16. if($tipo == "gif" || $tipo == "png" || $tipo == "bmp"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
  17. move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo);  // Subimos el archivo
  18. include('post.php'); // Incluimos la plantilla
  19. }
  20. else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
  21. }
  22. else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
  23. }
  24. ?>

y aca el post.php
Código PHP:
Ver original
  1. La imagen fue enviada con exito.<br><strong>Datos:</strong><br>
  2. <ul>
  3.   <li>Tipo <?=$tipo?></li>
  4.   <li>Ubicasion http://paginaweb/<?=$destino . '/' .$cad.'.'.$tipo?></li>
  5. </ul><br>
  6. <strong>Codigo HTML:</strong><br>
  7. <textarea name="html" id="html"><img src="http://paginaweb/<?=$destino.'/'.$cad.'.'.$tipo?>"><br>Por ThirdLife</textarea><br>
  8. <img src="http://paginaweb/esp/<?=$destino.'/'.$cad.'.'.$tipo?>">
  9. <?php
  10. $c = mysql_connect('host', 'usuario', 'pass');
  11. $url = "http://paginaweb/esp/'".$destino."''/''".$cad."''.''".$tipo."'";
  12. $sql = "UPDATE usuarios SET imagen='".$url."' WHERE username='".$_SESSION['s_username']."'";
  13. ?>

si sube la imagen al servidor pero no le da un registro a la base de datos
tengo un campo que se llama imagen en usuario
imagen varchar(180) utf8_general_ci NULL
pero cuando le doy la query de UPDATE no me lo cambia porque?

Última edición por SantosMc03; 25/11/2011 a las 01:33 Razón: direccion
  #2 (permalink)  
Antiguo 25/11/2011, 01:37
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 3 meses
Puntos: 37
Respuesta: imagenes en base de datos

Hola, no se si lo has hecho ya, pues el Codigo.php que posteaste parece que no está completo, pero recuerda que tienes que hacer session_start() al principio del Codigo.php para poder usar las variables de sesión. Por lo que veo usas una variable de sesion en el filtrado del UPDATE. Si no has hecho antes un session_start() estás filtrando por un valor nulo, pues no tienes acceso a las variables de sesión. Espero que te ayude esto.
  #3 (permalink)  
Antiguo 25/11/2011, 01:46
 
Fecha de Ingreso: agosto-2011
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: imagenes en base de datos

lo intente pero no funciono ponerle el session_start();
  #4 (permalink)  
Antiguo 25/11/2011, 01:55
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 3 meses
Puntos: 37
Respuesta: imagenes en base de datos

Te muestra algún mensaje de error o simplemente no actualiza? Fíjate si pusiste el session_start() al principio de documento. Es importante que la sesión se inicia antes de que se produzca la primera salida HTML de la página. Por otra parte si intentas iniciar sesión y ya estaba iniciada te va a dar error.
  #5 (permalink)  
Antiguo 25/11/2011, 01:57
 
Fecha de Ingreso: agosto-2011
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: imagenes en base de datos

mira aplice un
Código PHP:
Ver original
  1. <? echo $_SESSION[s_username];?>
y si me muestra el usuario con el que inicie sesion osea que ese no es el problema
  #6 (permalink)  
Antiguo 25/11/2011, 02:07
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 3 meses
Puntos: 37
Respuesta: imagenes en base de datos

Espera amigo. Tu pones la sql del UPDATE en una variable llamada $sql, pero después no la ejecutas. O sea, después de eso tienes que poner mysql_query($sql); para que se ejecute la sql.
  #7 (permalink)  
Antiguo 25/11/2011, 02:09
 
Fecha de Ingreso: agosto-2011
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: imagenes en base de datos

ya lo puse pero no me actualiza imagen, se queda en NULL
  #8 (permalink)  
Antiguo 25/11/2011, 02:18
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 3 meses
Puntos: 37
Respuesta: imagenes en base de datos

Mira haz una prueba. Si tienes Algún programa para manejar tu BD de mysql prueba lo siguiente:

Haces echo $sql; para mostrar en el navegador la consulta del UPSATE sql ya construida. La copias y la pegas en tu gestor de BD y la mandas a ejecutar. Si la sql tinen un problema el debuger del gestor de BD te lo va a señalar detalladamente, sino la va a ejecutar sin problema. En base a esa prueba ya puedes identificar mejor de donde viene el error.

Etiquetas: image, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:40.