Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: den_22 en 27 Enero 2010, 17:37 pm



Título: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: den_22 en 27 Enero 2010, 17:37 pm
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


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 27 Enero 2010, 19:39 pm
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...


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: den_22 en 27 Enero 2010, 20:36 pm
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.


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 28 Enero 2010, 04:35 am
º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...


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: :ohk<any> en 28 Enero 2010, 15:07 pm
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


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: den_22 en 28 Enero 2010, 18:20 pm
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

Código:
<?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:
Código:
<?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


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 28 Enero 2010, 19:14 pm
guiarda con perfil.php, puede haber vulnerabilidad, lo posteas a si lo vemos?


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: den_22 en 28 Enero 2010, 19:58 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?


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 28 Enero 2010, 20:30 pm
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
  1. $cookie1 = substr(SHA1($username).md5($password), 12).md5($password);
  2. $cookie2 = base64_encode($username);
  3. //una cookie inhackeable:p almenos que la roben..
  4.  

despues en perfil que compruebe la cookie asi:
Código
  1. $usuario = base64_decode($cookie2);
  2. //ahora seleccionas los datos de la bbdd con user=$usuario
  3. $compruebacookie = substr(SHA1($row['user']).md5($row['pass']), 12).md5($row['pass'])
  4. if($cookie1==$compruebacookie){
  5. //perfil...
  6. }else{
  7. header("location: http://google.com");
  8. }
  9.  


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: den_22 en 28 Enero 2010, 21:12 pm
Código:
$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.


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: luiggy2 en 28 Enero 2010, 23:12 pm
Código:
$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.

Una vez que el usuario se ha logueado, las cookies que crearás son esas dos.

Código
  1. <?php
  2.  
  3. $cookie1 = substr(SHA1($username).md5($password), 12).md5($password);
  4. $cookie2 = base64_encode($username);
  5.  
  6. setcookie("cookie1", $cookie1);
  7. setcookie("cookie2", $cookie2);
  8. ?>
  9.  
  10. Saludos!
  11.  


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 29 Enero 2010, 01:03 am
es que no te lo di como para un copy/paste, sino tomalo como referencia, una pequeña referencia.

despues, en el segundo haces asi:
(ya este es otro fichero distinto
Código
  1. $cookie1 = $_COOKIE['cookie1'];
  2. $cookie2 = $_COOKIE['cookie2'];
  3.  

y asi queda todo declarado...


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: KrossPock en 29 Enero 2010, 02:41 am
Y pasa los datos por post y no por get entonces no aparece en la url (?


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 29 Enero 2010, 02:48 am
tambien, pero es lomismo, para probar vulnerabilidades es lo mismo solo que lleva mas tiempo...


Título: Re: Algun ejemplo de una pagina de perfil de usuarios?
Publicado por: Castg! en 29 Enero 2010, 04:54 am
ya sta el tema resuelto, lo arreglamos con den_22 por chat.