Foros del Web » Programando para Internet » PHP »

sistema de avatar en el sistema de usuario

Estas en el tema de sistema de avatar en el sistema de usuario en el foro de PHP en Foros del Web. Buenas tal vez no aya describido el titulo bien les explico tengo un sistema de usuarios alo que voy es que quiero agregarle un avatar ...
  #1 (permalink)  
Antiguo 21/05/2011, 14:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 1
Exclamación sistema de avatar en el sistema de usuario

Buenas tal vez no aya describido el titulo bien les explico tengo un sistema de usuarios alo que voy es que quiero agregarle un avatar a los usuario cuando se registran les dejo el codigo:

config.php
Cita:
<?
$dbhost="localhost"; //Host del mysql
$dbuser="usuario"; //Usuario del mysql
$dbpass="password"; //Password del mysql
$db="db_usuarios"; //db donde se creará la tabla users

//conectamos y seleccionamos db
mysql_connect("$dbhost","$dbuser","$dbpass");
mysql_select_db("$db");

//Comenzamos la sesión, esto se explica despues en el Sistema de Login
session_start();
?>
users :

Cita:
CREATE TABLE `users` (
`id` INT( 4 ) NOT NULL AUTO_INCREMENT,
`nick` VARCHAR(30) NOT NULL ,
`pass` VARCHAR(30) NOT NULL ,
`email` VARCHAR(50) NOT NULL ,
`fecha` INT(15) NOT NULL ,
`level` INT(2) NOT NULL ,
`rollo` LONGTEXT NOT NULL ,
INDEX ( `id` )
);
reg.php:


Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

//Creamos el form k irá a registrar.php para comprobar y introducir los datos a la tabla users
echo '<form action="registrar.php" method="POST">
Nick: <input type="text" name="nick" size="30"><br>
Password: <input type="password" name="pass" size="30" ><br>
Repetir Password: <input type="password" name="pass1" size="30" ><br>
email: <input type="text" name="email" size="50"><br>
Rollo: <textarea name="rollo" cols="30" rows="10"></textarea><br>
<input type="submit" name="submit" value="Enviar"></form>';
?>
registrar.php:


Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

