Autor
|
Tema: Algun ejemplo de una pagina de perfil de usuarios? (Leído 11,477 veces)
|
den_22
Desconectado
Mensajes: 69
|
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
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
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...
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
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.
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
º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 ) 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 no pensaba hacer todo el code yo jajajajj.. suerte y espero poder ayudarte...
|
|
|
En línea
|
|
|
|
:ohk<any>
Desconectado
Mensajes: 1.744
Yo lo que quiero que me salga bien es la vida.
|
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
|
|
|
En línea
|
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
Desconectado
Mensajes: 69
|
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ó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{ // ¿Coinciden las contraseñas? if($password!=$cpassword) { echo "Las contraseñas no coinciden"; }else{ // Comprobamos si el nombre de usuario o la cuenta de correo ya existí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
|
|
« Última modificación: 28 Enero 2010, 18:57 pm por den_22 »
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
guiarda con perfil.php, puede haber vulnerabilidad, lo posteas a si lo vemos?
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
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?
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
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 //una cookie inhackeable:p almenos que la roben..
despues en perfil que compruebe la cookie asi: //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"); }
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
$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.
|
|
|
En línea
|
|
|
|
|
|