Perfil de un usuario, problema!

Iniciado por den_22, 5 Marzo 2010, 04:44 AM

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

den_22

Bueno ahora modifiqué algunas cosas y al hacer el debug, va bien,pero...
Ahora comento lo que pasa.

El modificarperfil.php:

Código (php) [Seleccionar]
<?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' ");
if(
mysql_num_rows($query)>0){
$query=mysql_fetch_array($query);
 
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>';
 
 
}else{
 
echo 
'El usuario seleccionado no existe';
}
}
?>



El getdata.php:

Código (php) [Seleccionar]
<?php
 
 
 
include("connect.php");


$usuario=getusuario('usuario');
$query=mysql_query("select * from prueba where usuario='$usuario'");
$getusuario=mysql_fetch_array($query);


$firstname=getfname('firstname');
$lastname=getlname('lastname');
$gender=getgender('Genero');
 
?>


El function.php:

Código (php) [Seleccionar]
<?php


function getfname($usuario)
{
$query mysql_query("select * from prueba where usuario='$usuario'");
$getnamemysql_fetch_array($query);
$firstname$getname["firstname"];
return $firstname;
}

function 
getlname($usuario)
{
$query =mysql_query("select * from prueba where usuario='$usuario' ");
$getnamemysql_fetch_array($query);
$lastname=$getname["lastname"];
return $lastname;
}


function 
getusuario($usuario)
{
$query=mysql_query("select * from prueba where usuario='$usuario' ");
$getname=mysql_fetch_array($query);
$usuario=$getname["usuario"];
return $usuario;
}

function 
getgender ($usuario)
{
$query=mysql_query("select * from prueba where usuario='$usuario' ");
$getname=mysql_fetch_array($query);
$gender=$getname["Genero"];
return $gender;
}




?>



Lo que pasa es que ahora ya no hay errores en el getdata, pero en el modificarperfil, al llegar a la linea del if(!isset($_GET['usuario'])){  siempre en el No se ha seleccionado ningun usuario, por lo que no sigue  el }else{.

Y si pongo
Código (php) [Seleccionar]
if(!isset($_SESSION['usuario'])){
echo 'No se ha seleccionado ningun usuario.';
}else{

O sea es como que no pasa el else.


Gracias a todos los que han contestado.  ;-)

Castg!

a ver asi:

modificarperfil.php :

Código (php) [Seleccionar]
<?php
 
$usuario 
$_GET['usuario'];

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($usuario)){

echo 
'No se ha seleccionado ningun usuario.'

}else{ 

$query=mysql_query("SELECT * FROM prueba WHERE usuario='$usuario' ");

if(
mysql_num_rows($query)>0){

$query=mysql_fetch_array($query);
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$query['usuario'].'</b><br>'

}else{

echo 
'El usuario seleccionado no existe';

}
}
?>



getdata.php :

Código (php) [Seleccionar]
<?php
$query
=mysql_query("select * from prueba where usuario='$usuario'");
$getusuario=mysql_fetch_array($query);
$firstname=getfname('firstname');
$lastname=getlname('lastname');
$gender=getgender('Genero');
?>


functions.php :

Código (php) [Seleccionar]
<?php
 
 
function getfname($usuario)
{
$query mysql_query("select * from prueba where usuario='$usuario'");
$getnamemysql_fetch_array($query);
$firstname$getname["firstname"];
return $firstname;
}
 
function 
getlname($usuario)
{
$query =mysql_query("select * from prueba where usuario='$usuario' ");
$getnamemysql_fetch_array($query);
$lastname=$getname["lastname"];
return $lastname;
}
 
function 
getgender ($usuario)
{
$query=mysql_query("select * from prueba where usuario='$usuario' ");
$getname=mysql_fetch_array($query);
$gender=$getname["Genero"];
return $gender;
}
?>



ahi te tiene que andar. primero saque un include repetido. segundo saque la funcion getusuario que es en vano porq devuelve el mismo resultado.

den_22

