Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/05/2011, 14:42
tete_de
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 13 años, 5 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