elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Perfil de un usuario, problema!
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 [3] 4 5 Ir Abajo Respuesta Imprimir
Autor Tema: Perfil de un usuario, problema!  (Leído 15,804 veces)
den_22

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Re: Perfil de un usuario, problema!
« Respuesta #20 en: 7 Marzo 2010, 05:13 am »

Acá posteo por las dudas el script del index.php


Código
  1. <?php
  2.  
  3.  
  4.  
  5. error_reporting(E_ALL ^ E_NOTICE);
  6.  
  7. define('INCLUDE_CHECK',true);
  8.  
  9. require("connect.php");
  10.  
  11.  
  12. //Archivos incluidos solo si el INCLUDE_CHECK está definido
  13.  
  14. session_name('pLogin');
  15. //Empezando la sesión
  16.  
  17. //La cookie vive por 2 semanas
  18.  
  19.  
  20. if($_SESSION['id'] && !isset($_COOKIE['pRemember']) && !$_SESSION['rememberMe'])
  21. {
  22. //Si está logueado, pero no tiene la cookie dmRemember (el navegador se reinicia)
  23. // y si no ha checkeado la rememberMe checkbox:
  24.  
  25. $_SESSION=array();
  26.  
  27. //Destruir la sesion
  28. }
  29.  
  30. if(isset($_GET['logoff']))
  31. {
  32. $_SESSION=array();
  33.  
  34. header("Location: index.php");
  35. }
  36.  
  37. if($_POST['submit']=='Ingresar')
  38. {
  39. //checando si el login form ha sido submit
  40. $err=array();
  41. //Tira los errores nuestros
  42.  
  43.  
  44. if(!$_POST['username'] || !$_POST['password'])
  45. $err[]='Todos los campos deben ser completados!';
  46.  
  47. if(!count($err))
  48. {
  49. $_POST['username']=mysql_real_escape_string($_POST['username']);
  50. $_POST['password']=mysql_real_escape_string($_POST['password']);
  51. $_POST['rememberMe']=(int)$_POST['rememberMe'];
  52.  
  53. //escaping all input data
  54.  
  55. $row=mysql_fetch_assoc(mysql_query("SELECT id,usuario FROM prueba WHERE usuario='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
  56.  
  57. if($row['usuario'])
  58. {
  59. //Si todo está logueado correctamente
  60.  
  61. //$_SESSION['username']=$row['user'];
  62. $_SESSION['usuario']=$row['usuario'];
  63. $_SESSION['id']=$row['id'];
  64. $_SESSION['sexo']=$row['sexo'];
  65. $_SESSION['rememberMe']=$_POST['rememberMe'];
  66.  
  67. //Store some data in the session
  68.  
  69. setcookie('dmRemember',$_POST['rememberMe']);
  70. }
  71. else $err[]='Usuario y/o Password incorrectos!';
  72. }
  73.  
  74. if($err)
  75. $_SESSION['msg']['login-err']=implode('<br />', $err);
  76. //Guardamos los mensajes de error en la sesion
  77.  
  78. header("Location: index.php");
  79. }
  80. else if($_POST['submit']=='Registrar')
  81. {
  82. //Si el formulario de registro ha sido enviado
  83.  
  84. $err=array();
  85. if(strlen($_POST['firstname'])>100)
  86. {
  87. $err[]='Tu nombre(s) debe tener menos de 100 caracteres!';
  88. }
  89.  
  90. if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
  91. {
  92. $err[]='Tu nombre(s) contiene caracteres inválidos!';
  93. }
  94.  
  95. if(strlen($_POST['lastname'])>100)
  96. {
  97. $err[]='Tu apellido debe tener menos de 100 caracteres!';
  98. }
  99.  
  100. if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['lastname']))
  101. {
  102. $err[]='Tu apellido contiene caracteres inválidos!';
  103. }
  104.  
  105. if(strlen($_POST['username'])<4 || strlen($_POST['username'])>100)
  106. {
  107. $err[]='Tu nombre de usuario debe tener entre 4 y 100 caracteres!';
  108. }
  109.  
  110. if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
  111. {
  112. $err[]='Tu nombre de usuario contiene caracteres invalidos!';
  113. }
  114.  
  115. if(strlen($_POST['password'])<6 || strlen($_POST['password'])>32)
  116. {
  117. $err[]='Tu contraseña debe tener entre 6 y 32 caracteres!';
  118. }
  119.  
  120. if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['password']))
  121. {
  122. $err[]='Tu contraseña es débil!';
  123. }
  124.  
  125. if($_POST['repassword']!=$_POST['password'])
  126. {
  127. $err[]='Tu repeticion de password es distinta de la primera!';
  128. }
  129.  
  130. if(!checkEmail($_POST['email']))
  131. {
  132. $err[]='Tu email no es válido!';
  133. }
  134.  
  135. if(!count($err))
  136. {
  137. //Si no hay errores
  138.  
  139. $_POST['email']=mysql_real_escape_string($_POST['email']);
  140. $_POST['password']=mysql_real_escape_string($_POST['password']);
  141. $_POST['username']=mysql_real_escape_string($_POST['username']);
  142. $_POST['firstname']=mysql_real_escape_string($_POST['firstname']);
  143. $_POST['lastname']=mysql_real_escape_string($_POST['lastname']);
  144. $_POST['sexo']=mysql_real_escape_string($_POST['sexo']);
  145. //Escape the input data
  146.  
  147.  
  148.  
  149. mysql_query(" INSERT INTO prueba(firstname,lastname,usuario,pass,email,sexo,dt)
  150. VALUES('".$_POST['firstname']."','".$_POST['lastname']."','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['email']."','".$_POST['sexo']."',NOW())");
  151.  
  152.  
  153. if(mysql_affected_rows($link)==1)
  154. {
  155. send_mail( 'test@test.com',
  156. $_POST['email'],
  157. 'Registración de prueba',
  158. 'Tu nombre de usuario es: '.$username.'\n Tu contraseña es: '.$password);
  159.  
  160.  
  161. $_SESSION['msg']['reg-success']='Te hemos enviado un email con tu información de registro!';
  162. }
  163. else $err[]='El nombre de usuario ya está en uso!';
  164. }
  165.  
  166. if(count($err))
  167. {
  168. $_SESSION['msg']['reg-err']=implode('<br />',$err);
  169. }
  170.  
  171. header("Location: index.php");
  172.  
  173.  
  174. }
  175.  
  176.  
  177.  
  178.  
  179. ?>


