Foros del Web » Programando para Internet » PHP »

Condicional en el perfil de usuario

Estas en el tema de Condicional en el perfil de usuario en el foro de PHP en Foros del Web. Acabo de hacer un sistema de usuarios, php y mysql. Lo he probado: registrarse, logearse y demás y funciona. Ahora estoy con el tema perfil ...
  #1 (permalink)  
Antiguo 25/01/2012, 12:46
 
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 127
Antigüedad: 12 años, 8 meses
Puntos: 2
Condicional en el perfil de usuario

Acabo de hacer un sistema de usuarios, php y mysql.

Lo he probado: registrarse, logearse y demás y funciona.

Ahora estoy con el tema perfil de usuario. Actualmente, en el perfil de cada usuario aparece su nick, email y demás. Mi intención es conseguir esto:

El usuario inicia sesión, y navegando por la web se encuentra una página con un formulario enlazado a un condicional if. Entonces este usuario introduce unos determinados valores en el formulario y el condicional se cumple (true), dándole el respectivo mensaje. Automáticamente, en su perfil propio se inserta una imagen predeterminada para ese condicional, que indica que ese usuario lo ha cumplido.
¿Cómo podría hacer eso?

Gracias
  #2 (permalink)  
Antiguo 25/01/2012, 14:14
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Condicional en el perfil de usuario

Hola,

Podrías usar un campo en la tabla de usuarios que indique si ha completado el formulario o no. Un campo booleano que esté en false al registrarse y actualices a true luego de procesar el formulario.

- Cuando ingresa el usuario, buscás si lo completó y si no es así le mostrás el formulario.
- Cuando otro usuario ingresa a un perfil, buscás si el dueño del perfil lo completó y si es así, mostrás la imagen.

Saludos.
  #3 (permalink)  
Antiguo 25/01/2012, 15:13
 
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 127
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Condicional en el perfil de usuario

Gracias por contestar. El esquema que comentas es lo que busco, el primer guión no me hace falta, pero he intentado y no consigo hacerlo... no tengo tantos conocimientos de php.

Se me ha ocurrida hacer un condicional en el archivo del perfil
Código PHP:
session_start(); 
    include(
'acceso.php'); 
    include(
'form.php'); 
$perfil mysql_query("SELECT * FROM usuarios WHERE usuario_id='".$_GET['id']."'") or die(mysql_error()); 
    if(
mysql_num_rows($perfil)) { 
        
$row mysql_fetch_array($perfil); 
        
$id $row["usuario_id"]; 
        
$nick $row["usuario_nombre"]; 
        
$email $row["usuario_email"]; 
        
$freg $row["usuario_freg"]; 

if (
$form == TRUE) {
    echo 
"<img src=\"link de la imagen">" ;
} else { 
He pensado con eso que si el condicional del formulario form.php cuya referencia es $form el usuario registrado lo hace TRUE se imprima la imagen en su perfil.

No se si es posible o si lo que se me ha ocurrido no sirve.
Si no sirve, a ver si me puedes dar más info del booleano porque he buscado pero no termino de entenderlo.

Gracias
  #4 (permalink)  
Antiguo 25/01/2012, 15:21
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Condicional en el perfil de usuario

Estás cerca. Asumo que $_GET['id'] contiene el ID del usuario del perfil. Lo de booleano es simplemente un campo que puede ser true (verdadero) o false (falso). Lo podés lograr también con un campo numérico (1 o 0).

En la tabla usuarios, agregás un campo, por ejemplo, "formulario" tipo "Boolean".

Luego, en tu código, sería cuestión nada más de agregar lo siguiente:

Código PHP:
session_start();  
    include(
'acceso.php');  
    include(
'form.php');  
$perfil mysql_query("SELECT * FROM usuarios WHERE usuario_id='".$_GET['id']."'") or die(mysql_error());  
    if(
mysql_num_rows($perfil)) {  
        
$row mysql_fetch_array($perfil);  
        
$id $row["usuario_id"];  
        
$nick $row["usuario_nombre"];  
        
$email $row["usuario_email"];  
        
$freg $row["usuario_freg"];  
        
$form $row["formulario"];  

if (
$form == TRUE) { 
    echo 
"<img src=\"link de la imagen\">" 

Finalmente, en el script que procesa tu formulario, si todo ha salido bien, deberías agregar:

Código PHP:
mysql_query("update usuarios set formulario=true where usuario_id='".$el_id_del_usuario."'"); 
Claro, cambiando el_id_del_usuario por la variable que tenga dicho dato.

Saludos.
  #5 (permalink)  
Antiguo 26/01/2012, 05:29
 
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 127
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Condicional en el perfil de usuario

Lo he intentado pero no funciona. Yo creo que hay un problema en el tema sesiones.

Inserto en cada página el session start pero no suele mostrar al usuario identificado

Código PHP:
<?php 
    session_start
(); 
    include(
'acceso_db.php'); 
?>
Código PHP:
<?php 
    
if(isset($_SESSION['usuario_nombre'])) { 
?> 
        Bienvenido: <a href="perfil.php?id=<?=$_SESSION['usuario_id']?>"><strong><?=$_SESSION['usuario_nombre']?></strong></a><br /> 
        <a href="logout.php">Cerrar Sesión</a> 
<?php 
    

?>
Entonces por mucho que el condicional se cumpla no creo que tenga repercusión en la BD y en el perfil.
  #6 (permalink)  
Antiguo 26/01/2012, 08:53
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Condicional en el perfil de usuario

en que momento le asignas un valor a la variable de Sesion??

ahi veo que solo inicias sesion, y luego preguntas si existe.. pero nunca le asignas un valor... o estoy viendo mal?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 28/01/2012, 09:07
 
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 127
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Condicional en el perfil de usuario

Ves bien. No domino mucho el tema, pensaba que solo se necesitaba el session start.
No sé si te refieres a un session_name('') antes del sesion start.

Si me podrías explicar lo que le falta te lo agradecería!
  #8 (permalink)  
Antiguo 28/01/2012, 09:24
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Condicional en el perfil de usuario

loncho_rojas se refiere a que en el momento que el login es correcto deberias llenar los datos de session con los datos del usuario.

Si no lo estas haciendo en ningún momento, $_SESSION['usuario_nombre'] no queda definido y el condicional te va a resultar siempre falso.

Veo que tambien utilizar $_SESSION['usuario_id'], te recomiendo utilizar el siguiente formato para que te sea mas simple el mantenimiento :

$_SESSION['usuario']['id']
$_SESSION['usuario']['nombre']
$_SESSION['usuario']etc ....

saludos

Etiquetas: condicional, formulario, mysql, perfil, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.