Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Problemi login al primo accesso...?

    Salve a tutti!
    Ho un problema abbastanza strano...
    Sto sviluppando un preventivatore che funziona in questo modo:

    1) pagina.php: contiene il form per il login

    2) login.php: se $_POST['mail'] e $_POST['password'] sono corrette {echo "Login effettuato con successo. Vai alla pagina del preventivatore";}

    3) preventivatore.php: form in cui il cliente inserisce i suoi dati

    4) creapdf.php: raccoglie i dati in $_POST inseriti dal cliente, crea un pdf, invia il pdf all'emai in $_SESSION['mail'] e infine reindirizza il browser nuovamente a preventivatore.php

    5) logout.php: distrugge la sessione e reindirizza il browser a pagina.php

    Una struttura abbastanza semplice il problema è questo:

    al primo accesso la variabile $_SESSION['mail'] si perde e il pdf viene creato ma ovviamente non viene spedito. se mi sloggo e mi riloggo il sistema funziona alla perfezione (per sempre finchè non cancello la cronologia).

    Perchè la prima volta non funziona mai?
    Siccome quando mi sloggo la sessione viene distrutta in teoria dovrei ripartire dalla medesima situazione no?
    C'è qualcosa che non quadra....

  2. #2
    scusa eh, ho la palla di vetro dal meccanico, non è che ci puoi far vedere i punti salienti del login/logout?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Pagina.php:

    codice:
    <form name="login" method="POST" action="login.php">
    <input type="text" name="mail">
    <input type="password" name="password">
    <input type="submit" name="registrami"  value="Login"  />
    </form>
    Login.php:

    Codice PHP:
    $miamail=$_POST['mail'];  
    $miapassword=$_POST['password'];  

    $miaquery="SELECT * FROM `registrazione` WHERE mail ='$miamail' AND password ='$miapassword'";  

    if(
    $contatore==1){
    session_start();  
    $_SESSION['login'] = "true";  
    $_SESSION['mail']=$miamail;}  

    else {    
    $_SESSION['login'] = "false";} 
    Creapdf.php
    Codice PHP:
    session_start();   
    $miamail=$_SESSION['mail'];
    $seleziona "SELECT * FROM  `registrazione` WHERE mail ='$miamail' ;";
    ... 
    // codice per creare il pdf ...
    $destinatario1 $miamail
    Logout.php

    Codice PHP:
    session_start(); 
    session_destroy(); 
    Al primo accesso ho notato che la variabile di sessione si perde dopo la pagina login.php...
    tutte le volte successive invece viene passata senza problemi...
    non riesco proprio a capire la logica di questo errore...

  4. #4
    Premesso che il codice è soggetto a sql injection....

    Per quanto riguarda il problema esposto non ti si può rispondere guardando il codice postato: il problema è altrove.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    mumble...

    ma in linea generale se effettuo il logout con session_destroy() dovrei tornare alla situazione iniziale, giusto?

    non è che ho saltato qualche passaggio fondamentale nell'uso delle sessioni?
    la logica del mio sistema è esatta?

    non riesco a capire che cosa rimane nella memoria del mio browser che fa funzionare il tutto dalla seconda volta in poi...

  6. #6
    Originariamente inviato da alecande
    non riesco a capire che cosa rimane nella memoria del mio browser che fa funzionare il tutto dalla seconda volta in poi...
    A queste domande (e a tante altre fatte in questo forum) sarebbe semplice risposndere se si facessero degli opportuni debug del codice;

    Codice PHP:
    echo 'cookie esistenti sul tuo beneamato pc';
    print_r($_COOKIE);
    echo 
    'variabili di sessione correnti';
    print_r($_SESSION); 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  7. #7
    cos'è contatore???

    Codice PHP:
    if($contatore==1){ 
    session_start();   
    $_SESSION['login'] = "true";   
    $_SESSION['mail']=$miamail;}   

    else {    
    $_SESSION['login'] = "false";} 
    nel pezzo di codice non è valorizzato da nessuna parte, ma credo che sia lì il problema... darai per scontato che sia 1 ma non sarà vero...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Il contatore contiene il risultato della mia query.
    Pardon Santino83_02, avevo omesso quella riga, l'avevo data per scontata

    Per quanto riguarda la verifica proposta da oly1982 il risultato che ho è:

    al primo login:
    cookie esistenti sul mio beneamato pc: Array ( [__utma] [__utmb] [__utmc] [__utmz] )
    variabili di sessione correnti Array ( )

    al secondo login:
    cookie esistenti sul mio beneamato pc : Array ([PHPSESSID][__utma][__utmb][__utmc] [__utmz] )
    variabili di sessione correntiArray ( [login] => true [mail] => miamail@yahoo.it )

    ok, suppongo sia colpa di questo PHPSESSID...
    mumble... cos'è?

  9. #9
    quel debug conferma il tuo problema e sessionid non è un problema ma è il cookie di sessione (ovviamente).

    Posta + codice e facci capire cosa si intende per "primo login"
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  10. #10
    scusami se sono poco chiara ma sono ferma su questo problema da diversi giorni e sono un pochino fusa... Cerco di spiegare meglio la questione del primo login:

    1) il mio utente accede all'area riservata tramite il login;
    2) fa il suo preventivo;
    3) il preventivo viene generato (si salva sul server) ma senza nome perchè tra la pagina login.php e la pagina preventivo.php la variabile $_SESSION[mail] si perde;
    4) l'utente si slogga;
    5) l'utente si rilogga e funziona tutto alla perfezione...
    6) l'utente cancella la cronologia del suo pc e si ritorna al punto 3...

    Al punto 1 il codice di controllo stampa la variabile mail ma non la PHPSESSID.
    Al punto 2 la variabile mail scompare.
    Al punto 5 oltre alla variabile mail è presente anche la variabile PHPSESSID.

    La domanda in effetti oly rimane la stessa anche se in forma diversa:
    perchè al primo login PHPSESSID non viene creata?

    io vorrei cercare di capire cos'è, chi la genera e a cosa serve questa PHPSESSID visto che a quanto pare è l'unica differenza che vedo tra i vari accessi...

    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.