Cześć, męczę się z autologowaniem i jakoś nie wychodzi.

Każda strona(np: strona1.php, strona2.php, strona3.php)
Wygląda tak:

session_cache_limiter('must-revalidate');
session_start();
include "top.php";
include "menu_left.php";

//właściwa zawartość danej strony

include "menu_right.php";
include "bottom.php";

Logowanie jest rozbite jakby na 2 pliki: menu_right.php(gdzie jest formularz) i top.php, gdzie jest obsługa formularza.

-------menu_right---------

  echo '<form name="log" method="POST" action="">
            <input type="hidden" name="action" value="login">';
              if(isset($logErr)) echo '<tr><td colspan=2>'.$logErr.'</td></tr>'; //błąd logowania
echo ' 
            <tr>
               <td class="login">Login:</td>
               <td><input type="text" name="login" class="login"></td>
            </tr>
            <tr>
               <td class="login">Hasło:</td>
               <td><input type="password" name="pass" value="" class="login"></td>
            </tr>
            <tr>
               <td colspan=2 align="center"><input type="submit" class="submit" value="Zaloguj"></td>
            </tr>
            <tr>
              <td align="right"><input type="checkbox" id="rem" name="remember"></td>
              <td><label for="rem">Zapamiętaj mnie</label></td>
             </tr>
          </form>

No i plik top.php

global $logError; //gdy jest błąd logowania, ta zmienna jest inicjowana

if($_POST["action"]=="login") //logowanie
{
//funkcja logująca(sprawdzenie w bazie i ustawienie wartości w pewnych polach sesji)
  if(!login($_POST["login"], $_POST["pass"], "users")) 
     $logErr = '<font color="red" size=-1>Błąd logowania</font>'; else
     {
       if($_POST["remember"]=="on")  //gdy zaznaczono: zapamiętaj
       {
           $expire = time()+31536000; //pamiętaj przez rok
           $cookie_pass = md5($_POST["pass"]);

           setcookie("neurotic_user", $_POST["login"], $expire);
           setcookie("neurotic_pass", $cookie_pass, $expire);
       } else  //usuwam cookie
       {
           $expire = time()-1;
           $cookie_pass = md5($_POST["pass"]);

           setcookie("neurotic_user", $_POST["login"], $expire);
           setcookie("neurotic_pass", $cookie_pass, $expire);
       }
       echo '<form name="sendSess" method="GET">
              <input type = "hidden" name="PHPSESSID" value="'.SESSION_ID().'">
             </form>
             <script language="JavaScript">
               document.sendSess.submit();
             </script>';
     }
}

//tutaj odczyt cookies(jeśli była akcja logująca, to user jest już zalogowany, czyli auth() zwraca true)
$username = $_COOKIE["neurotic_user"];
$md5pass = $_COOKIE["neurotic_pass"];

if((!auth()) && ($username!=""))
{
  if($mysql==null) $mysql = connect();
  $query = "SELECT COUNT(*) as ilosc ".
               "FROM users WHERE login='$username' and pass='$md5pass'";
  $rows = mysql_query($query) or die(mysql_error());
  $result = mysql_fetch_assoc($rows);

  if($result["ilosc"]==1)
  {
     $_SESSION["USER_AUTH"]  = True;
     $_SESSION["USER_LOGIN"] = $_POST["login"];
     $_SESSION["USER_ID"] = getid($_POST["login"]);
     $_SESSION["USER_INFO"] = getUser();
  }
}

include "header.html";

W header.html są nagłówki html'owe, czyli <head> po prostu :)
Formularz sendSess jest potrzebny do jakby wysłania id sesji. Nie pamiętam dokładnie, jaki miałem cel, żeby to umieszczać, ale coś bez tego nie działało :)
(wcześniej obsługę logowania miałem w menu_right.php - tam, gdzie formularz do logowania, ale teraz potrzebuję używać cookies i trzeba było przenieść do top)

No, efekt jest taki, że jak zaznaczam "Zapamiętaj mnie", to nie zawsze mnie loguje. Poza tym, czasami pokazuje mi się błąd, że headers already sent(wskazuje na linie z setcookies), a po chwili ładuje stronę(to zasługa chyba formularza sendSess)

Pomóżcie... :)