Ok dopo 2 giorni di studi ho fatto il seguente codice che sembra andare sia con sia senza cookies
lo posto sperando che sia utile poi se c'e' qualche buon sammaritano che controlla
che non abbia scritto delle cavolate sopratutto per quanto riguarda i problemi di sicurezza.


Ho creato un file login.php
con le funzioni
check_user che controllano sul db login e passowrd e se corretti aprano la sessione e nel caso ci sia la var remember anche i cookies di autologin
check_logged che ritorna 1 se si e' loggati 0 se non lo si e nel caso ci siano cookies di auto login rieffettua il login
logout che chiude la sessione e i cokkies di autologin

form_sessid che va messo dentro tutte le form per la propagazione dell'id di sessione se serve
link_sessid che aggiunge in fonda ai link la sessid se serve

Codice PHP:

<?php

function check_user ($login $password$remember 0) {
    global 
$sql_usertable;
    if (
strlen($login) == or strlen ($password) == 0) {
        return 
0;
    }

    
$sql="SELECT * FROM $sql_usertable WHERE login='$login'";
    
$result=mysql_query($sql)or die("Query non valida: " mysql_error());

    if (
mysql_num_rows($result) != 1) {
        return -
1;
    }

    
$riga mysql_fetch_assoc($result);

    if (
$riga['pwd'] != md5($password)) {
        return 
0;
    }
    else {
        
$_SESSION['user']=$login;
        
$_SESSION['user_id']= $riga['id'];
        
$_SESSION['user_perm'] = $riga['perm'];
        
//creazione cookie per login automatico 
        
if($remember == 1) { 
            
$cok=md5($login_user)."%%".$pass_user
            
setcookie("sav_user",$cok,time()+31536000); 
        }
        return 
1;
    }
}

function 
check_logged()  {
    
// se esiste la session user sono loggato
    
if (IsSet($_SESSION['user'])) {
        return 
1;
    }
    
//controllo user e passwd da cookie 
    
if(IsSet($_COOKIE['sav_user'])) { 
        
$info_cok=$_COOKIE['sav_user']; 
        
$cok_user=strtok($info_cok,"%%"); 
        
$cok_pass=strtok("%%"); 
        return 
check_user ($cok_user $cok_pass 1);
    }
    return 
0;
}

function 
logout($headerredirect) {
    
$_SESSION=array(); // Desetta tutte le variabili di sessione. 
    
session_destroy(); // DISTRUGGE la sessione. 
    
if(IsSet($_COOKIE['sav_user'])) { //se presente si distrugge il cookie di login automatico 
        
$info_cok=$_COOKIE['sav_user'];
        
setcookie("sav_user",$info_cok,time()-31536000);
    }
    
header("Location: $headerredirect"); //si ricarica la pagina di login 
    
exit; //si termina lo script in modo da ritornare alla schermata di login 
}

function 
form_sessid() {
    if(!IsSet(
$_COOKIE['PHPSESSID'])) {//i cookie sono off, dobbiamo propagare noi il PHPSESSID 
        
$sessid=session_id();
        print(
"<input type=\"hidden\" name=\"PHPSESSID\" value=\"$sessid\" />");
    }
    return 
0;
}

function 
link_sessid($link)  {
    if(!IsSet(
$_COOKIE['PHPSESSID'])) {//i cookie sono off, dobbiamo propagare noi il PHPSESSID 
        
$sessid=session_id();
        
$pos strpos($link"?");
        if (
$pos === false)
            
$links .= $link.'?PHPSESSID='.$sessid;
        else
            
$links .= $link.'&PHPSESSID='.$sessid;
        return 
$links;
    }
    return 
$link;
}

?>


poi ho creato in index che utilizza il sopracitato modulo in questo modo
Codice PHP:
<?php

//dati login da modificare
$redirect="http://localhost/index.php"
$sql_host "localhost";
$sql_dbname "my_db";
$sql_usertable "user";
$sql_user "myuser";
$sql_pwd "";

include 
'login.php';

session_start(); //si inizia o continua la sessione

//logout 
if($_GET['logout']==1)  { logout($redirect); }

mysql_connect("$sql_host""$sql_user""$sql_pwd")or die("Non e' possibile connettersi al server SQL");
mysql_select_db("$sql_dbname")or die("non e' possibile selezionare il database");


//controllo user e passwd da login 
if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password']))  { 
    
$logged check_user ($_POST['posted_username'], $_POST['posted_password']);
} else {
    
$logged check_logged();
}

?>

<html> 
<head> 
</head> 
<body> 

<?php 

if($logged != 1) { //non siamo loggati, pagina di login 
    
if($_GET['nocookie']==1) { //i cookie sono off e si vuole ricordare il login 
        
print("Spiacente, ma con i cookie disabilitati non posso fare i miracoli ;)
 
        Attivali se vuoi ricordare il tuo login.
"
); 
    }

    print(
"

 <form method=\"post\" action=\"
$redirect\">
        username: <input type=\"text\" sixe=\"20\" name=\"posted_username\">

        password: <input type=\"password\" size=\"20\" name=\"posted_password\">
 
        ricordami: <input type=\"checkbox\" name=\"ricorda\" value=\"1\">

 
        <INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Loggami\">
"
); 
    
form_sessid(); // se c'e' bisogno mette il PHPSESSID se no nada
    
print("</form>"); 
}
else {
//siamo loggati pagina riservata 
    
$username=$_SESSION['user']; 
    
$permlevel=$_SESSION['user_perm'];
    print(
"Il tuo ID ?: $PHPSESSID 

"
); 
    print(
"Sei loggato come: $username

"
); 
    print(
"I tuoi permessi: $permlevel

"
); 
    
$pag2link link_sessid("pagina2.php"); // se c'e' bisogno aggiunge l'id se no il link rimane invariato
    
print("<a href=\"$pag2link\">pagina2</a>
"
); 
    print(
"<a href=\"$redirect?logout=1\">logout</a>"); 
}
?> 

</body> 
</html>

infine una pagina secondaria che ho chiamato pagina 2 che utlilizza le mie comodissime funzioni

Codice PHP:
<?php
//dati login da modificare
$redirect="http://localhost/index.php"
$sql_host "localhost";
$sql_dbname "my_db";
$sql_usertable "user";
$sql_user "myuser";
$sql_pwd "";

include 
'login.php';



session_start(); //si inizia o continua la sessione

mysql_connect("$sql_host""$sql_user""$sql_pwd")or die("Non e' possibile connettersi al server SQL");
mysql_select_db("$sql_dbname")or die("non e' possibile selezionare il database");

$logged check_logged();

?>

<html> 
<head> 
</head> 
<body> 

<?php 

if($logged != 1) { //non siamo loggati, pagina di login
    
echo "non sei loggato vai alla pagina di login";
    exit();
}
else {
//siamo loggati pagina riservata 
    
$username=$_SESSION['user']; 
    
$permlevel=$_SESSION['user_perm'];
    print(
"Il tuo ID ?: $PHPSESSID 

"
); 
    print(
"Sei loggato come: $username

"
); 
    print(
"I tuoi permessi: $permlevel

"
); 
    print(
"<a href=\"$redirect?logout=1\">logout</a>"); 
}

?> 

</body> 
</html>