I got user login system where user page has its own id in URL. for eg. xxx/profile.php?id=1 My question is: how to prevent logged user from writing other user id in URL and entering his site ?
here is the code of file profile.php:
          session_start();
require 'config2.php'; 
require_once 'user.class.php';
if (!user::isLogged()) {
 echo '<p class="error">Przykro nam, ale ta strona jest dostepna tylko dla zalogowanych     u?ytkowników.</p>';
     }
else {
$id = $_GET['id'];
  $userExist = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE id = '$id'"));
   if ($userExist[0] == 0) {
    die ('<p>Przykro nam, ale u?ytkownik o podanym identyfikatorze nie istnieje.</p>');
}
 $profile = user::getDataById ($id);
echo '<h1>Profil u¿ytkownika '.$profile['login'].'</h1>';
 echo '<b>ID:</b> '.$profile['id'].'<br />';
echo '<b>Nick:</b> '.$profile['login'].'<br />';
echo '<b>Email:</b> '.$profile['email'].'<br />';
echo '<b>Obiekt:</b> '.$profile['obiekt'].'<br />';
   echo '<b>Typ obiektu:</b> '.$profile['typ'].'<br />';
 echo '<b>Kod pocztowy:</b> '.$profile['kod'].'<br />';
    echo '<b>Adres:</b> '.$profile['adres'].'<br />';
echo '<b>Poczta:</b> '.$profile['poczta'].'<br />';
echo '<b>Tel. stacjonarny:</b> '.$profile['tels'].'<br />';
echo '<b>Tel. komórkowy:</b> '.$profile['telk'].'<br />';
    echo '<b>Adres strony internetowej:</b> '.$profile['www'].'<br />';
    echo  "<img src ='wyslane/$profile[photo]'";
      }
and here's user_class.php:
             <?php
         class user {
           public static $user = array();
      public function getData ($login, $pass) {
    if ($login == '') $login = $_SESSION['login'];
    if ($pass == '') $pass = $_SESSION['pass'];
     self::$user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE  login='$login' AND pass='$pass' LIMIT 1;"));
     return self::$user;
     }
    public function getDataById ($id) {
    $user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id='$id' LIMIT 1;"));
    return $user;
    }
  public function isLogged () {
  if (empty($_SESSION['login']) || empty($_SESSION['pass'])) {
  return false;
  }
  else {
  return true;
  }
 }
   public function passSalter ($pass) {
    $pass = '$@@#$#@$'.$pass.'q2#$3$%##@';
    return md5($pass);
 }
  }
     ?>
I've got also my main page code here:
          if (user::isLogged() == $_GET['id']) {
   $user = user::getData('', '');
 echo '<p>You are logged '.$user['login'].'!</p>';
   echo '<p>You may see your <a href="profile.php?id='.$user['id'].'">profil</a> or <a              href="logout.php">wylogować</a></p>';
      }
    else {
  echo '<p>You are not logged.<br /><a href="login.php">Zaloguj</a> się lub <a  href="register.php">zarejestruj</a> jeśli jeszcze nie masz konta.</p>';
   }
I tried, what Ryan advised but it ( page) worked only when I double clicked the profile link, otherwise link sent me again to the login page.
 
     
     
    