Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Poner nombre del usuario en la imagen

Estas en el tema de Poner nombre del usuario en la imagen en el foro de PHP en Foros del Web. Estimados foreros. Mediante el siguiente código cargo una serie de imágenes desde un directorio a un div determinado. Son subidas (mediante formulario) por los usuarios ...
  #1 (permalink)  
Antiguo 05/03/2013, 05:35
 
Fecha de Ingreso: febrero-2013
Mensajes: 26
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Poner nombre del usuario en la imagen

Estimados foreros.
Mediante el siguiente código cargo una serie de imágenes desde un directorio a un div determinado. Son subidas (mediante formulario) por los usuarios a una db que contiene la tabla 'imagen' con los campos: id, nombre, imagen y descripción.
Esta así:

<?php
$directory="verImg/";
$dirint = dir($directory);

while (($archivo = $dirint->read()) !== false) {
if (preg_match("/gif/", $archivo) || preg_match("/jpg/", $archivo) ||
preg_match("/png/", $archivo)) {

echo '<a href="'.$directory."/".$archivo.'" rel="shadowbox">
<img src="'.$directory."/".$archivo.'" width="114px" height="50px"></a>'."\n";
}
}
$dirint->close();
?>

Entiendo que éste código php lo que hace es traerlas desde el directorio en el que se almacenan, y al div de ubicación final.
Cómo puedo, al igual que cargo la imagen, poner en ella el NOMBRE de quien la sube a la db?.
Os ruego ayuda. Muchas gracias y saludos a todos.
  #2 (permalink)  
Antiguo 05/03/2013, 06:02
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 13 años, 11 meses
Puntos: 40
Respuesta: Poner nombre del usuario en la imagen

Lo puedes hacer de dos formas, con HTML/CSS o con PHP.
La más sencilla a mi parecer, con HTML, tienes que crear un div abstracto o relativo, y por lo tanto lo que escribas se escribirá encima de la imagen, siempre que lo hayas situado bien, pero las letras no estarán realmente en la imagen.

Con PHP usando la librería GD puedes editar imágenes y ponerles texto y muchas cosas más.

Un saludo
  #3 (permalink)  
Antiguo 05/03/2013, 06:09
 
Fecha de Ingreso: febrero-2013
Mensajes: 26
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Poner nombre del usuario en la imagen

Hola Heli0s y gracias por contestar.
Entiendo perfectamente tu indicación, pero lo que realmente necesito es que el nombre de quien las sube se inserte también dinámicamente sin necesidad de ponerlo yo, es decir, de la misma manera que sube la imagen, suba el nombre de quien lo hace.
Regracias y saludos.
  #4 (permalink)  
Antiguo 05/03/2013, 06:12
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 13 años, 11 meses
Puntos: 40
Respuesta: Poner nombre del usuario en la imagen

Eso es algo más sencillo, seguramente tengas en la base de datos ya registrado el nombre del usuario que la sube, y en caso de que no fuese así seria añadir un campo pidiendo el nombre y guardarlo en la base de datos, o incluso editar la imagen en ese momento con PHP y ponerle el nombre, sin necesidad de guardarlo en la base de datos, eso ya va según tus necesidades.

Un saludo
  #5 (permalink)  
Antiguo 05/03/2013, 06:53
 
Fecha de Ingreso: febrero-2013
Mensajes: 26
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Poner nombre del usuario en la imagen

Hola otra vez, Heli0s.
Como indiqué en la 1ª consulta, tengo la tabla 'imagen' con los campos id, nombre, foto y descripción. Hasta ahora no he conseguido la línea de código, que al igual que la que me trae el archivo 'foto', me coloque el nombre de quien la ha subido; no obstante el formulario es:

<form class="contact_form" name="imagen" id="" action="fotoConcursoSql2.php" method="post" enctype="multipart/form-data">
<h6 style="text-align: center;">Gestor de fotos</h6><br />
<ul>
<li>
<label for="nombre">Nombre</label>
<input type="text" name="nombre" id="nombre" class="required" placeholder="Su nombre" />
</li>
<li>
<label for="imagen">Imagen</label>
<input style="height: 25px;" type="file" size="37" name="foto" id="foto" class="required" placeholder="Su imagen" />
</li>
<li>
<label for="extension">Elija</label>
<select>
<option value="extension" selected>extension</option>
<option value="jpg">.jpg</option>
<option value="jpeg">.jpeg</option>
<option value="gif">.gif</option>
<option value="png">.png</option>
<option value="bmp">.bmp</option>
<option value="svg">.svg</option>
</select>
</li><br />
<li>
<label for="descripcion">Comentas...</label>
<textarea style="width: 260px; height: 100px;" name="descripcion" rows="4" cols="25" onfocus="campoTexto(); cuentaL()" onblur="campoTextoNormal()" placeholder="...algo sobre tu imagen?"></textarea>
</li>
<li>
<input style="margin-left: 97px; padding: 25px 0 30px;" type="submit" name="Submit" value="Subir" />
<input name="action" type="hidden" value="Subir" />
</li>
</ul>
</form>

Y el código del archivo para el action :
<?php
$nombre=$_POST['nombre'];
$id=$_POST['id'];
$nombrefoto=$_FILES['foto']['name'];
$descripcion=$_POST['descripcion'];
$ruta=$_FILES['foto']['tmp_name'];
$destino = "verImg/".$nombrefoto;
copy($ruta,$destino);

