Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Que no se vean los perfiles de los otros usuarios y que se vea nombre de usuario

Estas en el tema de Que no se vean los perfiles de los otros usuarios y que se vea nombre de usuario en el foro de PHP en Foros del Web. Hola, simplemente deseo saber si me pueden orientar respecto a mi duda: En mi sitio web ingresan los usuarios sin problemas, acceden a su perfil, ...
  #1 (permalink)  
Antiguo 26/06/2013, 02:09
Avatar de Mosiah16  
Fecha de Ingreso: abril-2010
Ubicación: Antofagasta
Mensajes: 70
Antigüedad: 14 años
Puntos: 1
Que no se vean los perfiles de los otros usuarios y que se vea nombre de usuario

Hola, simplemente deseo saber si me pueden orientar respecto a mi duda:

En mi sitio web ingresan los usuarios sin problemas, acceden a su perfil, pero necesito saber como bloquear para que no puedan ver otros perfiles, por ejemplo mi perfil está en: perfil.php?id=3

Pero si lo cambio por perfil.php?id=2, entro directamente a otro perfil y puedo ver sus datos sin problemas, el código de perfil.php es el siguiente:

Código PHP:
<?php 
    session_start
(); 
    include(
'config/acceso_db.php'); 
    
$perfil mysql_query("SELECT * FROM usuarios WHERE usuario_id='".$_GET['id']."'") or die(mysql_error()); 
    if(
mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada 
        
$row mysql_fetch_array($perfil); 
        
$id $row["usuario_id"]; 
        
$nick $row["usuario_nombre"]; 
        
$email $row["usuario_email"]; 
        
$freg $row["usuario_freg"]; 
?> 
        <strong>Nombre de Cliente:</strong> <?=$nick?><br /> 
        <strong>Email:</strong> <?=$email?><br /> 
        <strong>Registrado el:</strong> <?=$freg?><br /> 
        <strong>URL del perfil:</strong> <a href="perfil.php?id=<?=$id?>">Click aquí</a> 
<?php 
    
}else { 
?> 
        <p>El perfil seleccionado no existe o ha sido eliminado.</p> 
<?php 
    

?>
También me gustaría saber como otorgar un nombre de usuario al siguiente codigo, porque me estoy logeando con el email, pero quiero que aparezca el nombre de usuario en el mensaje de bienvenida en ves del email:

Código PHP:
<?php 
    session_start
(); 
    include(
'config/acceso_db.php'); 
    if(isset(
$_POST['enviar'])) { // comprobamos que se hayan enviado los datos del formulario 
        // comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos 
        
if(empty($_POST['usuario_email']) || empty($_POST['usuario_clave'])) { 
            echo 
"El email o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>"
        }else { 
            
// "limpiamos" los campos del formulario de posibles códigos maliciosos 
            
$usuario_email mysql_real_escape_string($_POST['usuario_email']); 
            
$usuario_clave mysql_real_escape_string($_POST['usuario_clave']); 
            
$usuario_clave md5($usuario_clave); 
            
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD 
            
$sql mysql_query("SELECT usuario_id, usuario_email, usuario_clave FROM usuarios WHERE usuario_email='".$usuario_email."' AND usuario_clave='".$usuario_clave."'"); 
            if(
$row mysql_fetch_array($sql)) { 
                
$_SESSION['usuario_id'] = $row['usuario_id']; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id 
                
$_SESSION['usuario_email'] = $row["usuario_email"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre 
                
header("Location: index.php"); 
            }else { 
?> 
                Error, <a href="acceso.php">Reintentar</a> 
<?php 
            

        } 
    }else { 
        
header("Location: index.php"); 
    } 
?>
Mensaje de bienvenida en donde aparece el email:

Código PHP:
                <?php 
                    
if(isset($_SESSION['usuario_email'])) { 
                
?> 
                <li class="highlighted">Bienvenido:<a class="key" href="perfil.php?id=<?=$_SESSION['usuario_id']?>"><strong><?=$_SESSION['usuario_email']?></strong></a> | <a class"key" href="logout.php">Cerrar                             Sesión</a> </li> 
                <?php 
                

                
?>
En mi base de datos tengo la columna: usuario_nombre.

Desde ya muchas gracias.

Saludos cordiales,

Mosiah
__________________
Tu mente es capaz de todo...

Última edición por Mosiah16; 26/06/2013 a las 02:42
  #2 (permalink)  
Antiguo 26/06/2013, 02:54
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Que no se vean los perfiles de los otros usuarios y que se vea nombre de u

Requieres conocer el nick de quien realice la consulta, de esta forma podrás hacer la comparación, algo así:

Código PHP:
Ver original
  1. <?php
  2. if ($usuario_actualmente_identificado == $nick) {
  3.     echo '
  4.        <strong>Nombre de Cliente:</strong>'. $nick .'<br />
  5.        <strong>Email:</strong>'. $email .'<br />
  6.        <strong>Registrado el:</strong>'. $freg .'<br />';
  7. else {
  8.    echo 'No tiene acceso a esta informacion';
  9. }
  10. ?>
Hice los cambios de forma simple en base a tu código, lo puedes hacer mucho más completo.

Espero pueda ayudarte.
  #3 (permalink)  
Antiguo 26/06/2013, 03:03
Avatar de Mosiah16  
Fecha de Ingreso: abril-2010
Ubicación: Antofagasta
Mensajes: 70
Antigüedad: 14 años
Puntos: 1
Respuesta: Que no se vean los perfiles de los otros usuarios y que se vea nombre de u

Entiendo, voy a probar aver como me va, desde ya muchas gracias.

ya lo solucione, pero quiero agregar un link que lo mande a su perfil :D

Saludos.
__________________
Tu mente es capaz de todo...

Última edición por Mosiah16; 26/06/2013 a las 04:05
  #4 (permalink)  
Antiguo 26/06/2013, 05:37
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Que no se vean los perfiles de los otros usuarios y que se vea nombre de u

Echale un ojo al foro de HTML, ahí puedes encontrar respuestas diversas.

Etiquetas: mysql, perfiles, registro, select, sql, 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 15:59.