Algun ejemplo de una pagina de perfil de usuarios?

Iniciado por den_22, 27 Enero 2010, 17:37 PM

0 Miembros y 1 Visitante están viendo este tema.

den_22

Hola! Queria preguntar si alguno de ustedes no tiene un ejemplo sobre cómo hacer una página de perfil de usuarios, o sea que cuando el usuario inicie sesión sea redirigido a un perfil que deba completar.

Alguna sugerencia?


Gracias


den_22

Castg!

que quers decir con que inicie sesion y complete unperfil, no sera en el registro que lo complete??
vos eras el del problema de xampp no?
para hacer un perfil de usuarios tenes que usar una base de datos con unba tabla por ejemplo "perfil" y columnas por ejemplo "nombre" "apellido" "usuario" "nick" "avatar"(guarda con xss) "web" "email" "telefono" "edad" "mensajero" "localidad" "sexo" y si es tipo un foro "mensajes", despues oslo basta con consultar e imprimir los resultados, el diseño ya te toca a vos...

den_22

Claro el tema es que en el registro, puse datos como Nombre de usuario, password,y el email.Para no hacerlo tan largo.
Lo que yo quiero saber es como hacer que cuando inicie sesión el usuario, lo mande a una pagina donde pueda completar más datos.

Gracias.

Castg!

ºosea como si fuese el primer login?
pones algo asi.
imaginemos:
el formulario de logeo tiene como action la pagina "log1.php"
ahora el log1.php carga un primer dato, osea, en la base de datos, en la tabla users tenes todas las columnas que te dige antes (le cambie el nombre a la tabla :P) mas una columna mas por ejemplo "primerlog".

cuando el usuario se registra y completa los primeros datos, se cargan los datos principales mas un dato en esa columna con el valor true... ahora, volviendo al logeocomprueba si el valor de primerlog es true, entonces carga nomas los datos principales y redirecciona a una pagina para completarlos, pero si este valor es false, carga a su perfil completito completito.

ahora te toca codear a vos :D:D  no pensaba hacer todo el code yo jajajajj.. suerte y espero poder ayudarte...

:ohk<any>

De todas formas el ejemplo de Castg es valido, a pesar de que no siempre el usuario llena su perfil en la primera ves, al menos no todos, cuando uno se suscribe normalmente es por obligacion del sitio y porque necesita algo que tu le ofreces, por lo cual prefiere no llenar sus datos, en este caso el sistema de sesion deberia enviarlo a editar su perfil en caso de que algun campo "especifico" u obligatorio no este llenado, asi sea un poco molesto, debería ser asi.

O quiza en ves de forzarlo a llenar sus datos deberias sugerirle siempre que debe completarlos, mediante algun popup o algo que no sea muy molesto y problema resuelto.
Si tienes problemas con la codificacion del sistema de sesion, puedes buscar en google scripts en php para login y eso hay bastantes.

Saludos
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

den_22

#5
Bueno gracias por responder, digamos mi idea es hacer la tabla de usuarios, con los campos "username","password", "email"; y ponerle más campos, es decir, que cuando se registre y vaya a su perfil, pueda completar más datos, y que éstos se actualicen, mediante un UPDATE.

Será posible?


Acá está el codigo de registro.php

<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='usuario_bd';
$dbuserpass='password_bd';
$dbname='bd_name';
// Conexi&oacute;n a la base de datos
mysql_connect("localhost""usuario_bd","password_bd" ) or die(mysql_error());
mysql_select_db("nombre_tabla" ) or die(mysql_error());

// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["username"] ) ) {
$username $_POST["username"];
$password md5 ($_POST["password"]);
$cpassword md5 ($_POST["cpassword"]);
$email $_POST["email"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
echo 
"Hay campos vacíos";
}else{
// &iquest;Coinciden las contrase&ntilde;as?
if($password!=$cpassword) {
echo 
"Las contraseñas no coinciden";
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
$checkuser mysql_query("SELECT username FROM users WHERE username='$username'" ) ;
$username_exist mysql_num_rows($checkuser);

$checkemail mysql_query("SELECT email FROM users WHERE email='$email'" ) ;
$email_exist mysql_num_rows($checkemail);

if (
$email_exist>0|$username_exist>0) {
echo 
"EL nombre de usuario o la cuenta de correo estan ya en uso";
}else{
//Todo parece correcto procedemos con la inserccion
$query "INSERT INTO users (username, password, email) VALUES('$username','$password','$email')";
mysql_query($query) or die(mysql_error());
echo 
"El Usuario $username ha sido registrado de manera satisfactoria. Ahora puedes iniciar sesion";
}
}
}
}
?>



Y el de login:
<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='usuario_bd';
$dbuserpass='password_bd';
$dbname='bd_name';

// Conectar a la base de datos
mysql_connect("localhost""usuario_bd","password_bd" ) or die(mysql_error());
mysql_select_db("nombre_tabla" ) or die(mysql_error());

if (
$_POST['username'] ) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if (
$password==NULL) {
echo 
"Debes escribir el password";
}else{
$password=md5($_POST['password']);
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'" ) or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) {
echo 
"Usuario o contraseña incorrectos, si todavia no eres usuario puedes registrarte<a href='http://localhost/index/registro.html'> Aqui</a>";
}else{
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'" ) or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo 
'<META HTTP-EQUIV="Refresh" CONTENT="3; URL=http://localhost/index/perfil/perfil.php?user='.$username.'"> '
}
}
}
?>



den_22

Castg!

guiarda con perfil.php, puede haber vulnerabilidad, lo posteas a si lo vemos?

den_22

Cita de: Castg! en 28 Enero 2010, 19:14 PM
guiarda con perfil.php, puede haber vulnerabilidad, lo posteas a si lo vemos?

Recien tengo una pagina perfil.php que no tiene diseño ni nada, pero una de las cosas que queria saber es si se puede cambiar el tema de que cuando redirije a perfil.php
lo hace de la forma http://localhost/index/perfil/perfil.php?user=xxxx, por lo tanto hay forma de que en vez de user, sea id?, porque sino cualquier persona podrá cambiar la url e ingresar y editar el perfil de otro usuario.

Ahora se puede hacer lo que mencioné anteriormente de la tabla?, que se actualicen más adelante cuando el usuario se haya registrado?

Castg!

primero te recomiendo que hagas algo como header("location: perfil.php?user=$username"); ese mejor y mas rapido.

segundo esta muy vulnerable el codigo, si yo me pongo una cookie ocn el user que quiera y aestaria logeado :S te recomiendo que hagas asi

Código (php) [Seleccionar]

$cookie1 = substr(SHA1($username).md5($password), 12).md5($password);
$cookie2 = base64_encode($username);
//una cookie inhackeable:p almenos que la roben..


despues en perfil que compruebe la cookie asi:
Código (php) [Seleccionar]

$usuario = base64_decode($cookie2);
//ahora seleccionas los datos de la bbdd con user=$usuario
$compruebacookie = substr(SHA1($row['user']).md5($row['pass']), 12).md5($row['pass'])
if($cookie1==$compruebacookie){
//perfil...
}else{
header("location: http://google.com");
}

den_22

$cookie1 = substr(SHA1($username).md5($password), 12).md5($password);
$cookie2 = base64_encode($username);
//una cookie inhackeable:p almenos que la roben..


Donde pongo esto?, porque me tira error.

Gracias y disculpá las molestias.