Foros del Web » Programando para Internet » PHP »

"Bienvenido $username"

Estas en el tema de "Bienvenido $username" en el foro de PHP en Foros del Web. Hola gente, tengo un problema y que no se que tengo que no me doy cuenta. Se de php y no mucho, pero bue... Tengo ...
  #1 (permalink)  
Antiguo 13/01/2008, 09:19
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 11 meses
Puntos: 2
"Bienvenido $username"

Hola gente, tengo un problema y que no se que tengo que no me doy cuenta. Se de php y no mucho, pero bue...

Tengo 1 archivo, estoy trabajando con sessiones. Este archivo lo llamo "eliminar_imagenes.php".

eliminar_imagenes.php
Código PHP:
session_start();
if (isset($_SESSION['s_username'])) {
include("config_usuarios.php");
$sesion = $_SESSION['s_username'];
$con = mysql_query("SELECT * FROM hostimage_imagenes WHERE username = '$sesion'") or die("Error: ".mysql_error());
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="30%" valign="top">
<?
if(mysql_num_rows($con) != 0) {
echo 
'<form action="eliminar_imagenes.php" method="post">
        <select name="archivo">'
;
        while(
$datos mysql_fetch_array($con)) {
            echo 
'<option value="'.$datos['id'].'">'.$datos['imagen'].'</option>';
            }
        echo 
'</select><br><br>
              <input type="submit" name="borrar" value="Borrar">
              </form>'
;
} else {
echo 
'No hay imgenes para borrar<br>
<a href="index.php">Volver</a>'
;
}
?>
</td>
    <td width="70%" valign="top"><div align="center">
<script type="text/javascript">
function abrir_imagen(obj) {
    document.getElementById('imagen_grande').src = obj.value;
}
</script>
<img src="" id="imagen_grande">
<script type="text/javascript">
    abrir_imagen(document.getElementById('archivo'));
</script>
    </div></td>
  </tr>
</table>
<?
if(isset($_POST['borrar'])){

$res mysql_query("delete from hostimage_imagenes where id='$_POST[archivo]'") or die("Error: ".mysql_error());

$archivo $_POST[archivo];
if(
unlink($archivo)) {
echo 
"El archivo <b>$_POST[archivo]</b> ha sido borrado satisfactoriamente.<br><br><br><br>";
} else {
echo 
"El archivo <b>$_POST[archivo]</b> no se pudo borrar.<br><br><br><br>";
}
}
}else{
echo 
"Tu no estas autentificado. No puedes entrar aqui!!";
}

El problema es simple. Para eliminar el registro de la base de datos está perfecto, pero para eliminar el archivo esta feo... Porque le indico a unlink que elimine lo seleccionado en el select. Este select se llama "archivo". Que pasa, el value de las option tube que poner la ID del registro de la base de datos, pero al querer borrar el archivo, lo interpreta como el numero de la ID, por ejemplo "5" y no hay una imagen que se llame 5.

Tengo un archivo "subir_imagenes.php", donde subo las imagen. Al subir una imagen, se cambia su nombre, se sube a X directorio y el nombre de la imagen que se subió se registra en un campo de una BD. Además se registran ID y username. El username es igual al que inición sesion. Esto es para que el select lea el campo "imagen". Este campo es igual al nombre de la imagen almacenada.

No se si está bien pensado, si alguien me pudiese ayudar se lo agradeceria mucho.
  #2 (permalink)  
Antiguo 13/01/2008, 10:33
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 11 meses
Puntos: 22
Re: "Bienvenido $username"

Hola lo que tienes que hacer en este archivo eliminar_imagenes.php, ahi tienes que hacer un select donde el id sea igual a 5, de esta manera tomas el campo donde guardas la imagen, y luego haces el unlink y eliminas de la base de datos tambien.

Saludos.
  #3 (permalink)  
Antiguo 13/01/2008, 10:41
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 11 meses
Puntos: 2
Re: "Bienvenido $username"

Disculpa, no te entendí. Me podrías dar un ejemplo. Gracias
  #4 (permalink)  
Antiguo 13/01/2008, 12:18
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: "Bienvenido $username"

Código PHP:
$archivo $_POST[archivo]; 
 
//Tienes el id, y lo que debes obtener para borrar el archivo es la ruta de la imagen
//por lo tanto has de hacer un SELECT a la bd
$archivo mysql_query("SELECT imagen FROM hostimage_imagenes WHERE id = '$archivo'") or die("Error: ".mysql_error());
 
//Obtenemos el resultado
$archivo mysql_result($archivo0);
 
//Borramos
if(unlink($archivo)) {     //.... 
Un saludo,

P.D.: Y qué tiene que ver el título con el mensaje??

Última edición por okram; 13/01/2008 a las 12:28
  #5 (permalink)  
Antiguo 13/01/2008, 13:04
 
Fecha de Ingreso: diciembre-2007
Mensajes: 75
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: "Bienvenido $username"

si el titulo no tiene nada que ver... ademas esta mal.. deberia ser <?="bienvenido ".$username ?>
  #6 (permalink)  
Antiguo 13/01/2008, 17:50
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 11 meses
Puntos: 2
Re: "Bienvenido $username"

Primero, quiero agradecerte mucho okram, sos una masa.
Segundo queria aclarar lo del titulo. Yo quise crear un tema por un problema que tenia al inicio de sesion de los usuarios. Luego lo pude resolver pero tenia este problema que publique y me olvide de editar el titulo. Digamos, esta bien lo que dijiste, pero la intención era enfocarse en el error, que era $username. Lo puse entre " " a todo, ya que es una parte del codigo y no es un titulo definido, como en las noticias.

Bueno, desde ya gracias!!!!!!!!
  #7 (permalink)  
Antiguo 13/01/2008, 17:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: "Bienvenido $username"

Al usar comillas dobles al $username PHP lo reconoce como una variable.
En este caso da lo mismo
Código PHP:
<?= "Bienvenido $username" ?>
que
Código PHP:
<?= "Bienvenido".$username ?>
(son comillas dobles)

Saludos
  #8 (permalink)  
Antiguo 13/01/2008, 18:04
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 11 meses
Puntos: 2
Re: "Bienvenido $username"

Mmmm tengo otro problemita.... Tengo un script javascript donde al hacer clic en el select al lado se visualiza la imagen... pero esto toma el nombre del value del option, que es la id y la id es un numero...

Como puedo hacer para visualizar las imagenes

este es el script:

Código PHP:
if(mysql_num_rows($con) != 0) {
echo 
'<form action="eliminar_imagenes.php" method="post" name="formulario" enctype="multipart/form-data">
        <select name="archivo" size="15" class="form" id="archivo" onChange="abrir_imagen(this)">'
;
        while(
$datos mysql_fetch_array($con)) {
            echo 
'<option value="'.$datos['id'].'">'.$datos['imagen'].'</option>';
            }
        echo 
'</select><br><br>
              <input name="borrar" type="submit" class="form" id="borrar" value="Borrar">
              </form><br><br><a href="index.php">Volver</a'
;
} else {
echo 
'No hay imgenes para borrar<br><br><a href="index.php">Volver</a>';

y este para visualizar la imagen:

Código HTML:
<script type="text/javascript">
function abrir_imagen(obj) {
    document.getElementById('imagen_grande').src = obj.value;
}
</script>
<img src="" id="imagen_grande">
<script type="text/javascript">
    abrir_imagen(document.getElementById('archivo'));
</script> 
  #9 (permalink)  
Antiguo 13/01/2008, 18:57
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: "Bienvenido $username"

Haber, es una pregunta diferente, por lo tanto debiste abrir un nuevo tema

Se me ocurre utilizar ids en los options, para que asi podamos cargar el contenido de cada option por medio del id. Sin embargo, desconozco si esto podria causarte problemas de compatibilidad en diferentes navegadores. Te puedo asegurar que funciona en IE y FF

Código PHP:
while($datos mysql_fetch_array($con)) { 
    echo 
"<option value=\"{$datos[id]}\" id=\"img{$datos[id]}\">{$datos[imagen]}</option>"

y tus funciones quedarían así:

Código HTML:
 
<script type="text/javascript">
function abrir_imagen(obj) {
    document.getElementById('imagen_grande').src = document.getElementById('img'+obj.value).innerHTML;
}
</script>
 
<img src="" id="imagen_grande">
 
<script type="text/javascript">
    abrir_imagen(document.getElementById('archivo'));
</script>
 
Un saludo,
  #10 (permalink)  
Antiguo 14/01/2008, 10:35
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 11 meses
Puntos: 2
Re: "Bienvenido $username"

gracias okram sos una masa. Y gracias a todos por su ayuda
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 21:14.