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