• User Newbie

    Gestire gli utenti con PHP

    php.html.it/articoli/leggi/901/gestire-gli-utenti-con-php/1/

    vorrei implementare questo script sul mio sito, ma per ora lo sto testando "da solo" e non riesco a farlo funzionare per intero...

    mi dà questo errore quando apro per la prima volta la pagina home.php

    "Notice: Undefined index: uid in C:\Programmi\EasyPHP 2.0b1\www\autenticazione\include\auth.lib.php on line 59

    Notice: Undefined index: uid in C:\Programmi\EasyPHP 2.0b1\www\autenticazione\include\auth.lib.php on line 59"

    utilizzando il sistema AUTH_USE_LINK
    se effettuo il login il messaggio sparisce. se inserisco questo controllo:

                     if (!$uid) {
            $uid = '';
            }
                 else {
            $uid = $_GET['uid'];}
    

    al posto del semplice
    $uid = $_GET['uid'];

    non mi appare più il msg di errore alla prima visualizzazione, ma effettuando poi il login non mi appare più la schermata di benvenuto ma nuovamente quella di inserimento user e password

    con il sistema AUTH_USE_COOKIE invece funziona tutto...

    sto testando in locale con apache 2.2.3, php 5.2.0 e mysql 5.0.27

    qualcuno mi può dare una mano? (sperando di essere stato chiaro...)
    sto testando in locale con apache 2.2.3, php 5.2.0 e mysql 5.0.27

    qualcuno mi dà una mano (sperando di essere stato chiaro...)


  • User Attivo

    Sostituisci il codice che hai modificato con:

    [php]$uid = isset($_GET['uid']) ? $_GET['uid'] : '';[/php]


  • User Newbie

    bravissimo!

    grazie! quindi la parola magica era isset? io facevo il controllo inverso, cioè: se non esiste $uid etc.

    invece con isset verifichi se esiste, giusto?

    ma perchè in un caso funziona e nell'altro no?

    grazie ancora comunque!

    ps: ma alla fine cosa è meglio scegliere per il passaggio della variabile tra AUTH_USE_LINK e AUTH_USE_COOKIE???


  • User Attivo

    Il tuo codice presupponeva register_globals attivo, una funzione deprecata da anni.

    isset() verifica se una variabile è definita e non nulla. A differenza del tuo codice non solleva notice nel caso in cui la variabile sottoposta ad esame non sia definita.


  • User Newbie

    vuoi dire che global $_GET; e global $_COOKIE; non sono necessari?

    in effetti togliendoli funziona lo stesso...

    cosa mi consigli su quale metodo usare? quello tramite cookie o tramite get?


  • User Attivo

    @kingink said:

    vuoi dire che global $_GET; e global $_COOKIE; non sono necessari?

    $_GET e $_COOKIE sono array superglobal.

    @kingink said:

    cosa mi consigli su quale metodo usare? quello tramite cookie o tramite get?

    Perchè non utilizzi le sessioni piuttosto?


  • User Newbie

    quindi get e cookie sono già richiamati automaticamente...

    userei volentieri le sessioni, ma... non so farlo...

    cosa dovrei modificare dello script in questione?

    e che differenza ci sarebbe? cioè le sessioni non devono comunque utilizzare un cookie file di testo in ogni caso?

    grazie per la pazienza...