Foros del Web » Programando para Internet » PHP »

Codigo php en imagen (ayudaa)

Estas en el tema de Codigo php en imagen (ayudaa) en el foro de PHP en Foros del Web. Hola a todos, quiero hacer lo siguiente con el codigo a continuacion: Cita: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <? $id = ' . $_SESSION[' ...
  #1 (permalink)  
Antiguo 07/05/2011, 10:22
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 12 años, 11 meses
Puntos: 0
Codigo php en imagen (ayudaa)

Hola a todos, quiero hacer lo siguiente con el codigo a continuacion:

Cita:
Código PHP:
Ver original
  1. <?
  2. $id = ' . $_SESSION['nick'] . ';
  3. $idfoto = mysql_query("SELECT * From tabla WHERE tabla.idfoto = '$id'",$conectar);  
  4. ?>
  5.  
  6. <h1><img alt="Esta es tu foto de perfil." src="imagen_mostrar.php?idfoto=<? if($idfoto != $_SESSION['id']) { echo 1; } else { if($idfoto == $_SESSION['id']) { echo '' . $_SESSION['id'] . ''; } } ?>&tam=<? echo '' . $_SESSION['nick'] . ''; ?>" alt="Imagen desde Blob" border="2" height="300" width="200" />

Tengo un usuario, ese usuario cuando se registra no tiene imagen obviamente, y quiero hacer que le aparesca una imagen que diga "no tiene imagen", a la imagen la tengo guardada en la base da datos llamada "TABLA" con los siguiente estructura:

Imagen "sinfoto":

Idfoto, nombre, foto, thumb, mime.
1, sinfoto, [BLOB - 10.6 KB], [BLOB - 1.7 KB], imagen/jpeg


y luego tengo la imagen que luego el usuario agrega para su foto de perfil, que vendria a ser esto:

Imagen del usuario (ya con foto):

Idfoto, nombre, foto, thumb, mime.
2, Helmfrid, [BLOB - 20.1 KB], [BLOB - 3.1 KB], imagen/jpeg



Esas dos imagenes las tengo agregadas como prueba del codigo.

Luego esta la estructura de la tabla "usuario":

Id, nick, etc..
2,Helmfrid,...



Ahora si, cuando quiero probar me salta siempre la imagen "Sinfoto" que tendria que saltar cuando no tendria una foto agregada, pero en este caso tengo una foto agregada, y cuando le digo al codigo que si "$idfoto != $_SESSION['id']" que me de como resultado "idfoto=1" pero de lo contrario si "$idfoto == $_SESSION['id']" me de como resultado "idfoto="la id del usuario que es 2"" pero no lo hace, me sigue dando como resultado la misma imagen "sinfoto"


Con este codigo:

Cita:
<img alt="Esta es tu foto de perfil." src="imagen_mostrar.php?idfoto=<? echo '' . $_SESSION['id'] . ''; ?>&tam=<? echo '' . $_SESSION['nick'] . ''; ?>" alt="Imagen desde Blob" border="2" height="300" width="200" />
el resultado que me da es el de la imagen del usuario que agrega, la id de la imagen es la misma que la id del usuario al igual que el nick con el nombre de la foto pero toma la informacion cuando esta conectado por eso $_SESSION['id'] pero yo quiero que la tome cuando no esta conectado y que cuando no tenga imagen aparesca la imagen que no tiene foto

Espero que me hallan entendido cualquier cosa avisen y trato de explicarlo mejor, espero su ayuda!!
  #2 (permalink)  
Antiguo 07/05/2011, 10:56
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Codigo php en imagen (ayudaa)

Amigo te ahogas en un vaso de agua....
tu problema debe estar en
src="imagen_mostrar.php?idfoto=<? echo '' . $_SESSION['id'] . ''; ?>&tam=<? echo '' . $_SESSION['nick'] . ''; ?>"

mostranos ese codigo, solo lo mas importante no todo
  #3 (permalink)  
Antiguo 07/05/2011, 11:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Codigo php en imagen (ayudaa)

En realidad con ese codigo me muestra la imagen del usuario pero cuando no tiene imagen no aparece nada, y aparte solo si esta conectado aparece, si lo ve otro apareceria el del otro... yo quiero que si la variable es igual a 1 aparesca la imagen "sinfoto" en caso contrario aparesca la imagen que agrego de perfil...
  #4 (permalink)  
Antiguo 07/05/2011, 11:25
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Codigo php en imagen (ayudaa)

TE ENTIENDO PERO NO PONES EL CODIGO DONDE HACES ESO....
mostranos el codigo
  #5 (permalink)  
