Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-09-2007, 15:05   #1
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
[PHP] Anomalia della sessione

Ho alcune pagine dove l'utente può accedervi soltanto tramite login.

La struttura semplificata è questa:

index.php invia alla pag2.php user e password, i quali vengono memorizzati in $_SESSION["user"] e $_SESSION["pwd"]; se passo alla pag3.php non riesco a recuperare i valori delle variabili di sessione solo la prima volta.

A questo punto se accedo alla pag2.php le variabili di sessione non contengono più nulla (vedi codice) e quindi devo rifare il login.
Rifacendo il login tutto funziona.

Il codice è:

Codice PHP:
pag2.php

<?php
        
@session_start();

        if(isset(
$_REQUEST["user"]) AND isset($_REQUEST["pass"]))
        {
                
$_SESSION["user"] = $_REQUEST['user'];
                
$_SESSION["pwd"] = $_REQUEST['pass'];
                
                echo(
"i valori di sessione sono:<br>");
                echo(
$_SESSION["user"]."<br>".$_SESSION["pwd"]);

        echo (
"<br><a href='pag3.php'>pagina 3</a>");

    }
    else
        {
                
$c r();
                echo (
"<br>Nome utente o password non validi");
                echo (
"<br><a href='index.php?r=$c'>riloggati</a>");
                
session_destroy();
    }



pag3.php

    
@session_start();

    if(isset(
$_SESSION["user"]) AND isset($_SESSION["pwd"]))
    {
        if(isset(
$_SESSION["user"]) == "pippo" AND isset($_SESSION["pwd"]) == "pluto")
        {           
                echo (
"<br>".$_SESSION["user"]."<br>".$_SESSION["pwd"]);
        echo (
"<br><a href='pag2.php>indietro</a>");  
        else
        {
            echo (
"utente non autorizzato");
        }
    }
    else
    {
        echo (
"<br>Sessione non inizializzata");
    }

?>
Ovviamente user e password verranno confrontati con quelli presenti in un database e non come ho fatto ora.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 16:50   #2
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Questo controllo
Codice:
if(isset($_SESSION["user"]) == "pippo" AND isset($_SESSION["pwd"]) == "pluto")
non ha senso, isset() è una funziona che ha come valore di ritorno un boolean, e non ha quindi nessun senso confrontarlo con una stringa.

$_REQUEST contiene solo le variabili presenti anche in $_GET e $_POST non in $_SESSION, e (mio consiglio) è meglio se usi $_POST se le variabili le hai passato tramite post o $_GET nel caso le hai passate da url.

In definitva ecco il tuo problema:
Compili un form che ti spedisce le variabili passate con get o post a pag2.php, dove fai un isset($_REQUEST...) che darà esito positivo perchè gli hai appena passato le variabili che ora sono momentanemanete anche in quell'array.
Il controllo passa e setti la sessione.
Vai a pag3.php dove fai un controllo privo di qualunque senso logico, a questo punto ritorni a pag2.php ma stavolta non gli stai passando nulla da get o post, quindi il controllo sull'array $_REQUEST non passa ed ecco che ti sembra che la tua sessione non è stata settata.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 17:16   #3
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Concordo sul controllo privo di logica alla pag3.
Non capisco perché non riesco a leggere le variabili di sessione la prima volta che effettuo l'accesso, rifacendo il login funziona tutto (se chiudo e riapro il browser o se digito il nome della pagina non riesco ad accedervi, proprio come voglio io).
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 17:18   #4
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Ma dal tuo codice, secondo te, dove le vorresti leggere le variabili di sessione?
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 17:27   #5
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Sia nella pag2 che nella pag3
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 17:32   #6
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
In pag2 non controlli la sessione ma l'array $_REQUEST che è tutt'altra cosa.

prova questo...
Codice:
        session_start();

        if(isset($_SESSION["user"])&&isset($_SESSION["pass"])){
                echo "Risulti già loggato - Utente: ".$_SESSION["user"];
                exit();
        }

        if(isset($_POST["user"])&&isset($_POST["pass"])){
                $_SESSION["user"] = $_REQUEST['user'];
                $_SESSION["pwd"] = $_REQUEST['pass'];
                
                echo("Login effetuato con valori:<br>");
                echo($_SESSION["user"]."<br>".$_SESSION["pwd"]);
                echo ("<br><a href='pag3.php'>pagina 3</a>");
        }
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 17:52   #7
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Tutto come prima.

La pag2 mostra user e password, poi alla pag3 le variabili di sessione non vengono stampate.
Rifacendo il login riesco a visualizzare tutto
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 17:54   #8
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
la pag3 va corretta nn va bene la tua, rifalla e ripostala.
Se usi il mio codice per la pag2 così cm'è deve funzionare.

Ultima modifica di MEMon : 07-09-2007 alle 17:56.
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 18:14   #9
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
login -> pag2: visualizza user e password prese dalle variabili di sessione
pag2 -> pag3: non ci sono le variabili di sessione
pag3 -> pag2: non visualizza più il contenuto delle variabili di sessione

pag2 (o pag3) -> login -> pag2: visualizza user e password come prima
pag2 -> pag3: visualizza le variabili di sessione
pag3 -> pag2: visualizza le variabili di sessione


Il codice della terza pagina:

Codice PHP:
@session_start();
    include_once(
"funzioni.php");
      

    if(isset(
$_SESSION["user"]) AND isset($_SESSION["pwd"]))
    {

        echo (
"<br>".$_SESSION["user"]."<br>".$_SESSION["pwd"]);

        
$url "pag2.php"
        echo (
"<br><a href=\"javascript:window.location.replace('$url');\">pagina2</a>"); 
        echo (
"<br><a href='index.php?sess=2'>Disconnetti</a>");        
    
    }
    else
    {
        echo (
"<br>Manca la sessione in pagina 3");
         
    } 
Grazie per la disponibilità che fino ad ora mi hai dato
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)

Ultima modifica di Fabiorayden : 07-09-2007 alle 18:25.
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2007, 18:30   #10
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Ora anche il passaggio dalla pag2 alla pag3 funziona, non funziona quello da pag3 a pag2 (come sempre solo la prima volta, dopo funziona tutto)

Edit: su server remoto... in locale non è cambiato nulla.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)

Ultima modifica di Fabiorayden : 07-09-2007 alle 18:33.
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 08:32   #11
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Ora mi sta sorgendo un dubbio...
Non è che il mio problema è dovuto a qualche impostazione errata nel php.ini?
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 11:41   #12
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Scusa, potresti postare il codice delle 3 pagine che usi? Compreso quella dove ti logghi?
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:06   #13
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Quote:
Originariamente inviato da MEMon Guarda i messaggi
Scusa, potresti postare il codice delle 3 pagine che usi? Compreso quella dove ti logghi?
Il problema, a quanto pare, era nella pag2, avevo inserito del codice html prima di session_start (cosa che non avrai dovuto fare...).

Adesso sto controllando che user e password vengano passate correttamente di pagina in pagina
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:15   #14
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Per quello volevo vedere il codice vero e proprio...
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 13:11   #15
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Ora posso confermare quanto detto prima.
Il problema era il codice html prima di session_start

Grazie MEMon per l'aiuto
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
La crisi dei PC è peggiore del pr...
Alibaba pronta a vietare Claude Code ai ...
Sovranità sui dati: Cloud Firewal...
FiberCop porterà la fibra Gigabit...
Data center in Lombardia: 20 progetti sc...
Tutti i modi in cui la scommessa di Orac...
Kioxia e SanDisk sbandierano i numeri de...
iPhone 18 Pro potrebbe usare modem Qualc...
Basta 'AI slop': Godot vieta ufficialmen...
Un annuncio sponsorizzato su X diffonde ...
Data center in Italia: l’IA spinge la de...
Sam Altman afferma che l'IA 'rimodeller&...
Samsung Galaxy Glasses, un video trapela...
Data center orbitali; Musk promette l'IA...
Hasselblad e Capture One fanno pace: i R...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v