Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Perfil de usuario

Estas en el tema de Perfil de usuario en el foro de PHP en Foros del Web. Hola a todos (a ti porque estas leyendo esto). Necesito crear un perfil en PHP. Miren, les explico: Cada usuario tiene su propio perfil. Por ...
  #1 (permalink)  
Antiguo 16/04/2014, 16:37
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Perfil de usuario

Hola a todos (a ti porque estas leyendo esto). Necesito crear un perfil en PHP. Miren, les explico:

Cada usuario tiene su propio perfil. Por ejemplo: www.siloleeserestonto.com/perfil.php=$id o algo asi.
La gente puede buscar usuarios y la bd comparara el user con la id y si coinciden, sacara el perfil del user que coincide.

Luego, dentro del perfil, habrá el nombre de usuario, debajo habrá el mail y en el margen izquierdo la foto de perfil:

😃😃😃😃😃😃😃 (usuario)
(Foto de perfil)😃😃 (mail)
😃😃😃😃😃😃😃

Espero que me haya explicado, cualquier aporte sirve, atentamente;
-OfSerker
  #2 (permalink)  
Antiguo 16/04/2014, 16:46
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 8 años, 9 meses
Puntos: 10
Respuesta: Perfil de usuario

cual es la pregunta? define y desarrollala en todo el espacio que tienes.

Lo que ya tienes hecho, codigo del mismo, dudas concretas
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #3 (permalink)  
Antiguo 16/04/2014, 16:50
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Respuesta: Perfil de usuario

Pregunto que si hay alguna forma de hacer lo quevhe escrito anteriormente. Necesito el codigo ya que soy nuevo y seguidamemte lo estudio y de esa forma apriendo.

Spam no, porfavor.

Atentamente, OfSerker

PD: En dentro de 10 horas respondere lo que habrais escrito. (Voy a dormir).
  #4 (permalink)  
Antiguo 16/04/2014, 17:18
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 8 años, 9 meses
Puntos: 10
Respuesta: Perfil de usuario

por queeeeeeeee

Tanto le cuesta al que pide ayuda aportar con una base para que el que quiera ayudar no tenga que hacer un interrogatorio antes de poder empezar a ayudar

A empezar con la rutina:
-Tienes ya una base de datos con una tabla que guarda los perfiles?

-Ya tienes "algo" hecho? algun código, una portada?

-Eres nuevo, pero nuevo es mucho, puedes estar trabajando a jornada completa de programador php durante 1 AÑO y no pasar de ser novato (experiencia, mi primer año fue terrible)...si no tienes unos conocimientos básicos como funciona la programación web, acude a un curso por favor....No vale de nada que te dejemos un codigo completo si no lo entiendes, no estamos para hacer el trabajo de otros sino para enseñar. entonces, cuanta experiencia tienes?

- enlaces que te expliquen lo que pides lo denominas spam?

Principalmente es saber si tienes una base de datos montada..

un saludo
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #5 (permalink)  
Antiguo 16/04/2014, 22:47
 
Fecha de Ingreso: febrero-2013
Mensajes: 78
Antigüedad: 10 años
Puntos: 0
Respuesta: Perfil de usuario

Lo que pides para mi actualmente es sumamente fácil de hacer .....

el dia q empeze como tu de novato no tenia de la mas minima idea de como hacerlo ya q recien estaba aprendiendo PHP , asi que busque tutoriales por internet y la verdad no encontraba unos buenos , solo tutos básicos con cosas simples ...

por ejemplo mandar el id en la url

perfil.php?nameuser=<?php echo $id; ?>

y luego recibia el id por metodo GET en una variable , luego mandaba una consulta ala BD y lo comparaba con todos los usuarios registrados haber si existia

si existia pues en una tabla bien creada ... sacabas todos los datos referentes a esa persona
que acaba de buscar en la base de datos que recoji por get ..

