• User

    Ciao TheDarkita, sono nuovo da queste parti e ti faccio i miei complimenti perché, anche se non ho mai scritto una riga di php, grazie a questo tutorial sto piano piano mettendo un'area riservata nel mio sito. Tuttavia ho dei problemi. Seguendo le indicazioni fra pag 9 e 10 sto cercando di inserire la funzione che consente di resettare la password. ricevo correttamente l'email con l'indirizzo ma quando clicco sul link ricevo sempre il messaggio di errore, Link non valido, i motivi potrebbero essere i seguenti: Hai già; modificato la tua password oppure hai seguito un link errato. Eppure anche il link dall'email mi sembra corretto. Spero che tu mi possa aiutare. Grazie in anticipo.


  • User

    Scusa, come non detto mi erano sfuggite le ultime modifiche che avevi inserito all'utente che aveva già posto la stessa domanda. Grazie, funziona


  • User Attivo

    Ciao Thedarkita!

    Ho ripreso in questi giorni lo script, ogni anno metto mani per aggiungere qualcosa di sto passo a 90 anni forse lo finisco :bigsmile:

    Ho notato oggi la parte riguardante il recupero password circa a pagina 12, tutto funzionante, a parte..
    Io quando richiedo la mail con il link per ricevere la password il link arriva ed è corretto, solo che la pagina in cui mi porta mi fa vedere ancora lo stesso modulo iniziale dove inserire la mail e richiedere la password..
    Quindi credo sia un problema di codice nella pagina recupero.php..
    Però non so, io ho ricopiato esattamente il codice inserito e modificato la parte utile a rendere il link esatto, nulla più.. Sai dirmi se ci sono errori nello script che avevi postato?


  • ModSenior

    Ciao Gigi991,

    se non ricordo male nelle pagine successive avevo corretto un errore, non ricordo in quale pagina però...


  • User Attivo

    Ottimo lo andavo cercando 😛


  • User Attivo

    Ciao Thedarkita!

    Dovrei utilizzare un sistema di "rank/gruppi" stabiliti nel database e che, in base al gruppo di cui si fa parte, si visualizzano menu/contenuti diversi, aggiunte o meno..

    Per essere più chiari, un'esempio:

    Ho il campo "permessi" nella tabella "utenti".
    Imposto di default il livello "utente_registrato" a chi si registra senza attivarsi, per poi assegnare il livello "utente_attivato" una volta che viene attivato l'account tramite email.
    In più ci aggiungo il livello "amministratore" settabile solo da chi è già amministratore attraverso database, o più avanti da una pagina php di amministrazione.

    Avevo pensato ad una cosa simile, ma non riesco a trasformarlo in vero codice:

    if(permessi = amministratore) echo $menu_amministratore;
    elseif(permessi = utente_attivato) echo $menu_utente_attivato;
    elseif(permessi = utente_registrato) echo $menu_utente_registrato;
    else echo $menu_utente;


  • User Newbie

    Ciao Thedarkita,
    ho un problema nella pagina reset...quando clicco sulla mail che mi arriva regolarmente dalla pagina recupero, mi dà questi messaggi:
    Notice: Undefined index: id in C:\Programmi\EasyPHP5.2.10\www\linearchitettura\public_html\www\reset.php on line 34

    Notice: Undefined variable: mail in C:\Programmi\EasyPHP5.2.10\www\linearchitettura\public_html\www\reset.php on line 45

    Warning: mail() [function.mail]: SMTP server response: 554 DATA Transaction failed, no recipients given in C:\Programmi\EasyPHP5.2.10\www\linearchitettura\public_html\www\reset.php on line 45
    Le abbiamo un email contenente la Sua nuova password, controlli la Sua casella email!
    Mi puoi aiutare a capire dove sbaglio?
    Grazie e ciao


  • ModSenior

    Scusate il ritardo nelle risposte, sono stato assente.
    L'argomento riguardo i permessi è stato trattato nelle pagine dietro se non ricordo male.
    Mentre i notice postati da cri65, riguardano variabili che vengono richiamate senza che a queste sia mai stato assegnato un valore, senza vedere il codice da te usato è impossibile aiutarti ulteriormente.


  • User Attivo

    Ciao! Se volessi dopo aver fatto il login mettere nella pagina privata "Benvenuto nome e cognome" come devo fare?

    Ho provato con la sessione ma non mi viene...:?


  • ModSenior

    Ciao Fabrizio23,
    se non ricordo male ne avevamo già parlato nella discussione, hai cercato nelle varie pagine?


  • User Attivo

    Ciao Theda, no non ne avevamo parlato, beh del login sì ma del fatto che nome e cognome in sessione no...


  • ModSenior

    Se vuoi passareli come sessione è sufficiente che nella pagina di login modifichi al query per recuperare nome e cognome e li inserisci in varaibili di sessioni.
    Un altra strada invece è fare una query nella pagina interessata e tenere in sessione solo l'id dell'utente recuperarndo quando necessario gli altri dati.


  • User Attivo

    Ciao! Nella pagina interessata ho scritto così:

    [PHP]$default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    echo "Bentornato $nome_utente $cognome_utente";
    [/PHP]

    Mi scrive solo Bentornato...:? 😞


  • ModSenior

    Dovresti fare:
    [php]
    $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    echo "Bentornato {$default['nome_utente']} {$default['cognome_utente']}";
    [/php]


  • User Attivo

    Certo...se la variabile è $default 🙂

    Grazie Thedarkita, gentilissimo 😉


  • User

    Salve ragazzi, volevo provare questo script, e vorrei usare xampp in locale.
    ora non riesco a configurare mercury mail per la posta in un secondo pc in lan, per simulare l'utente...
    quancuno di voi ha una configurazione simile, da passarmi un esempio di dati dell'host e di configurazione di mercury...

    grazie e ottimo lavoro

    max


  • User Attivo

    maxmizer utilizza EasyPhp e leva tutto quel bordello di mezzo....


    P.s. con questo codice
    [php]
    $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    echo "Bentornato {$default['nome_utente']} {$default['cognome_utente']}";
    [/php]
    ad ogni login diverso stampa e trova sempre uno e un solo utente nel database cioè il primo della lista come mai ?


  • User

    @Thedarkita said:

    Se devi far accedere solo chi ha come permessi admin:
    [php]
    if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
    {
    header('Location: index.php');
    exit;
    }
    [/php]

    Ciao ragazzi mi sono bloccato in questo punto.
    Io ho sia l'attivazione che i permessi e naturalmente come ho pensato
    di fare non funziona, cioè anche se mi loggo come user mei fa accedere
    dunque ergo non vada a fare al comparazione nella tabella id utenti livello.

    questa è la parte del login:

    [php]
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id,attivazione AND livello FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
    // prelevo l'id dal database
    $login = mysql_fetch_array($query);
    // L'account è attivo?
    if($login['attivazione'] == '')
    {
    // Creo una variabile di sessione
    $_SESSION['login'] = $login['id'];
    $_SESSION['permessi'] = $login['livello'];

        // reindirizzo l'utente
        header('Location: privata.php');
        exit;
        }
        else
        {
        die('Attiva il tuo account!!!');
    

    [/php]

    e questa è la parte pagina dell'admin:

    [php]
    <?php
    // Includo la connessione al database
    require('config.php');
    $_SESSION['login'] = $login['id'];
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
    {
    header('Location: index.php');
    exit;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="a.css" rel="stylesheet" type="text/css" />
    </head>
    <body >
    <p class="testo24">Benvenuti nel sito <br /></p>
    <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="1" rowspan="4" bgcolor="#000000"></td>
    <td width="280"><?php
    $default = mysql_fetch_array(mysql_query("SELECT user FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    echo "<span class="testo12"> Bentornato {$default['user']}</span>";
    ?></td>
    <td> </td>
    [/php]

    Nel database ho fatto una tabela livello con inserito Admin o user
    e sulle pagine dell'user inserisco user al posto dell'admin.


  • ModSenior

    Ciao maxmizer,
    la query è errata, dovrebbe essere cosi:
    [php]
    SELECT id,attivazione,livello FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1
    [/php]


  • User

    @Thedarkita said:

    Se devi far accedere solo chi ha come permessi admin:
    [php]
    if(!isset($_SESSION['permessi']) || $_SESSION['permessi'] != 'admin')
    {
    header('Location: index.php');
    exit;
    }
    [/php]

    Perfetto funziona, grazie mille Thedarkita buona serata max.