Antiguo 07/05/2011, 11:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Codigo php en imagen (ayudaa)

es que es ese codigo nadamas. Luego esta el otro que es el de la base de datos donde guarda y luego el de cuando cargas una imagen que es:

Cita:
Código PHP:
Ver original
  1. <?php
  2. require("frame1.php");
  3. // Verificamos que el formulario no ha sido enviado aun
  4.  
  5. $postback = (isset($_POST["enviar"])) ? true : false;
  6.  
  7. if($postback){
  8.  
  9.   // Nivel de errores
  10.  
  11.   error_reporting(E_ALL);
  12.  
  13.   // Constantes
  14.  
  15.   # Altura de el thumbnail en p
  16.  
  17.   define("ALTURA", 100);
  18.  
  19.   # Nombre del archivo temporal del thumbnail
  20.  
  21.   define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podser:
  22.  
  23. // define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
  24.  
  25.   # Servidor de base de datos
  26.  
  27.   define("DBHOST", "fdb2.runhosting.com");
  28.  
  29.   # nombre de la base de datos
  30.  
  31.   define("DBNAME", "384431_db");
  32.  
  33.   # Usuario de base de datos
  34.  
  35.   define("DBUSER", "384431_db");
  36.  
  37.   # Password de base de datos
  38.  
  39.   define("DBPASSWORD", "pokemon");
  40.  
  41.   // Mime types permitidos
  42.  
  43.   $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
  44.  
  45.   // Variables de la foto
  46.  
  47.   $name = $_FILES["foto"]["name"];
  48.  
  49.   $type = $_FILES["foto"]["type"];
  50.  
  51.   $tmp_name = $_FILES["foto"]["tmp_name"];
  52.  
  53.   $size = $_FILES["foto"]["size"];
  54.  
  55.   // Verificamos si el archivo lida
  56.    if(!in_array($type, $mimetypes))
  57.  
  58.     die("El archivo que subiste no es una imagenida");
  59.  
  60.   // Creando el thumbnail
  61.  
  62.   switch($type) {
  63.  
  64.     case $mimetypes[0]:
  65.  
  66.     case $mimetypes[1]:
  67.  
  68.       $img = imagecreatefromjpeg($tmp_name);
  69.  
  70.       break;
  71.  
  72.     case $mimetypes[2]:
  73.  
  74.       $img = imagecreatefromgif($tmp_name);
  75.  
  76.       break;
  77.  
  78.     case $mimetypes[3]:
  79.  
  80.       $img = imagecreatefrompng($tmp_name);
  81.  
  82.       break;
  83.  
  84.   }
  85.  
  86.   $datos = getimagesize($tmp_name);
  87.  
  88.   $ratio = ($datos[1]/ALTURA);
  89.  
  90.   $ancho = round($datos[0]/$ratio);
  91.  
  92.   $thumb = imagecreatetruecolor($ancho, ALTURA);
  93.  
  94.   imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
  95.  
  96.   switch($type) {
  97.  
  98.     case $mimetypes[0]:
  99.  
  100.     case $mimetypes[1]:
  101.  
  102.       imagejpeg($thumb, NAMETHUMB);
  103.  
  104.           break;
  105.  
  106.     case $mimetypes[2]:
  107.  
  108.       imagegif($thumb, NAMETHUMB);
  109.  
  110.       break;
  111.  
  112.     case $mimetypes[3]:
  113.  
  114.       imagepng($thumb, NAMETHUMB);
  115.  
  116.       break;
  117.  
  118.   }
  119.  
  120.   // Extrae los contenidos de las fotos
  121.  
  122.   # contenido de la foto original
  123.  
  124.   $fp = fopen($tmp_name, "rb");
  125.  
  126.   $tfoto = fread($fp, filesize($tmp_name));
  127.  
  128.   $tfoto = addslashes($tfoto);
  129.  
  130.   fclose($fp);
  131.  
  132.   # contenido del thumbnail
  133.  
  134.   $fp = fopen(NAMETHUMB, "rb");
  135.  
  136.   $tthumb = fread($fp, filesize(NAMETHUMB));
  137.  
  138.   $tthumb = addslashes($tthumb);
  139.  
  140.   fclose($fp);
  141.  
  142.   // Borra archivos temporales si es que existen
  143.  
  144.   @unlink($tmp_name);
  145.  
  146.   @unlink(NAMETHUMB);
  147.  
  148.   // Guardamos todo en la base de datos
  149.  
  150.   #nombre de la foto
  151.  
  152. $idfoto = $_SESSION['id'];
  153.  
  154.   $nombre = $_SESSION['nick'];
  155.  
  156.   $link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
  157.  
  158.   mysql_select_db(DBNAME, $link) or die(mysql_error($link));
  159.  
  160.  
  161. $consulta = "DELETE FROM tabla WHERE idfoto='$idfoto'";
  162. $query = mysql_query($consulta) or die (mysql_error());
  163.  
  164.  
  165. $sql = "INSERT INTO tabla(idfoto, nombre, foto, thumb, mime)
  166.  
  167.    VALUES
  168.  
  169.    ('$idfoto', '$nombre', '$tfoto', '$tthumb', '$type')";
  170.  
  171.   mysql_query($sql, $link) or die(mysql_error($link));
  172.  
  173.   echo "Fotos guardadas";
  174.  
  175.   exit();
  176.  
  177. }
  178.  
  179. ?>
  #6 (permalink)  