Castg! muchas gracias por responder, te comento todo bien, pero el problema con esto es que el $usuario=$_GET['usuario']  del modificarperfil.php dice undefined index:usuario.
Mas atras en una respuesta que di puse mi index, en el que hacen login, tal vez tenga algo que ver.
El problema está en eso.
Igual si no sale ya fue.

Gracias nuevamente.

Castg!

llamalo asi: modificarperfil.php?usuario=den_22

leiste el libro que te recomende??

den_22

Bueno primero que nada tengo que agradecerle a Castg!, que me ayudó.
Ahora tengo un problemita mas, el tema es que en vez de mostrarme todos los datos de la bd, me muestra solo el que dice Nombre de usuario.

Acá los codigos como quedaron:

modificarperfil.php:

Código (php) [Seleccionar]
<?php

session_name
('pLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
 
$usuario $_SESSION['usuario'];
 
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($usuario)){
 
echo 
'No se ha seleccionado ningun usuario.'
 
}else{ 
 
$query=mysql_query("SELECT * FROM prueba WHERE usuario='$usuario' ");
 
if(
mysql_num_rows($query)>0){
 
$query=mysql_fetch_array($query);
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$query['usuario'].'</b><br>'
 
}else{
 
echo 
'El usuario seleccionado no existe';
 
}
}
?>



y la parte del html del modificarperfil.php:

Código (php) [Seleccionar]
<table><form method=post action="update_cuenta.php">
<tr><td>Nombre(s):</td><td><input type="text" name="firstname"  id="firstname" value=" <?php echo $firstname;?> " /></td></tr>
<tr><td>Apellido:</td><td><input type="text" name="lastname"  id="lastname" value=" <?php echo $lastname;?> " /></td></tr>
<tr><td>Nombre de usuario:</td><td><input type="text" id="username" name="username" value=" <?php echo $usuario;?> " /></b></td></tr>
<tr><td>Genero:</td><td><input type="text" name="genero" value="<?php echo $gender;?> " /></td></tr>
<tr><td></td>
<td><input type=submit value=Update></td></tr>
</form></table>



Que pudo haber pasado?

cassiani

Es un dolor de cabeza ese code, creas tres funciones con la misma rutina, cuando puedes usar una sola para todo pasandole un parámetro nada mas, el nombre del usuario y el tipo de dato a devolver.

$firstname=getfname('firstname');
$lastname=getlname('lastname');
$gender=getgender('Genero');


son los valores firstname, lastname, Genero los nombres de usuario?

den_22

Ya lo arreglé en vez de <?php echo $firstname;?> era <?php echo $query[firstname];?>

den_22

Hola!, siguiendo con el hilo del post, tengo otras dudas que aclarar. Digamos que el modificarperfil ya muestra los datos de la bd, ahora estoy tratando de hacer el update_cuenta.php y en el perfil.php, que aparezcan luego esos datos que se modificaron, igual si ya está el nombre de usuario de la bd estoy probando si aparece en el perfil.php.

Los codigos :

update_cuenta.php:

Código (php) [Seleccionar]
<?

include('connect.php'); //incluimos el config.php que contiene los datos de la conexi&oacute;n a la db
include('function.php');
include('getdata.php')

$firstname=$query['firstname'];
$lastname=$getname['lastname'];


//introduccimos la modificacion hecha por el usuario



mysql_query("
UPDATE prueba
SET firstname='$firstname',
lastname='$lastname',

WHERE usuario='$_SESSION[usuario]' ");
echo '<div class="Estilo7">Datos Guardados con éxito</div>';





?>



y el perfil.php:

Código (php) [Seleccionar]
<?php
error_reporting
(E_ALL E_NOTICE);

session_name('pLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();
include(
"connect.php");
include(
"function.php");
include(
"getdata.php");



?>


en el html del perfil:

Código (php) [Seleccionar]
<td width="178">Nombre:</td>
  <td width="158"><?php echo $query['firstname'];?></td>
  </tr>

Castg!

osea, hay que usar $_POST o sino $_REQUEST pero me decis que te sigue sin funcionar :S

den_22

Si, no hay forma de hacerlo andar, ya probé con los dos.