esa vez el perfil solo vi q mostraba nombre y apellido nada mas ... en el tuto q vi en internet



tuve q seguir buscando uno y otro tutorial del como poner foto de perfil , como crear divs , como poner fondos , como crear formularios , como crear tablas , como crear tipos de usuario ,
como poner pestañas en la tabla ( ya que yo asi lo queria )

en fin no encontre varias cosas como yo queria , sin embargo insisti y lograba sacar algo
y claro me la pasaba viendo cada linea del código para entender como se hacia ... me pasaba mas de 10 horas diarias ,,,fue la primera vez q la programacion web se me habia hecho un vicio tan grande ...

y si habian códigos del lenguaje que no sabia , osea q no entendia
pues yo googleaba para encontrar su funcion de este ...

la verdad que mi empeño por aprender fue realmente tremendo ...


no pedia ayuda defrente en un foro ... yo me mate buscando y aprendiendo ...
luego de unos casi 3 meses pude tener un perfil de usuario como yo queria todo completo

y todo lo hise ya sin necesidad de algun tutorial , por ejemplo :

Estas son las cosas que yo mismo cree sin necesidad de un tutorial

- Sistema de amigos
-Tipos de usuario ( administrador , usuario normal , usuario avanzado )
-Modificacion de datos de perfil
-Atributos para el usuario administrador
-Creacion de secciones desde un panel de opciones ( solo para el administrador )
-sistema de mensajeria ( una parte lo saque de internet y otra mitad le añadi yo )
-evitar alguna vulnerabilidad en códigos

todo esto lo logre tan
solo sabiendo las cosas básicas que ya habia aprendido en algunos tutoriales ,pude lograr hacer esto q acabo de mencionar ...

y se que tu tambien puedes hacerlo , pero necesitas poner un empeño tremendo

... pero te dare una ayuda .....
  #6 (permalink)  
Antiguo 16/04/2014, 23:17
 
Fecha de Ingreso: febrero-2013
Mensajes: 78
Antigüedad: 10 años
Puntos: 0
Respuesta: Perfil de usuario

Primero :

Para que sea vea mejor ordenado , en el inicio de tu página crea un href que sea ´´Miembros´´
entonces cuando des click que te lleve a un archivo PHP que se llame por ejemplo : usuarios.php

en el archivo usuarios.php empezaras poniendo tu código donde se listaran todos los usuarios que esten registrados en tu página
cosa que es muy fácil de hacer :

Código PHP:
Ver original
  1. $sql = " SELECT * FROM usuarios ";
  2. $guardar = mysql_query($sql);

y con un while sacas todos los datos de cada usuario que habra en la BD