//Comprobamos que los campos nick, pass y pass1 se han rellenado en el form de reg.php, sino volvemos al form
if(($_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
{
Header("Location: reg.php"); //enviamos al form de registro que esta en reg.php
}else{

//Comprobamos que la pass y pass1 son iguales, sino, volvemos a reg.php
if($_POST[pass] != $_POST[pass1])
{
echo 'Las passwords no son iguales';
}else{

//quitamos el codigo malicioso de $_POST[nick] y $_POST[pass]
$user = stripslashes($_POST["nick"]);
$user = strip_tags($user);
$pass = stripslashes($_POST["pass"]);
$pass = strip_tags($pass);
//comprobamos que el usuario no existe en la db
$usuarios=mysql_query("SELECT nick FROM users WHERE nick='$user' ");
if($user_ok=mysql_fetch_array($usuarios))
{
echo 'El usuario ya esta registrado';
mysql_free_result($usuarios); //liberamos la memoria del query a la db
}else{
//quitamos todo el codigo malicioso de las demas variables del form de registro
$email = stripslashes($_POST["email"]);
$email = strip_tags($email);

$rollo = stripslashes($_POST["rollo"]);
$rollo = strip_tags($rollo);
$rollo = str_replace("\n\r","<br>",$rollo); //se cambian los saltos de linea por <br>
$rollo = str_replace("\r\n","<br>",$rollo);
$rollo = str_replace("\n","<br>",$rollo);

$fecha = time();
$level = "2"; //usaremos level 1 para admins, level 2 para los demas (se cambia manualmente desde phpmyadmin)

//introducimos el nuevo registro en la tabla users
mysql_query("INSERT INTO users (nick,pass,email,fecha,level,rollo) values ('$user','$pass','$email','$fecha','$level','$roll o') ");
echo 'Usuario registrado con éxito';
}

}

}
?>
login.php:


Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

if(!isset($_SESSION[usuario]) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{

//Creamos el form k irá a autentificar.php para comprobar los datos con la tabla users
echo '<form action="autentificar.php" method="POST">
Nick: <input type="text" name="nick" size="30"><br>
Password: <input type="password" name="pass" size="30" ><br>
<input type="submit" name="submit" value="Enviar"></form>';

}else{

//SI se ha logeado, mostramos el nick y la opción de deslogearse
//Este sería el menú que saldría a la gente que esta logeada, se puede modificar y añadir cosas
echo 'Bienvenido '.$_SESSION[usuario]; //ej Bienvenido Juan
echo '<br>Tu level es '.$_SESSION[level]; //mostramos el level del user
if($_SESSION[level] == 1)
{
//mostramos el link para ir a la pagina privada porque el user tiene level 1 (*Nota: el level por defecto es 2, por lo tanto no se le mostrará)
//*Nota2: para cambiar el level a 1, se tiene k hacer manualmente por phpmyadmin
echo '<br><a href=paginaprivada.php>Ir a pagina privada</a>';
}

echo '<br><a href=logout.php>Salir</a>'; //link para deslogearse, iría a logout.php

}

?>
autentificar.php:


Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

if( ($_POST[nick] == ' ') or ($_POST[pass] == ' ') )//comprobamos que las variables enviadas por el form de login.php tienen contenido
{
Header("Location: login.php"); //estan vacías, volvemos al index
}else{

//comprobamos en la db si existe ese nick con esa pass
$usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' ");
if($user_ok = mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index
{

session_register("usuario"); //registramos la variable usuario que contendrá el nick del user
session_register("idusuario"); //registramos la variable idusuario que contendrá la id del user
session_register("level"); //registramos la variable level que contendrá el level del user
//damos valores a las variables de la sesión
$_SESSION[usuario] = $user_ok["nick"]; //damos el nick a la variable usuario
$_SESSION[idusuario] = $user_ok["id"]; //damos la id del user a la variable idusuario
$_SESSION[level] = $user_ok["level"]; //damos el level del user a la variable level
Header("Location: login.php"); //volvemos al login donde nos saldrá nuestro menú de usuario

}else{
echo 'Nick y pass incorrectos';
}

}
?>
logout.php:


Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión

session_destroy(); //destruimos la sesion
Header("Location: login.php"); //volvemos al login.php

?>
paginaprivada.php:



Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión

if($_SESSION[level] == 1)
{
echo 'Tienes level 1 y puedes ver esta página';

}else{
Header("Location: index.php");
}

?>

perfil.php:


Cita:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión
$id=$_GET[id];//a la variable id la define el metodo GET



if(!isset($id))
{

echo 'no se ha seleccionado ninguna id'; //no

}else{


//comprobamos si esa id existe

$user=mysql_query("SELECT * FROM users WHERE id='$id' ");

if($user_ok=mysql_fetch_array($user) )

{

//todo comprobado, ahora solo falta mostrar los datos

echo 'Usuario <b>'.$user_ok["nick"].'</b><br>';

echo '<br>Email: <a
href="mailto:'.$user_ok["email"].'">'.$user_ok["email"].'</a><br>';


//sacamos la fecha de registro mediante la funcion date

$fecha=date("d.m.Y - H:i", $user_ok["fecha"]);

echo 'Fecha de registro: '.$fecha.'<br>';



//por último mostramos el rollo

echo 'Rollo:<br>'.$user_ok["rollo"];




}else{

echo 'La id seleccionada no existe';

}

}

echo '<br><a href=paginaprivada.php>Ir a
pagina privada</a>';


echo '<br><a href=logout.php>Salir</a>';
//link para deslogearse, iría a logout.php



?>
  #2 (permalink)  
Antiguo 21/05/2011, 14:42
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 12 años, 10 meses
Puntos: 6
Respuesta: sistema de avatar en el sistema de usuario

Modifica la tabla creando el campo AVATAR
Código SQL:
Ver original
  1. CREATE TABLE `users` (
  2. `id` INT( 4 ) NOT NULL AUTO_INCREMENT,
  3. `nick` VARCHAR(30) NOT NULL ,
  4. `pass` VARCHAR(30) NOT NULL ,
  5. `email` VARCHAR(50) NOT NULL ,
  6. `avatar` VARCHAR(90) NOT NULL,
  7. `fecha` INT(15) NOT NULL ,
  8. `level` INT(2) NOT NULL ,
  9. `rollo` LONGTEXT NOT NULL ,
  10. INDEX ( `id` )
  11. );
Modifica el registro agregando el campo VATAR para que inserten la URL.
Reg.php
Código PHP:
Ver original
  1. <?
  2. include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
  3.  
  4. //Creamos el form k irá a registrar.php para comprobar y introducir los datos a la tabla users
  5. echo '<form action="registrar.php" method="POST">
  6. Nick: <input type="text" name="nick" size="30"><br>
  7. Password: <input type="password" name="pass" size="30" ><br>
  8. Repetir Password: <input type="password" name="pass1" size="30" ><br>
  9. email: <input type="text" name="email" size="50"><br>
  10. Rollo: <textarea name="rollo" cols="30" rows="10"></textarea><br>
  11. Avatar URL: <input type="text" name="avatar" size="90"><br>
  12. <input type="submit" name="submit" value="Enviar"></form>';
  13. ?>
Y cambiamos el registro:
Registrar.php
Código PHP:
Ver original
  1. <?
  2. include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
  3.  
  4. //Comprobamos que los campos nick, pass y pass1 se han rellenado en el form de reg.php, sino volvemos al form
  5. if(($_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
  6. {
  7. Header("Location: reg.php"); //enviamos al form de registro que esta en reg.php
  8. }else{
  9.  
  10. //Comprobamos que la pass y pass1 son iguales, sino, volvemos a reg.php
  11. if($_POST[pass] != $_POST[pass1])
  12. {
  13. echo 'Las passwords no son iguales';
  14. }else{
  15.  
  16. //quitamos el codigo malicioso de $_POST[nick] y $_POST[pass]
  17. $user = stripslashes($_POST["nick"]);
  18. $user = strip_tags($user);
  19. $pass = stripslashes($_POST["pass"]);
  20. $pass = strip_tags($pass);
  21. //comprobamos que el usuario no existe en la db
  22. $usuarios=mysql_query("SELECT nick FROM users WHERE nick='$user' ");
  23. if($user_ok=mysql_fetch_array($usuarios))
  24. {
  25. echo 'El usuario ya esta registrado';
  26. mysql_free_result($usuarios); //liberamos la memoria del query a la db
  27. }else{
  28. //quitamos todo el codigo malicioso de las demas variables del form de registro
  29. $email = stripslashes($_POST["email"]);
  30. $email = strip_tags($email);
  31.  
  32. $rollo = stripslashes($_POST["rollo"]);
  33. $rollo = strip_tags($rollo);
  34. $rollo = str_replace("\n\r","<br>",$rollo); //se cambian los saltos de linea por <br>
  35. $rollo = str_replace("\r\n","<br>",$rollo);
  36. $rollo = str_replace("\n","<br>",$rollo);
  37.  
  38. $avatar = stripslashes($_POST["avatar"]);
  39. $avatar  = strip_tags(avatar );
  40. $avatar  = str_replace("\n\r","",$avatar ); //se cambian los saltos de linea por NADA
  41. $avatar  = str_replace("\r\n","",$avatar );
  42. $avatar  = str_replace("\n","",$avatar );
  43.  
  44. $fecha = time();
  45. $level = "2"; //usaremos level 1 para admins, level 2 para los demas (se cambia manualmente desde phpmyadmin)
  46.  
  47. //introducimos el nuevo registro en la tabla users
  48. mysql_query("INSERT INTO users (avatar,nick,pass,email,fecha,level,rollo) values ('$avatar','$user','$pass','$email','$fecha','$level','$roll o') ");
  49. echo 'Usuario registrado con éxito';
  50. }
  51.  
  52. }
  53.  
  54. }
  55. ?>
Autentificar.php
Código PHP:
Ver original
  1. <?
  2. include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
  3.  
  4. if( ($_POST[nick] == ' ') or ($_POST[pass] == ' ') )//comprobamos que las variables enviadas por el form de login.php tienen contenido
  5. {
  6. Header("Location: login.php"); //estan vacías, volvemos al index
  7. }else{
  8.  
  9. //comprobamos en la db si existe ese nick con esa pass
  10. $usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' ");
  11. if($user_ok = mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index
  12. {
  13.  
  14. session_register("usuario"); //registramos la variable usuario que contendrá el nick del user
  15. session_register("idusuario"); //registramos la variable idusuario que contendrá la id del user
  16. session_register("level"); //registramos la variable level que contendrá el level del user
  17. session_register("avatar");//registramos el avatar
  18. //damos valores a las variables de la sesión
  19. $_SESSION[avatar] = $user_ok["avatar"];//Recojemos el dato avatar
  20. $_SESSION[usuario] = $user_ok["nick"]; //damos el nick a la variable usuario
  21. $_SESSION[idusuario] = $user_ok["id"]; //damos la id del user a la variable idusuario
  22. $_SESSION[level] = $user_ok["level"]; //damos el level del user a la variable level
  23. Header("Location: login.php"); //volvemos al login donde nos saldrá nuestro menú de usuario
  24.  
  25. }else{
  26. echo 'Nick y pass incorrectos';
  27. }
  28.  
  29. }
  30. ?>

Y para mostrar el AVATAR solamente pones
<img src="<?=$_SESSION[avatar]?>" alt="avatar no existe" />

Espero que sirva
  #3 (permalink)  
Antiguo 21/05/2011, 17:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: sistema de avatar en el sistema de usuario

en verdad Muchisimas Gracias
  #4 (permalink)  
Antiguo 21/05/2011, 17:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: sistema de avatar en el sistema de usuario

este codigo noce donde meterlo :

<img src="<?=$_SESSION[avatar]?>" alt="avatar no existe" />
  #5 (permalink)  
Antiguo 08/08/2011, 12:25
 
Fecha de Ingreso: agosto-2011
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: sistema de avatar en el sistema de usuario

Creo que lo tienes que meter en el usuario.php para que vea su imagen...

Etiquetas: avatar, sistema, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:34.