Autor
|
Tema: Perfil de un usuario, problema! (Leído 15,804 veces)
|
den_22
Desconectado
Mensajes: 69
|
Acá posteo por las dudas el script del index.php <?php require("connect.php"); //Archivos incluidos solo si el INCLUDE_CHECK está definido //Empezando la sesión //La cookie vive por 2 semanas if($_SESSION['id'] && !isset($_COOKIE['pRemember']) && !$_SESSION['rememberMe']) { //Si está logueado, pero no tiene la cookie dmRemember (el navegador se reinicia) // y si no ha checkeado la rememberMe checkbox: //Destruir la sesion } if(isset($_GET['logoff'])) { header("Location: index.php"); } if($_POST['submit']=='Ingresar') { //checando si el login form ha sido submit //Tira los errores nuestros if(!$_POST['username'] || !$_POST['password']) $err[]='Todos los campos deben ser completados!'; { $_POST['rememberMe']=(int)$_POST['rememberMe']; //escaping all input data if($row['usuario']) { //Si todo está logueado correctamente //$_SESSION['username']=$row['user']; $_SESSION['usuario']=$row['usuario']; $_SESSION['id']=$row['id']; $_SESSION['sexo']=$row['sexo']; $_SESSION['rememberMe']=$_POST['rememberMe']; //Store some data in the session setcookie('dmRemember',$_POST['rememberMe']); } else $err[]='Usuario y/o Password incorrectos!'; } if($err) $_SESSION['msg']['login-err']=implode('<br />', $err); //Guardamos los mensajes de error en la sesion header("Location: index.php"); } else if($_POST['submit']=='Registrar') { //Si el formulario de registro ha sido enviado if(strlen($_POST['firstname'])>100) { $err[]='Tu nombre(s) debe tener menos de 100 caracteres!'; } if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname'])) { $err[]='Tu nombre(s) contiene caracteres inválidos!'; } if(strlen($_POST['lastname'])>100) { $err[]='Tu apellido debe tener menos de 100 caracteres!'; } if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['lastname'])) { $err[]='Tu apellido contiene caracteres inválidos!'; } if(strlen($_POST['username'])<4 || strlen($_POST['username'])>100) { $err[]='Tu nombre de usuario debe tener entre 4 y 100 caracteres!'; } if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username'])) { $err[]='Tu nombre de usuario contiene caracteres invalidos!'; } if(strlen($_POST['password'])<6 || strlen($_POST['password'])>32) { $err[]='Tu contraseña debe tener entre 6 y 32 caracteres!'; } if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['password'])) { $err[]='Tu contraseña es débil!'; } if($_POST['repassword']!=$_POST['password']) { $err[]='Tu repeticion de password es distinta de la primera!'; } if(!checkEmail($_POST['email'])) { $err[]='Tu email no es válido!'; } { //Si no hay errores //Escape the input data mysql_query(" INSERT INTO prueba(firstname,lastname,usuario,pass,email,sexo,dt) VALUES('".$_POST['firstname']."','".$_POST['lastname']."','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['email']."','".$_POST['sexo']."',NOW())"); { send_mail( 'test@test.com', $_POST['email'], 'Registración de prueba', 'Tu nombre de usuario es: '.$username.'\n Tu contraseña es: '.$password); $_SESSION['msg']['reg-success']='Te hemos enviado un email con tu información de registro!'; } else $err[]='El nombre de usuario ya está en uso!'; } { $_SESSION['msg']['reg-err']=implode('<br />',$err); } header("Location: index.php"); } ?>
Ya cambié $usuario por $query. No sé que mas hacer,
|
|
|
En línea
|
|
|
|
WHK
|
intentalo así: <?php include("function.php"); include("getdata.php"); include("connect.php"); if(isset($_GET['usuario'])){ SELECT * FROM prueba LIMIT 1 ")){ $usuario = $usuario[0]; } echo ' Bienvenid@ <br /> '; }else{ echo 'El usuario seleccionado no existe'; } }else{ echo 'No se ha seleccionado ningun usuario.'; } ?>
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: 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
Mensajes: 69
|
intentalo así: <?php include("function.php"); include("getdata.php"); include("connect.php"); if(isset($_GET['usuario'])){ SELECT * FROM prueba LIMIT 1 ")){ $usuario = $usuario[0]; } echo ' Bienvenid@ <br /> '; }else{ echo 'El usuario seleccionado no existe'; } }else{ echo 'No se ha seleccionado ningun usuario.'; } ?>
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: 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
Mensajes: 6.336
he vuelto :)
|
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 <?php include "connect.php"; $query=mysql_query("select * from prueba where usuario=$usuario"); $firstname=$getname["firstname"]; $lastname=$getname["lastname"]; $usuario=$getname["usuario"]; $gender=$getname["genero"]; ?>
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 <?php include("function.php"); include("getdata.php"); include("connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión if(!isset($_GET['usuario'])){ echo 'No se ha seleccionado ningun usuario.'; }else{ $query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario "); //todo comprobado, ahora solo falta mostrar los datos echo 'Bienvenid@ <b>'.$usuario[usuario].'</b> '; }else{ echo 'El usuario seleccionado no existe'; } } ?>
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
Mensajes: 1.191
|
realmente faltaría hacer todo el script denuevo
+1
|
|
|
En línea
|
|
|
|
den_22
Desconectado
Mensajes: 69
|
Bueno Nakp, hice lo que dijiste. Te comento uso el ZendStudio, para hacer debug en el codigo. Cambié en el modificarperfil.php: <?php include('function.php'); include('getdata.php'); include('connect.php'); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión if(!isset($_GET['usuario'])){ echo 'No se ha seleccionado ningun usuario.'; }else{ $query=mysql_query("SELECT * FROM prueba WHERE usuario='$usuario' "); //todo comprobado, ahora solo falta mostrar los datos echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>'; }else{ echo 'El usuario seleccionado no existe'; } } ?>
En el getdata.php: <?php include("connect.php"); $query=mysql_query("select * from prueba where usuario='$usuario'"); $usuario=$getname["usuario"]; $firstname=$getname["firstname"]; $lastname=$getname["lastname"]; $gender=$getname["genero"]; ?>
Y el function.php: <?php function getfname($usuario) { $query = mysql_query("select * from prueba where usuario='$usuario' "); $firstname= $getname["firstname"]; return $firstname; } function getlname($usuario) { $query =mysql_query("select * from prueba where usuario='$usuario' "); $lastname=$getname["lastname"]; return $lastname; } function getusuario($usuario) { $query=mysql_query("select * from prueba where usuario='$usuario' "); $usuario=$getname["usuario"]; return $usuario; } function getgender ($usuario) { $query=mysql_query("select * from prueba where usuario='$usuario' "); $gender=$getname["Genero"]; return $gender; } ?>
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, $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
Mensajes: 6.336
he vuelto :)
|
Bueno Nakp, hice lo que dijiste. Te comento uso el ZendStudio, para hacer debug en el codigo. En el getdata.php: <?php include("connect.php"); $query=mysql_query("select * from prueba where usuario='$usuario'"); $usuario=$getname["usuario"]; $firstname=$getname["firstname"]; $lastname=$getname["lastname"]; $gender=$getname["genero"]; ?>
te falta eso... estas usando usuario (primera linea resaltada) pero lo defines despues (segunda linea resaltada) el orden es importante
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
den_22
Desconectado
Mensajes: 69
|
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 <?php include("connect.php"); $usuario=$getname["usuario"]; $query=mysql_query("select * from prueba where usuario='$usuario'"); $firstname=$getname["firstname"]; $lastname=$getname["lastname"]; $gender=$getname["genero"]; ?>
|
|
|
En línea
|
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
estas llamando una funcion o un vector? creo que es $usuario = gefname('usuario');
o $usuario = $_POST['username'];
no se de donde sacas $getname hehe
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Copiar perfil usuario
Redes
|
Ganejash
|
2
|
11,989
|
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
|
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
|
21 Mayo 2013, 12:28 pm
por el-brujo
|
|
|
Windows XP inicia perfil usuario incorrectamente.
Windows
|
polmadur
|
3
|
2,436
|
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
|
26 Agosto 2015, 17:39 pm
por el-brujo
|
|