Código PHP:
Ver original
  1. while($datos = mysql_fetch_assoc($guardar))
  2. {
  3. $nombre = $datos['nombre'];
  4. $apellido  = $datos['apellido'];
  5. $email  = $datos['email'];

Ahora creas una simple tabla ( si aun no sabes nada de tablas en html , entonces primero anda busca en internet todo sobre tablas en html

bueno asi es :

?>
Código HTML:
Ver original
  1. <table width="500" height="700" border="3" cellspacing="2" cellpadding="2">
  2. <tr>
  3. <td>Nombre </td>
  4. <td>Informacion</td>
  5. </tr>
  6.  
  7. <tr>
  8. <td>Nombre ; <a href="perfil.php?=nameuser=<?php echo $nombre ; ?> "> <?php echo $nombre; ?> </a> </td>
  9. <td>Apellido : <?php echo $apellido; ?> </br><br> Email : <?php echo $email; ?> </td>
  10. </tr>
  11.  
  12.  
  13. <?php
  14. }
  15. ?>
bueno repito si no sabes nada de tablas, anda googlea para q entiendas cosas básicas , aca solo te eh puesto un ejemplo sencillo ... tu puedes poner tu tabla y poner la información donde se te plasca ....


en el ejemplo que te di solo crea una tabla donde se listaran todos los usuarios de tu base de datos ..



Ahora algo muy necesario que tienes que aprender es esto :

´´Paginacion web ´´

por ejemplo tienes 1000 usuarios registrados , y nimodo que todos se vallan a mostrar en una sola página , necesitas que se muestren por ejemplo solo 10 por cada página ... y asi en cada página solo se muestren de 10 personas y asi hasta llegar ala ultima página ...

si no sabes esto tendras que buscar y aprender como se hace por internet ...


Bueno entonces cuando des click encima del nombre te llevara a otra página la cual sera el perfil del usuario :

en este caso sera llamado : perfil.php


en este archivo empesaras recibiendo por GET ... el valor de nameuser ...
donde estara el nombre del usuario que dimos click

quedo asi : perfil.php?nameuser=<?php echo $nombre; ?>

entonces en una variable guardas ese dato supongamos :

Código PHP:
Ver original
  1. $aquinombre = $_GET['nameuser'];

Ahora pasaras a hacer una consulta en la BD donde preguntaras si hay algun usuario con ese nombre

cosa que seria asi de fácil :

Código PHP:
Ver original
  1. $consulta = " SELECT * FROM usuarios WHERE nombre = '$aquinombre' " ;
  2. $guardo = mysql_query($consulta);
  3.  
  4. while($user = mysql_fetch_assoc($guardo))
  5. {
  6. $nombre = $user['nombre'];
  7. $apellido = $user['apellido'];
  8. $emaul $user['email'];
  9.  
  10.  
  11.  
  12. ?>


Ahora nuevamente crearas una tabla segun a tu gusto
y pondras los datos que acabas de sacar de esa persona

y lo pondras en tu tabla

por ejemplo asi



Código HTML:
Ver original
  1. <table width="1000" height="500" border="2" >
  2. <tr>
  3. <td>Foto : ( aqui poner una etiqueta <img src=" y la imagen si es que tienes en tu base de datos , necesitaras buscar en internet como subir imagenes a un servidor ) y eso lo aplicas fácilmente en tu perfil de usuario , por ejemplo una parte de la tabla que sea
  4. Subir avatar y ahi deberas tener todo el código para subir una imagen en un campo de la base de datos de ese usuario
  5. <td><?php $nombre;?></td></br><br>Apellido : <?php $apellido;?> </br><br>Email : >?php echo $email;?> </td>
  6. </tr>

Bueno esto fue algo realmente básico o sencillo para que te guies como ...hacerlo ..

queda en ti averiguar como hacer el resto de cosas que quieras poner en tu perfil de usuario

sea por ejemplo :

-Sistema de mensajeria :
-Un chat
-SIstema de amigos
-tipos de usuario
etc etc
  #7 (permalink)  
Antiguo 17/04/2014, 02:29
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Pregunta Respuesta: Perfil de usuario

Muchas gracias amigos. Gracias por decirme el codigo y por las recomendaciones que me habéis echo.
Mirad mi bd para dejarlo más claro:



Aqui os paso el login.php (para las variables de $_SESSION que se necesitan:

Código PHP:
<?php
session_start
();
require_once(
'./config/funciones.php');
conectar('x''x''x''x');

include(
"mantenimiento.php"); 

//Variables 
$username strip_tags($_POST['username']); 
$password strip_tags(sha1($_POST['password'])); 
  
$query mysql_query("SELECT * FROM users WHERE user='".mysql_real_escape_string($username)."' AND pass='".mysql_real_escape_string($password)."' "); 

if(
$existe mysql_fetch_object($query))  
{  
  if(
$existe->activado != 1) {  
    echo 
'Primero activa tu cuenta entrando a tu correo';  
}else{  
    
$_SESSION['logged'] = 'yes';  
    
$_SESSION['username'] = $username;  
    echo 
'<script>window.location="ofserker.php"</script>';  
}  
}else{  
    echo 
'El usuario y/o pass son incorrectos.';      
}
?>
Atentamente y con ganas de respuestas:
-OfSerker
  #8 (permalink)  
Antiguo 22/04/2014, 15:40
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Respuesta: Perfil de usuario

Hola a todos, tengo la necesidad que crear un perfil en perfil.php.

Vale, luego dentro, necesito hacer un $_GET de la id que identifica al usuario en la bd. La id esta guardada en la bd. No se como sacarla y hacer un $_GET.

Después, supongamos que ya vaya todo bien. Necesito una pantalla "perfil.php" que te muestre el usuario, el mail y la foto de perfil.

Gracias por leer esto. Atentamente, OfSerker
  #9 (permalink)  
Antiguo 23/04/2014, 06:34
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Pregunta Respuesta: Perfil de usuario

Gracias por la respuesta. Pero yo busco un codigo que cuando estes logueado con tu cuenta y vayas al Boton 'Mi Perfil'. Coja la id y vaya al perfil tuyo. No al del otro.

Atentamente, OfSerker.

P.D: Nadie me ayuda 😭
  #10 (permalink)  
Antiguo 23/04/2014, 09:23
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 8 años, 9 meses
Puntos: 10
Respuesta: Perfil de usuario

Aunque recomiendo separar funciones php del html, si lo tienes que hacer en un unico archivo....

Estas hablando del perfil del PROPIO usuario, no de algun otro usuario, no? Entonces olvidate del get.

En el login.php, aquí:
Crea una variable de session con la id, ah! y en la query, solo vas a esperar 1 resultado, entonces ponle LIMIT 1

Código PHP:
Ver original
  1. <?php
  2. require_once('./config/funciones.php');
  3. conectar('x', 'x', 'x', 'x');
  4.  
  5. include("mantenimiento.php");
  6.  
  7. //Variables
  8. $username = strip_tags($_POST['username']);
  9. $password = strip_tags(sha1($_POST['password']));
  10.  
  11. $query = mysql_query("SELECT * FROM users WHERE user='".mysql_real_escape_string($username)."' AND pass='".mysql_real_escape_string($password)."' LIMIT 1 ");
  12.  
  13. if($existe = mysql_fetch_object($query))  
  14. {  
  15.   if($existe->activado != 1) {  
  16.     echo 'Primero activa tu cuenta entrando a tu correo';  
  17. }else{  
  18.     $_SESSION['logged'] = 'yes';  
  19.     $_SESSION['uid'] = $existe->uid;  
  20.     $_SESSION['username'] = $username;
  21.     echo '<script>window.location="ofserker.php"</script>';  
  22. }  
  23. }else{  
  24.     echo 'El usuario y/o pass son incorrectos.';      
  25. }
  26. ?>

perfil.php seria lo siguiente, segun la lógica

Código PHP:
Ver original
  1. <?php
  2. //Incluyes la conexion a la base de datos
  3.  
  4. //Haces una query con los datos que necesitas de tu perfil
  5. $q = mysql_query("Select * FROM users WHERE uid='".$_SESSION['uid']."' LIMIT 1");
  6.  
  7. //Row contiene ahora todos los datos del usaurio
  8. $row = mysql_fetch_assoc($q);
  9.  
  10. //Y aqui haces el html de tu perfil
  11.  
  12. ?>
  13.  
  14.  
  15. <ul>
  16. <li><span>Nombre:</span><?=$row['user'] ?></li>
  17. <li><span>Correo:</span><?=$row['mail'] ?></li>
  18. <li><span>IP:</span><?=$row['ip'] ?></li>
  19. </ul>

Y ya está...puse esos 3 datos porque no conozco tu tabla perfil, pero se supone que la pregunta era como conseguir el id de usuario, lo que está respondido

un saludo
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #11 (permalink)  
Antiguo 23/04/2014, 13:45
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Pregunta Respuesta: Perfil de usuario

Tio, eres la re****a.
Mira, me gustaría que el perfil fuera público y mediante $_GET (puede ser "geteando" user o id, prefiero user). Que te de la misma información. Si eso ya la cambiare.

Esperando respuestas de ti, atentamente:
-OfSerker

  #12 (permalink)  
Antiguo 23/04/2014, 17:34
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 8 años, 9 meses
Puntos: 10
Respuesta: Perfil de usuario

Para no esperar una respuesta tuya (no es por ser impaciente, sino para que lo tengas ya) me imagino que tu quieres un perfil.php que, si tu usuario entra en el perfil de otra persona, vea los datos de otra persona, y si entra en su propio perfil pues que vea sus propios datos de manera publica.

Suponiendo que tienes una página, en la que estan listados los usuarios, y que cuando pinchas a un usuario te lleva a un enlace como este: miweb.com/perfil.php?uid=60

Donde 60 seria el id del usaurio en el que tu pinchas... (si necesitas saber como hacer un listado de usuarios avisa).

Pues entonces perfil.php seria lo siguiente. Para que cuando tenga sea "perfil.php?uid=60" muestre el perfil de id 60, y cuando sea "perfil.php" te muestre tu propio perfil publico

Código PHP:
Ver original
  1. <?php
  2.     //Incluyes la conexion a la base de datos
  3.  
  4.     //Miras si existe un $_GET, y sino existe pues es que está
  5.     //llamando al propio perfil
  6.     if(isset($_GET['uid']) && !empty($_GET['uid']) && is_numeric($_GET['uid']))
  7.         $uid = (int)$_GET['uid'];
  8.     else
  9.         $uid = $_SESSION['uid'];
  10.        
  11.    //Ojo: Por que no uso real_escape_string si estamos pasando un dato
  12.    //del $_GET a la query? Pues porque en el IF yo pregunte si es numerico
  13.    //Y si pasó he vuelto a definir el tipo de dato de $uid como integro, o sea numero
  14.    //$uid va ser un numero si o si ahora
  15.        
  16.     //Haces una query con los datos que necesitas de tu perfil
  17.     $q = mysql_query("Select * FROM users WHERE uid='".$uid."' LIMIT 1");
  18.      
  19.     //Row contiene ahora todos los datos del usaurio
  20.     $row = mysql_fetch_assoc($q);
  21.      
  22.     //Y aqui haces el html de tu perfil
  23.      
  24.     ?>
  25.      
  26.      
  27.     <ul>
  28.     <li><span>Nombre:</span><?=$row['user'] ?></li>
  29.     <li><span>Correo:</span><?=$row['mail'] ?></li>
  30.     <li><span>IP:</span><?=$row['ip'] ?></li>
  31.     </ul>

Listo
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos

Última edición por Qazser; 23/04/2014 a las 17:41
  #13 (permalink)  
Antiguo 24/04/2014, 10:51
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Respuesta: Perfil de usuario

Muchas gracias, marco el tema como solucionado :'D
  #14 (permalink)  
Antiguo 25/04/2014, 06:26
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 8 años, 10 meses
Puntos: 2
Pregunta Respuesta: Perfil de usuario

Mira, quiero que logueado entres en perfil.php y haya un boton que te llebe a form.html. Luego seleccionas una foto y la url la insertara en la bd. Buscando el user y en su tabla, el apartado foto, este la url de la imagen.

Luego en perfil.php seleccione el user con el que has iniciado sesion y buscas en la bd el apartado foto y ponga:

Código PHP:
<?php
$user
$_SESSION['user'];
$fotoSELECT FROM users WHERE foto="";
?>
<img url="<?$foto?>";
No se como seleccionar el user $user. Despues ya mostrará la imagem en perfil.php

Necesito ayuda, esperando respuestas, atentamente:
-OfSerker

Etiquetas: perfil, 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 02:13.