Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/01/2008, 11:19
gesking
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: ¿libro de visitas con foto? ¿se puede?

Hola, la verdad no entiendo tu código, no se como funciona tu libro.

Mira este codigo que tengo

Código PHP:
<?
if (isset($_SESSION['s_username'])) {
include(
"config_usuarios.php");
$sesion $_SESSION['s_username'];
$con mysql_query("SELECT * FROM usuarios WHERE username = '$sesion'") or die("Error: ".mysql_error());
$mostrar mysql_fetch_array($con);

?>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td><div align="center">
      <form action="subir_imagenes.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
        <span class="Estilo2">Archivo</span> <br />
        <input name="archivo" type="file" id="archivo" class="file" />
        <br />
        <br />
        <input name="boton" id="boton" class="boton" type="submit" value="Subir Imagen!" />
      </form>
    </div></td>
  </tr>
  <tr>
    <td style="border: 1px solid #0099FF; background-color: #88CFFF"><b>Solo se admiten archivo con formato JPG, GIF y PNG.</b> <br />
      Tamaño máximo aceptado:<span style="color:#FF0000"> 1MB</span>.</td>
  </tr>
</table>
<br>
<br>
<?
if(isset($_POST['boton'])){

$tipo $_FILES['archivo']['type'];
$tamaño $_FILES['archivo']['size'];

if (
is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {

if(
$HTTP_POST_FILES['archivo']['size'] < 1000000) {

if(
$tipo=="image/gif" || $tipo=="image/jpeg" || $tipo=="image/png" || $tipo=="image/jpg" || $tipo=="image/pjpeg" || $tipo=="image/x-png") {

$usuario $mostrar[username];
$info pathinfo($_FILES['archivo']['name']);
$aleatorio substr(md5(uniqid(rand())),0,10).".".strtolower($info['extension']);
$imagen $usuario."_".$aleatorio;
copy($_FILES['archivo']['tmp_name'], $imagen);

$query "INSERT INTO imagenes (username, imagen) VALUES('$usuario', '$imagen')";
mysql_query($query) or die(mysql_error());

$subio true;
}
}
}

   if(
$subio) {
      echo 
'<img src="'.$imagen.'"><br><br><a href="index.php">Volver</a>';
   } else {
      echo 
"El archivo no se pudo enviar. Recuerda que debe ser un archivo JPG, GIF o PNG y el tamaño no puede exceder 1MB";
   }

}else{
echo 
"Tu no estas autentificado. No puedes entrar aqui!!";
}
?>

Lo que hace es simple, hay 2 tablas creadas:

table "usuarios"
id | username | password

table "imagenes"
id | username | imagen

El usuario al ingresar se crea una sesion con el nombre del usuario, ejemplo "pepe". Éste debe de loguearse para entrar, sino no lo deja subir imágenes.
Al querer subir una imaegn la busca en su PC y apreta el boton "subir".

Mientras se procesa la info, ve si el archivo es mayor a 1MB y/o no es formato JPG, GIF o PNG tira una advertencia. Si cumple con las caracteristica se genera automaticamente un nombre a la imagen, donde primero esta el nombre de usuario y dps un nombre aleatorio con md5().

Ejemplo: pepe_4fsaf65sa.jpg

Además transforma todo caracter mayuscula de la extencion en miniscula.

Esta imagen se aloja en X directorio con su nuevo nombre y ese nombre se registra en la tabla "imagenes", que ademas se registra el nombre de ususario en el campo username.

¿para que es eso?

Para cuando crees un archivo "album" donde el ususario pueda ver todas las imagenes alojada que tiene, compare con WHERE el usuario y que solo muestre las imagenes del usuario.

Ejemplo: se registran 3 imagenes de pepe.

cuando pepe quiere ver sus imagenes:

Código PHP:
$sesion $_SESSION['s_username'];
$con mysql_query("SELECT * FROM imagenes WHERE username = '$sesion'");
$mostrar mysql_num_rows($con);

while (
mysql_fetch_array($cin)) {
echo 
"<img src='directorio/".$mostrar[imagen]."'><br><br>"
Espero que hayas entendido, sino manda privado.