Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Marathon: arriva il Fortnite hardcore
Marathon: arriva il Fortnite hardcore
Marathon è il titolo multiplayer competitivo del momento. Ecco quali sono le caratteristiche di gioco principali, insieme alle nostre prime considerazioni dopo qualche "run" nell'extraction shooter di Bungie
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
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


Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Apple compie 50 anni: dal garage di Los ...
Kingston IronKey Keypad 200C: chiavetta ...
Echo ed Echo Show in offerta: dagli spea...
PlayStation 5 Pro costa troppo? Quel pre...
TIM e Galaxy S26: arriva il trasferiment...
La risposta all'invasione degli agenti I...
Fire TV Stick: tutta la gamma Amazon in ...
ChatGPT arriva su CarPlay: OpenAI introd...
Un nuovo gioco RPG de Il Signore degli A...
Problemi di prestazioni per MacBook Pro ...
I limiti di utilizzo di Claude sono trop...
Stop al ransomware su Google Drive: avvi...
Pragmata entra in fase gold: il titolo d...
Recensione Crimson Desert: la mastodonti...
Google Pixel 11 Pro: i render svelano il...
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: 13:46.


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