Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
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


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Sony annuncia la data d'uscita delle Pul...
Nothing Ear (3) a 119€: gli auricolari c...
Roborock Qrevo Curv 2 Flow a 499€ e Saro...
Apple avvisa dello spyware in quattro po...
Xiaomi svela gli interni (assurdi) di Sk...
Framework Laptop 12: la nuova generazion...
iPhone 18 Pro, si parla di 200-300 euro ...
La società cinese Landspace &egra...
Un mese di stretta di Instagram, i video...
Anche Geely sale sul treno dello stato s...
Spotify porta Running Mode su Android: l...
Il meglio di Amazon in 5 offerte super s...
Apple abbassa le barriere per gli store ...
Scatole cinesi per NIO: le stazioni di s...
L'algoritmo di X premia quello che ti fa...
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: 10:43.


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