Sessioni che necessitano di cookie abilitati??

robysdc

Nuovo Utente
15 Nov 2008
21
0
0
Ciao a tutti

vi anticipo che sono un novellino della programmazione php e che quindi la mia domanda potrà sembrarvi sciocca..

Sto creando una semplice area ad accesso riservato con le sessioni, il problema è che se nel browser disabilito i cookie

l'applicazione non mi consente più di entrare..

io sapevo che lavorando con le sessioni non c'è questa ncessità..

vi posto il codice certo del fatto che capiate il mio errore..

login.php - riceve le credenziali di accesso e le manda a redirect.php
--------------------
PHP:
 <?php
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
     <tr>
         <td>
          <form method="post" action="redirect.php">
         
            <div align="center"><span class="Stile1"><br />
            USERID: </span><input name="userid" type="text" size="20">
            &nbsp;&nbsp;&nbsp;
            <span class="Stile1"> 
            PASSWORD:</span><input type="password" name="password" size="20"><br>
             <input type="submit" value="Login" name="submit" />
            </div>
          </form></td>
</tr> </table>
require ('bottom.inc');
?>


redirect.php - controlla che le credenziali di accesso siano corrette e rimanda alla pagina protetta
-------------------------------------
PHP:
 <?php

// Abilito le sessioni
session_start();


// Creo la funzione per fare il check dello USERID e della PASSWORD
function check_user($usr,$pws) {
$textfile = fopen("utenti.txt", "r");

while ( $rigafile = fgets($textfile,1024) ) {
$campiriga = explode("|", $rigafile);
$file_username = $campiriga[4];
$file_password = $campiriga[5];
if (($file_username == $usr) && ($file_password == $pws)) {
return 0;
}
}
return 1;
fclose($textfile);
}


// Controllo che UserID e Password siano corretti; 
// se lo sono vai alla Pagina Protetta, se UserID o Password non sono corretti visualizza "non sei autorizzato ad entrare in 

quest'area"

$password = $_POST["password"];
$username = $_POST["userid"];

if (check_user($username,$password)) {
require ('top.inc');
echo "<div align='center'>Non sei autorizzato ad entrare in quest'area</div><br>
      <div align='center'>Torna alla pagina di <a href=login.php>login</a></div>";
require ('bottom.inc');
}


else {

$_SESSION['autorizzazione']=1;

header("Location: http://miosito.altervista.org/Php/Guild/sessioni/Guild.php");
};
?>

Guild.php è l'area protetta
----------------------------
PHP:
 <?php

// Abilito le sessioni
session_start();

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");



if (isset($_SESSION['autorizzazione']) || $_SESSION['autorizzazione'] == 1){
require ('top.inc');
CORPO DELLA PAGINA PROTETTA
require ('bottom.inc');
}

else {

require ('top.inc');
echo "<div align='center'>Non sei autorizzato ad entrare in quest'area</div><br>
      <div align='center'>Torna alla pagina di <a href=login.php>login</a></div>";
require ('bottom.inc');

}
?>

il tutto funziona bene ma solo se i cookie sono abilitati

se li disabilito e faccio il login, ricevo il messaggio di errore "Non sei autorizzato ad entrare in quest'area" previsto nel

caso la sessione fosse inesistente o sbagliata..

Avete qualche idea? immagino sia una mia cavolata ma non capisco dove sbaglio..
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Ad ogni sessione viene associato un codice univoco che serve ad identificarla. Questo codice viene passato al browser che lo salva in un cookie. A tutte le richieste effettuate dal browser successivamente, viene aggiunta una intestazione con il cookie creato per la sessione. In questo modo il server può associare il browser con la relativa sessione e nel tuo caso stabilire ad esempio che un utente è già autenticato, quale utente è e tutti i dati che hai inserito nella sessione.

Se il browser ha i cookies disabilitati non può salvare questa informazione e di conseguenza ogni richiesta farà partire un nuova sessione.

L'alternativa in PHP è passare il codice della sessione negli URL delle pagine, ma questa opzione deve essere abilitata manualmente in PHP > 4.2.0.

Prova a dare un'occhiata qui.
 

robysdc

Nuovo Utente
15 Nov 2008
21
0
0
ho cercato un pò in rete come abilitare il supporto per i trans-sid oppure o come si fa a riscrivere URL e form per propagare il SID?


credi che per i vari link che collegano le pagine dell'area protetta basti modificare:

codice PHP:
<a href="altroscript.php">Altro script</a>


con

codice PHP:<a href="altroscript.php?<?= SID ?>">Altro script</a>

nel form invece cosa dovrei modificare??

in alternativa come si attiva supporto per i trans-sid ?

Grazie mille
 

robysdc

Nuovo Utente
15 Nov 2008
21
0
0
ho provato ad inserire nei link ?<?= SID ?> ma nn va..

qualcuno ha qualche idea? come dovrei modificare il form di login?


grazie mille
 
Discussioni simili
Autore Titolo Forum Risposte Data
giorgione_tg sessioni che casino... PHP 2
keyascii File temporanei Sessioni PHP 6
T PROBLEMA CON SESSIONI PHP 3
ilsuomillennio Sessioni PHP 3
maxnegri Contare sessioni aperte e creare condizione PHP 1
AC1 Sessioni php PHP 16
S [PHP] problemi con le sessioni PHP 3
B [PHP] Reload pagina e sessioni PHP 3
A Php e sessioni PHP 3
J sessioni in PHP PHP 3
T gestione livelli sessioni php msqli PHP 1
M Problema MySQL e sessioni MySQL 0
A form su più pagine e sessioni PHP 8
V Le sessioni: ho dei dubbi sul posizionamento PHP 6
A sessioni sicure? PHP 5
G Controllo scadenza sessioni PHP 2
M Sessioni??? PHP 4
C Sessioni in php (urgente) PHP 4
R Efficenza sessioni con proxy PHP 0
baobabdesign Problema scrittura sessioni PHP 0
Shyson Non mantiene sessioni PHP 0
L segnalare l'utilizzo delle sessioni come accade per i cookie PHP 0
D Login con sessioni per 2 pagine diverse PHP 2
L problema array con le sessioni PHP 1
D Sessioni e variabili PHP 4
R problema con le sessioni PHP 2
L Sessioni rank [#PHP] PHP 3
R Sessioni, cookies e token di autenticazione PHP 0
E [risolto] win 8.1 + IE11 le sessioni PHP non fuonzionano correttamente PHP 7
A Sessioni php PHP 0
otto9due [risolto] Problema sessioni php e login PHP 5
B Sessioni PHP 10
H [risolto] Uso delle SESSIONI PHP 2
F Sessioni PHP 1
A conservazione sessioni PHP 2
S Stampare una variabile in ogni pagina usando le sessioni PHP 5
Z Registrazione e sessioni PHP 8
asevenx problema con le sessioni PHP 6
S Un piccolo aiuto su cookie e sessioni PHP 1
S Problema con sessioni PHP 4
I Problema con le sessioni PHP 2
Emix Problema sessioni... PHP 17
Z Sessioni - Database PHP 6
P Problema con l'uso delle sessioni... PHP 4
E Gestione Sessioni sui file anziche nel database - Come fare? Joomla 0
P Problema con sessioni e aggiornamento profilo PHP 21
redevilduil Php problema nelle sessioni PHP 6
P Ho riunito le prove con le sessioni, ma l'update non va PHP 20
Shyson Non mantiene le sessioni PHP 7
D [JSP] Gestire eccezioni relative alla scadenza delle sessioni Java 0

Discussioni simili