Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Form che sparisce al log in dell'utente

    Buonasera a tutti.

    Avrei un problema alquanto fastidioso che non riesco a risolvere. Cercherò di essere il più chiaro possibile.

    Sto realizzando un sito stile blog per l'ufficio. Da qualche giorno ho cominciato a creare un'area privata per i clienti. Ogni utente, registrato personalmente, può quindi, attraverso un modulo di log in, accedere alla sua area privata e visualizzare le proprie comunicazioni ecc..

    Fin qua, tutto ok, l'area privata funziona e non ci sono particolare problemi. Inizialmente ho pensato di reindirizzare l'utente direttamente alla propria area privata.. poi però ho cambiato idea, e ho preferito fare refresh direttamente sulla index. E qua comincia la rogna. Come faccio.. una volta che l'utente si è loggato, a far sparire la form di login (Utente-Password-Invia) e al suo posto, far apparire un messagio tipo "Sei connesso come 'utente'" più il link all'area privata e un link di logout? I link, appaiono effettivamente, ma la form non so proprio come farla sparire.

    Per intenderci, esattamente come accade qua sul forum. Quando si è connessi, appare in alto a sinistra "Ciao iTziTechnoz", quando non si è connessi appare la form.

    Ho provato ad aggiungere un controllo sulla connessione all'inizio del codice, ma non funge.

  2. #2
    Beh, ci sarebbero davvero tanti modi per farlo, il più grezzo sarebbe quello di reindirizzare l'utente verso una nuova pagina index identica ma senza moduli (form).
    Ma come ti dicevo, è una soluzione veramente grezza.
    Così su due piedi proverei ad inserire il codice HTML del form in un'istruzione if o switch dove, nel momento in cui viene settata la o le variabili di connessione, scompare il modulo.

    Esempio:

    codice:
    $login = $_POST['login'];
    $pass = $_POST['pass'];
    $authuser = 0;
    
    // una volta verificati login e pass, se corretti, alla variabile $authuser gli assegni il valore 1.
    // poi aggiungi il codice per il modulo, magari inserito in una variabile con  sintassi
    // HEREDOC.
    
    if ($authuser == 0) {
          echo $modulo;
    } else {
          echo 'Benvenuto ' . $login . '!';
    }
    Stessa cosa puoi farla con switch o, addirittura, con un operatore ternario:
    codice:
    ($authuser == 0) ? $modulo : 'Benvenuto nel nostro sito!';
    Spero di averti dato almeno degli spunti

  3. #3
    Originariamente inviato da EvilEmpire
    Beh, ci sarebbero davvero tanti modi per farlo, il più grezzo sarebbe quello di reindirizzare l'utente verso una nuova pagina index identica ma senza moduli (form).
    Ma come ti dicevo, è una soluzione veramente grezza.
    Così su due piedi proverei ad inserire il codice HTML del form in un'istruzione if o switch dove, nel momento in cui viene settata la o le variabili di connessione, scompare il modulo.


    Esempio:

    codice:
    $login = $_POST['login'];
    $pass = $_POST['pass'];
    $authuser = 0;
    
    // una volta verificati login e pass, se corretti, alla variabile $authuser gli assegni il valore 1.
    // poi aggiungi il codice per il modulo, magari inserito in una variabile con  sintassi
    // HEREDOC.
    
    if ($authuser == 0) {
          echo $modulo;
    } else {
          echo 'Benvenuto ' . $login . '!';
    }
    Stessa cosa puoi farla con switch o, addirittura, con un operatore ternario:
    codice:
    ($authuser == 0) ? $modulo : 'Benvenuto nel nostro sito!';
    Spero di averti dato almeno degli spunti

    Eh si, infatti il primo metodo era proprio quello che volevo evitare di fare. Quello che mi hai scritto tu, è più o meno quello che ho cercato di fare. In pratica, controlla se c'è una connessione attiva. Se non c'è nessuna connessione.. allora mostrerà una form di log in, altrimenti.. stampa una form 'hidden'. Però, non essendo particolarmente esperto di php non riesco a smanettare con le Session.

    Questo è uno spezzone del codice:

    codice:
    <?php 
    session_start();  
    if(isset($_POST['id_utente'])==TRUE)  
    {  
    ?>  	
    <div id='login'align='right'>
    <form hidden action='?login=ok'method='post'>  
    [b]Username[b]
    
    <input type='text' name='user'>
    
    Password
    
    <input type='password' name='pass'>
    
    
    <input type='submit' name='login' value='Effettua il login'>
    </form></div>  
    <?php  
    }else
    {  
    session_destroy();  
    ?>
    <div id='login' align='right'>
    <formaction='login=ok'method='post'>
    Username
     
    <input type='text' name='user'>
    
    Password
    
    <input type='password' name='pass'>
    
    
    <input type='submit' value='Effettua il login'> 
    </form>
    </div>  
    <?php
    }
    $user = @$_POST['user'];  
    $pass = @$_POST['pass'];   
     $risp = "ok";  $login = @$_GET['login'];
    ......

  4. #4
    Ho creato un esempio banalissimo che può aiutarti per capire il concetto alla base. Lo puoi scaricare da qui .

  5. #5
    Originariamente inviato da EvilEmpire
    Ho creato un esempio banalissimo che può aiutarti per capire il concetto alla base. Lo puoi scaricare da qui .
    Evil, che dire.. funziona perfettamente. Ti ringrazio infinitamente per l'aiuto!

  6. #6
    Felice di averti aiutato! ;-)

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.