Antiguo 07/05/2011, 12:05
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Codigo php en imagen (ayudaa)

primero que nada t recomiendo que pongas el codigo if fuera del SRC=

<h1><img alt="Esta es tu foto de perfil." src="imagen_mostrar.php?idfoto=
<?
if($idfoto != $_SESSION['id']) {
echo 1;
} else {
if($idfoto == $_SESSION['id']) {
echo '' . $_SESSION['id'] . '';
}
}
?>&tam=<? echo '' . $_SESSION['nick'] . ''; ?>" alt="Imagen desde Blob" border="2" height="300" width="200" />

IGUAL ESTAS REPITIENDO CODIGO
Código PHP:
Ver original
  1. <?
  2. if($idfoto == $_SESSION['id']) {
  3.         echo '' . $_SESSION['id'] . '';
  4. }else{
  5.     echo 1;
  6. }
  7. ?>

ME GISTARIA UE HAGAS ESTO:
echo $idfoto.' - '.$_SESSION['id'];
a ver q resultado estas trabajando
  #7 (permalink)  
Antiguo 07/05/2011, 12:40
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Codigo php en imagen (ayudaa)

Hola!, basandome en el primer código que motraste.
Tienes errores de sintáxis y no puedes hacer que $idfoto coincida con $id ya que $idfoto siempre te devolvera un "Resource id#5"(por ejemplo).
Cambia éste:
Código PHP:
<?
$id 
' . $_SESSION['nick'] . ';
$idfoto mysql_query("SELECT * From tabla WHERE tabla.idfoto = '$id'",$conectar);  
?>
 
<h1><img alt="Esta es tu foto de perfil." src="imagen_mostrar.php?idfoto=<? if($idfoto != $_SESSION['id']) { echo 1; } else { if($idfoto == $_SESSION['id']) { echo '' $_SESSION['id'] . ''; } } ?>&tam=<? echo '' $_SESSION['nick'] . ''?>" alt="Imagen desde Blob" border="2" height="300" width="200" />
Por éste:
Código PHP:
<?php
$id 
$_SESSION['nick'];
$consulta_foto mysql_query("SELECT * From tabla WHERE idfoto = '$id'",$conectar); 
$idfoto = (mysql_num_rows($consulta_foto)!=0)?$id:1;
?>
<h1><img alt="Esta es tu foto de perfil." src="imagen_mostrar.php?idfoto=<?=$idfoto?>&tam=<?=$id?>" alt="Imagen desde Blob" border="2" height="300" width="200" />
Prueba haber si ya te funcióna, de lo contrario, el código dónde creas la imagen necesitará modificación.
Saludos!

Última edición por angelfcm; 07/05/2011 a las 12:52
  #8 (permalink)  
Antiguo 07/05/2011, 16:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 66
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Codigo php en imagen (ayudaa)

Listo pude lograrlo con el siguiente codigo:

Cita:
Código PHP:
Ver original
  1. <?
  2. $id = $_SESSION['id'];
  3. $consulta_foto = mysql_query("SELECT * From tabla WHERE idfoto = '$id'",$conectar);
  4. $foto = (mysql_num_rows($consulta_foto)!=0)?$id:1;
  5. ?>

<img alt="Esta es tu foto de perfil." src="imagen_mostrar.php?idfoto=
Código PHP:
Ver original
  1. <?=$foto?>
" alt="Imagen desde Blob" border="2" height="300" width="200" />
Exactamente el que me paso angelfcm pero de igual manera gracias Patriarka porque tambien probe con lo que me dijiste que haga y de hay saque la forma tambien pero de igual cambie "nick" por "id" de ahi logre que me de el resultado, porque nadamas necesitaba la "id" no el "nick" porque es la misma que el usuario la id de la imagen. Muchas gracias por su ayuda y les dejo sus puntajes que se meresen ambos por su ayuda. Hasta pronto....

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 23:16.