mysql_connect('localhost','root','') or die ('No puedo conectar a la base de datos');
mysql_select_db('miBase') or die ('No puedo seleccionar la base de datos');
mysql_query("INSERT INTO imagen(nombre,foto,descripcion) values('$nombre','$destino','$descripcion')");

header("Location:gracias.html");
?>

Ruego disculpes la brasa, pero aunque sé que está ahí la solución, de momento no la hayo.
Gracias por la paciencia.
Saludos.
  #6 (permalink)  
Antiguo 05/03/2013, 07:02
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Poner nombre del usuario en la imagen

Pues ahi mismo en tu código tienes la respuesta:

Código PHP:
$nombre=$_POST['nombre'];
$id=$_POST['id'];
$nombrefoto=$_FILES['foto']['name'];
$descripcion=$_POST['descripcion'];
$ruta=$_FILES['foto']['tmp_name'];
$destino "verImg/".$nombrefoto;
copy($ruta,$destino
En $nombrefoto tu le puedes colocar el nombre que quieras, mamá, papá, juanito me quiere pegar Bromas aparte es tan sencillo como tomar en lugar del nombre temporal de la imagen el valor que recibes en el post de nombre. Eso si asegurate de concatenarle la extensión del tipo de archivo. (jpg,bmp,gif,etc)

Código PHP:
$nombrefoto=$_POST['nombre'].".jpg";//tambien podrias crearte una funcion para que le anexara el tipo de extensión segun la imagen a menos que restringas la subida solo a archivos jpg eso ya te lo dejo a tu imaginación. 
__________________
Blog de humor http://elcuasatar.net63.net/
  #7 (permalink)  
Antiguo 05/03/2013, 09:46
 
Fecha de Ingreso: febrero-2013
Mensajes: 26
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Poner nombre del usuario en la imagen

Gracias cuasatar.
He agregado:
$nombrefoto=$_POST['nombre'].".jpg";

debajo de:
$nombrefoto=$_FILES['foto']['name'];

Lo que ocurre es que me cambia el nombre de la imagen original y su extensión, es decir, si la imagen se llama 'cucu.gif', pasa a llamarse 'alfonso.jpg'. Perfecto ya que así sabemos qué usuario la ha subido (siempre que miremos en la carpeta donde están ubicadas). Pero lo que sería mi consulta es: El nombre de usuario -Alfonso por ej.- cómo puedo ponerlo encima, debajo, a la izd. o a la dch. de la imagen que es cargada en un div determinado de la página, para conocer (ver el usuario) de quien es la imagen insertada.
Os ruego me disculpeis el problemilla que os enjareto, pero sé que para vosotros es pan comido y que para otros, como yo por ej. aún nos viene algo grandote.
Resaludos y gracias.
  #8 (permalink)  
Antiguo 05/03/2013, 10:38
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 13 años, 11 meses
Puntos: 40
Respuesta: Poner nombre del usuario en la imagen

Para hacer eso te remito de nuevo a la libreria GD de PHP, es de la única manera que podrás hacerlo.

Un saludo
  #9 (permalink)  
Antiguo 05/03/2013, 11:21
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 9 meses
Puntos: 181
Respuesta: Poner nombre del usuario en la imagen

Cita:

Lo que ocurre es que me cambia el nombre de la imagen original y su extensión, es decir, si la imagen se llama 'cucu.gif', pasa a llamarse 'alfonso.jpg'.
Ojo con eso. Si la imagen es .gif tienes que conservar su extensión original, de lo contrario te expones a que no se visualice por eso debes sacar del nombre temporal la extensión de la foto. (creo que con substr lo puedes hacer si mal no recuerdo)

Cita:
El nombre de usuario -Alfonso por ej.- cómo puedo ponerlo encima, debajo, a la izd. o a la dch. de la imagen que es cargada en un div determinado de la página,
Eso es mucho mas sencillo y nada tiene que ver con PHP. Si deseas que al arrastrar el raton a un avatar (por ejemplo) de los que estan en este mismo foro y se vea algo asi como: avatar de Heli0s o avatar de Cuasatar simplemente debes colocarle el atributo a la imagen (creo que alt es para ser compatible con explorer y title para el resto):

Código HTML:
<img src="smiley.gif" alt="Smiley face" title="Smiley face" height="42" width="42"> 
Obviamente para tu caso en lugar de ser un valor fijo lo debes recuperar de una base de datos donde debe estar el nombre de la foto.

Si le quieres dar mas estilo a la etiqueta usa tooltip de jquery

http://jqueryui.com/tooltip/

Si por el contrario quieres una marca de agua para la foto ya como te dijo el compañero debes usar la libreria GD y añadirle tu la marca de agua a la foto.
__________________
Blog de humor http://elcuasatar.net63.net/
  #10 (permalink)  
Antiguo 05/03/2013, 11:27
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 10 meses
Puntos: 76
Respuesta: Poner nombre del usuario en la imagen

hola

mira este foro a ver si te sirve

http://www.forosdelweb.com/f18/image...ia-gd-1040453/
  #11 (permalink)  
Antiguo 05/03/2013, 11:30
 
Fecha de Ingreso: febrero-2013
Mensajes: 26
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Poner nombre del usuario en la imagen

Heli0s y cuasatar.
Gracias por vuestras respuestas. Y de paso a todos los foreros como vosotros.
Saludos cordiales.

Etiquetas: formulario, nombre, tabla, usuario, usuarios
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 17:32.