Kolejny problem

:
W jednej z podstron skryptu, gdy się odświerzy tą podstronę lub uruchomi poraz drugi to gubiona zostaje sesja

Nie wiem dlaczego.
Wie ktoś dlaczego i jak się tego pozbyć?
Poniżej są pełne kody plików:
[php]<?
// Plik profile.php
include "config.php";
include "includes/connect.php";
include "includes/function.php";
session_start();
include "includes/page_header.php";
$mode = $_GET[mode];
$id = $_GET[id];
IF ($mode) {
SWITCH ($mode) {
CASE 'viewprofile' :
include "includes/profile_view.php";
BREAK;
CASE 'edit' :
include "includes/profile_edit.php";
BREAK;
}
} elseif (!$mode) {
echo ("Parametr mode nie został określony!!!");
}
require "includes/page_footer.php";
// Koniec pliku profile.php
?>[/php]
[php]<?
// includes/profile_edit.php
IF ($_SESSION[logged]==2) {
IF ($submit) {
$error = '';
$email = addslashes($_POST[email]);
$haslo = $_POST[haslo];
$new_haslo = md5($_POST[new_haslo]);
$confirm_new_haslo = md5($_POST[confirm_new_haslo]);
$miejsce = addslashes($_POST[u_from]);
IF ($new_haslo != '' || $confirm_new_haslo != '') {
IF ($haslo=='' && $new_haslo || $confirm_new_haslo) {
$error .= 'Jeśli chcesz zmienić hasło na nowe musisz wpisać obecne!<BR>';
$error_sql = true;
}
IF (!check_user_pass($_SESSION[userdata][username], $haslo, $dbconnect) ) {
$error .= 'Wpisałeś błędne hasło w pole "Obecne hasło"!!!<BR>';
$error_sql = true;
}
IF ($new_haslo != $confirm_new_haslo) {
$error .= 'W pole "Nowe hasło" i "Potwierdź nowe hasło" podano dwa różne hasła!!!<BR>';
$error_sql = true;
}
}
IF ($email=='') {
$error .= 'Musisz podać adres e-mail!<BR>';
$error_sql = true;
}
IF (!$error_sql) {
IF ($new_haslo=='') {
$new_haslo = $_SESSION[userdata][pass];
}
$sql = "UPDATE " .$prefix. "users SET email = '$email', pass = '$new_haslo', u_from = '$miejsce' WHERE id = '$_SESSION[id]'";
@mysql_query($sql) OR die("Wystąpił błąd przy aktualizacji profilu:<BR>" .mysql_error() );
@mysql_close();
}
}
?>
<FORM ACTION="<? echo ("profile.php?mode=edit&" .SID) ?>" METHOD="POST">
<TABLE border=0 width=100%><TR><TD>
<TABLE border=0 width=100%>
<TR align="center">
<TD><FONT FACE="Courier new" SIZE=2><? echo $error ?></FONT></TD>
</TR>
<TR align="center">
<TD><FONT FACE="Courier new" SIZE=3><B>Podstawowa konfiguracja:</B></FONT></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=1>Wszystkie pola z * są obowiązkowe.</FONT></TD>
<TD></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=2><B>Nazwa użytkownika:</B></FONT></TD>
<TD><FONT FACE="Courier new" SIZE=2><? echo $_SESSION[userdata][username] ?></FONT></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=2><B>E-Mail*:</B></FONT></TD>
<TD><FONT FACE="Courier new" SIZE=2><INPUT TYPE="POST" name="email" value="<? echo $_SESSION[userdata][email] ?>"></FONT></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=2><B>Obecne hasło:</B></FONT></TD>
<TD><FONT FACE="Courier new" SIZE=2><INPUT TYPE="PASSWORD" name="haslo"></FONT></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=1>Wpisz obecne hasło, aby poniżej je zmienić.</FONT></TD>
<TD></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=2><B>Nowe hasło:</B></FONT></TD>
<TD><FONT FACE="Courier new" SIZE=2><INPUT TYPE="PASSWORD" name="new_haslo"></FONT></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=1>Wpisz nowe hasło, które chcesz używać zamiast starego.</FONT></TD>
<TD></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=2><B>Potwierdź nowe hasło:</B></FONT></TD>
<TD><FONT FACE="Courier new" SIZE=2><INPUT TYPE="PASSWORD" name="confirm_new_haslo"></TD>
</TR>
<TR align="center">
<TD><FONT FACE="Courier new" SIZE=3><B>Dodatkowa konfiguracja:</B></FONT></TD>
</TR>
<TR align="left">
<TD width=25%><FONT FACE="Courier new" SIZE=2><B>Skąd:</B></FONT></TD>
<TD><FONT FACE="Courier new" SIZE=2><INPUT TYPE="POST" name="u_from" value="<? echo $_SESSION[userdata][u_from] ?>"></FONT></TD>
</TR>
<TR align="left">
<TD width=50%><CENTER><INPUT TYPE="SUBMIT" value="Wyślij" name="submit"></TD>
<TD width=50%><CENTER><INPUT TYPE="RESET" value="Wyczyść"></TD>
</TR>
</TABLE></TD></TR></TABLE>
<?
} elseif ($_SESSION[logged]!=2) {
header ("Location: login.php");
}
?>[/php]
[php]function get_userdata($id, $dbconnect) {
global $prefix;
$sql = "SELECT * FROM " .$prefix. "users WHERE (id = '$id')";
$query = @mysql_query($sql);
IF (!$query) {
echo mysql_error() . "<br>";
echo "Nie można wykonać zapytania do bazy danych!!!";
}
$data = mysql_fetch_array($query);
IF (!$data) {
echo mysql_error() . "<br>";
echo "Nie można pobrać wyników z bazy danych!!!";
}
return ($data);
} //get_userdata[/php]
Wie ktoś może co powosuje zgubienie sesji po odświerzeniu lub kolejnym wejściu na podstonę i jak się tego pozbyć?
Link do tej podstrony na stronie głównej prowadzony jest w ten sposób:
[php]<?php
<a href="<? echo ("profile.php?mode=edit&" .SID) ?>">Edytuj profil</a>
?>[/php]
Proszę o pomoc.