Ya cambié $usuario por $query. No sé que mas hacer,   :(


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Perfil de un usuario, problema!
« Respuesta #21 en: 7 Marzo 2010, 05:18 am »

intentalo así:
Código
  1. <?php
  2. include("function.php");
  3. include("getdata.php");
  4. include("connect.php");
  5.  
  6. if(isset($_GET['usuario'])){
  7. if($query = mysql_query("
  8.  SELECT * FROM prueba
  9.  WHERE usuario='".mysql_real_escape_string($_GET['usuario'])."'
  10.  LIMIT 1
  11. ")){
  12.  $usuario = mysql_fetch_array($query, MYSQL_ASSOC);
  13.  if(is_array($usuario[0])){
  14.   $usuario = $usuario[0];
  15.  }
  16.  echo '
  17.   Bienvenid@
  18.    <b>'.htmlspecialchars($usuario['usuario'], ENT_QUOTES).'</b>
  19.   <br />
  20.  ';
  21. }else{
  22.  echo 'El usuario seleccionado no existe';
  23. }
  24. }else{
  25. echo 'No se ha seleccionado ningun usuario.';
  26. }
  27. ?>

recuerda que  mysql_fetch_array() te entrega un array dimensional por cada resultado, por lo tantoo el primer valor es $usuario[0].
prueba con un print_r($usuario);

Donde dice:
Código:
if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
no necesitas ser tan restrictivo, puedes mantener todo tipo de carácteres si sabes procesarlos bién.

saludos.


« Última modificación: 7 Marzo 2010, 05:22 am por WHK » En línea

den_22

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Re: Perfil de un usuario, problema!
« Respuesta #22 en: 7 Marzo 2010, 05:32 am »

intentalo así:
Código
  1. <?php
  2. include("function.php");
  3. include("getdata.php");
  4. include("connect.php");
  5.  
  6. if(isset($_GET['usuario'])){
  7. if($query = mysql_query("
  8.  SELECT * FROM prueba
  9.  WHERE usuario='".mysql_real_escape_string($_GET['usuario'])."'
  10.  LIMIT 1
  11. ")){
  12.  $usuario = mysql_fetch_array($query, MYSQL_ASSOC);
  13.  if(is_array($usuario[0])){
  14.   $usuario = $usuario[0];
  15.  }
  16.  echo '
  17.   Bienvenid@
  18.    <b>'.htmlspecialchars($usuario['usuario'], ENT_QUOTES).'</b>
  19.   <br />
  20.  ';
  21. }else{
  22.  echo 'El usuario seleccionado no existe';
  23. }
  24. }else{
  25. echo 'No se ha seleccionado ningun usuario.';
  26. }
  27. ?>

recuerda que  mysql_fetch_array() te entrega un array dimensional por cada resultado, por lo tantoo el primer valor es $usuario[0].
prueba con un print_r($usuario);

Donde dice:
Código:
if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
no necesitas ser tan restrictivo, puedes mantener todo tipo de carácteres si sabes procesarlos bién.

saludos.


Bueno muchas gracias, por tomarte el trabajo, pero no hay forma, tal vez me haya olvidado de declarar $usuario. Es tarde y no me da la cabeza ya, jaja.

Por cierto es "no necesitas ser tan restrictiva" jaja, soy mujer.

Gracias, saludos
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Perfil de un usuario, problema!
« Respuesta #23 en: 7 Marzo 2010, 06:53 am »

es que mira... es un desorden

incluyes "function.php" aqui no hay problema, incluyes "getdata.php" y este a su vez connect.php, y mas abajo vuelves a incluir connect.php (esto en modificarperfil.php)

en getdata.php haces esto


Código
  1. <?php
  2.  
  3.  
  4.  
  5. include "connect.php";
  6.  
  7. $query=mysql_query("select * from prueba where usuario=$usuario");
  8. $getname=mysql_fetch_array($query); //linea 11 aqui esta el warning
  9.  
  10. $firstname=$getname["firstname"];
  11. $lastname=$getname["lastname"];
  12. $usuario=$getname["usuario"];
  13. $gender=$getname["genero"];
  14.  
  15.  
  16. ?>

usas $usuario antes de definirlo, ademas no lo encierras en comillas simples, esto es en las inclusiones xD (el orden que lleva en modificarperfil.php)

ahora en modificarperfil.php

Código
  1. <?php
  2.  
  3. include("function.php");
  4. include("getdata.php");
  5. include("connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
  6.  
  7. if(!isset($_GET['usuario'])){
  8. echo 'No se ha seleccionado ningun usuario.';
  9. }else{
  10.  
  11.  
  12. $query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
  13. if(mysql_num_rows($usuario)>0){
  14. $query=mysql_fetch_array($usuario);
  15.  
  16. //todo comprobado, ahora solo falta mostrar los datos
  17. echo 'Bienvenid@ <b>'.$usuario[usuario].'</b>
  18. ';
  19.  
  20.  
  21. }else{
  22.  
  23. echo 'El usuario seleccionado no existe';
  24. }
  25. }
  26. ?>

usas $usuario, que ya esta definido pero no encerrado entre comillas simples, y en las sig lineas, en vez de procesar la $query, que debería ser el parametro de mysql_num_rows() y mysql_fetch_array(), le pasas $usuario xD
En línea

Ojo por ojo, y el mundo acabará ciego.
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Perfil de un usuario, problema!
« Respuesta #24 en: 7 Marzo 2010, 15:38 pm »

realmente faltaría hacer todo el script denuevo


+1  ;-)
En línea

den_22

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Re: Perfil de un usuario, problema!
« Respuesta #25 en: 7 Marzo 2010, 16:57 pm »

Bueno Nakp, hice lo que dijiste. Te comento uso el ZendStudio, para hacer debug en el codigo.

Cambié en el modificarperfil.php:

Código
  1. <?php
  2.  
  3. include('function.php');
  4. include('getdata.php');
  5. include('connect.php'); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
  6.  
  7. if(!isset($_GET['usuario'])){
  8. echo 'No se ha seleccionado ningun usuario.';
  9. }else{
  10.  
  11.  
  12. $query=mysql_query("SELECT * FROM prueba WHERE usuario='$usuario' ");
  13. if(mysql_num_rows($query)>0){
  14. $query=mysql_fetch_array($query);
  15.  
  16. //todo comprobado, ahora solo falta mostrar los datos
  17. echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>';
  18.  
  19.  
  20. }else{
  21.  
  22. echo 'El usuario seleccionado no existe';
  23. }
  24. }
  25. ?>

En el getdata.php:

Código
  1. <?php
  2.  
  3.  
  4. include("connect.php");
  5.  
  6.  
  7. $query=mysql_query("select * from prueba where usuario='$usuario'");
  8. $getname=mysql_fetch_array($query);  //linea 11 aqui esta el warning
  9.  
  10. $usuario=$getname["usuario"];
  11. $firstname=$getname["firstname"];
  12. $lastname=$getname["lastname"];
  13. $gender=$getname["genero"];
  14.  
  15. ?>

Y el function.php:

Código
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. function getfname($usuario)
  7. {
  8. $query = mysql_query("select * from prueba where usuario='$usuario' ");
  9. $getname= mysql_fetch_array($query);
  10. $firstname= $getname["firstname"];
  11. return $firstname;
  12. }
  13.  
  14. function getlname($usuario)
  15. {
  16. $query =mysql_query("select * from prueba where usuario='$usuario' ");
  17. $getname= mysql_fetch_array($query);
  18. $lastname=$getname["lastname"];
  19. return $lastname;
  20. }
  21.  
  22.  
  23. function getusuario($usuario)
  24. {
  25. $query=mysql_query("select * from prueba where usuario='$usuario' ");
  26. $getname=mysql_fetch_array($query);
  27. $usuario=$getname["usuario"];
  28. return $usuario;
  29. }
  30.  
  31. function getgender ($usuario)
  32. {
  33. $query=mysql_query("select * from prueba where usuario='$usuario' ");
  34. $getname=mysql_fetch_array($query);
  35. $gender=$getname["Genero"];
  36. return $gender;
  37. }
  38.  
  39.  
  40.  
  41.  
  42. ?>

Ahora el problema es que al hacer el debug en modificarperfil, siempre salta la linea del "No se ha seleccionado ningun usuario", o sea creo que no sigue las lineas siguientes. Traté de quitarle al getdata el include ('connect.php') pero despues no se podia conectar. Y en el getdata, en la linea 7 un notice de Undefined variable,
Código
  1. $query=mysql_query("select * from  prueba where usuario='$usuario'");
.
Traté de definirlo mas arriba pero ni ahi.

Bueno gracias a todos.

realmente faltaría hacer todo el script denuevo


+1  ;-)

Castg! es lo que hay,  :-(
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Perfil de un usuario, problema!
« Respuesta #26 en: 7 Marzo 2010, 19:20 pm »

Bueno Nakp, hice lo que dijiste. Te comento uso el ZendStudio, para hacer debug en el codigo.

En el getdata.php:

Código
  1. <?php
  2.  
  3.  
  4. include("connect.php");
  5.  
  6.  
  7. $query=mysql_query("select * from prueba where usuario='$usuario'");
  8. $getname=mysql_fetch_array($query); //linea 11 aqui esta el warning
  9.  
  10. $usuario=$getname["usuario"];
  11. $firstname=$getname["firstname"];
  12. $lastname=$getname["lastname"];
  13. $gender=$getname["genero"];
  14.  
  15. ?>


te falta eso... estas usando usuario (primera linea resaltada) pero lo defines despues (segunda linea resaltada) el orden es importante :P
En línea

Ojo por ojo, y el mundo acabará ciego.
den_22

Desconectado Desconectado

Mensajes: 69



Ver Perfil
Re: Perfil de un usuario, problema!
« Respuesta #27 en: 7 Marzo 2010, 19:47 pm »

Nakp, igual dice undefined variable getname, lo puse de esta manera. Pero si ya está declarada en function. Voy a tirar la compu por la ventana
Código
  1. <?php
  2.  
  3.  
  4. include("connect.php");
  5.  
  6.  
  7. $usuario=$getname["usuario"];
  8. $query=mysql_query("select * from prueba where usuario='$usuario'");
  9. $getname=mysql_fetch_array($query);  
  10.  
  11.  
  12. $firstname=$getname["firstname"];
  13. $lastname=$getname["lastname"];
  14. $gender=$getname["genero"];
  15.  
  16. ?>
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Perfil de un usuario, problema!
« Respuesta #28 en: 7 Marzo 2010, 20:10 pm »

estas llamando una funcion o un vector?

creo que es
Código
  1. $usuario = gefname('usuario');

o

Código
  1. $usuario = $_POST['username'];

no se de donde sacas $getname hehe
En línea

Ojo por ojo, y el mundo acabará ciego.
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Perfil de un usuario, problema!
« Respuesta #29 en: 7 Marzo 2010, 20:20 pm »

Código
  1. $getname=mysql_fetch_array($query);

tenes un problema con la definicion de variables :S porq la usas y despues la definis. la primer variable $usuario la tenes que poner como yo te dije! y tambien nakp te lo dijo. una vez que hallas elegido el usuario, ahi consultas la base de datos y despues le das el valor a getname.
En línea

Páginas: 1 2 [3] 4 5 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Copiar perfil usuario
Redes
Ganejash 2 11,989 Último mensaje 29 Diciembre 2011, 08:39 am
por d3xf4ult
copiar los archivos de un usuario en el perfil usuario default en windows 7
Windows
Gea99 5 12,646 Último mensaje 13 Febrero 2012, 12:29 pm
por Gea99
Problema con el perfil del foro...
Sugerencias y dudas sobre el Foro
αиσиyмσυรCร 1 3,130 Último mensaje 21 Mayo 2013, 12:28 pm
por el-brujo
Windows XP inicia perfil usuario incorrectamente.
Windows
polmadur 3 2,436 Último mensaje 2 Julio 2014, 19:44 pm
por el-brujo
Así es el perfil del usuario adúltero de Ashley Madison en España
Noticias
el-brujo 0 2,045 Último mensaje 26 Agosto 2015, 17:39 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines