Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Password e sessioni

  1. #1

    Password e sessioni

    Salve ragazzi sono un php autodidatta.. ed ho fatto gestionale vendite magazzino fatture conferme ecc... Ora parte del programma logicamente modificata vorrei metterla sul sito aziendale come carrello della spesa.. in modo che si interlacciasse perfettamente il il mio software gestionale logicamente PHP residente nel server dell'azienda..

    La mia domanda è prima di sfogliare pagine e pagine di manuali sulle diverse funzioni e vari modi di farlo.. c'è un modo standard per fare il login protetto da password una cosa tranquilla come quando fate il login per entrare in questo forum ecc..

    Sessioni cookie ecc..

    Poi seguendo il vostro consiglio mi studio il manuale..

    Grassie..
    Gestionale aziendale php ?
    Gestionale vendite php ?
    AGUA GEST semplice e pratico e gpl
    by www.grigomax.it
    AMD_64 / Mandriva2007

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    42
    Non so se è un modo standard, ma io il problema dell'autenticazione con username e password l'ho risolto utilizzando php con un database mysql nel quale chiaramente registro username e password criptate.

    Spero di esserti stato utile...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    43
    crei una tabella utenti in mysql, magari con livelli di accesso,
    okkio a criptare la password, puoi usare la funzione per criptare di mysql "passowrd()" oppure quella di php "md5()", ad ogni login effettui un controllo sulla tabella utente e verifichi che lo username e la password criptata esistano nella tabella, se si salvi i dati user_id user_livello in variabili di sessione e verifichi ad ogni pagina, prima che questa vvenga messa insieme, che le due variabili di sessioni esistono e che $_session[user_livello] sia quello giusto per l'area in cui si cerca di entrare, altrimenti gli risbatti al login


    Forse sono stato troppo diretto e poco chiaro ma tutto insieme dovrebbe avere un senso :maLOL:

  4. #4
    Ok per il database non è un problema.. il cliente deve essere registrato.. quindi verifico sempre le password.. non ho problemi di criptazione in quando non c'é niente di valore.. il fatto è che pensavo; Una volta passato il login positivo.. il cliente vede solo i suoi documenti, bolle ecc. come posso associare per tutto il tempo che il cliente naviga nell'area interna i suoi dati?

    Nel mio programma uso già le sessioni e le distruggo a fine documenti..

    Pensavo con i cookie? associare username e password ad una variabile, in modo da poter richiamarla per estrarre i suoi documenti..

    si puo fare?
    Gestionale aziendale php ?
    Gestionale vendite php ?
    AGUA GEST semplice e pratico e gpl
    by www.grigomax.it
    AMD_64 / Mandriva2007

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    43
    Da quello che ho capito tu i controlli su ogni pagina li fai su user e pass quindi per ogni pagina verifichi se user e pass sono nella tabella utente, però ti elimini le sessioni per ogni pagina(sta cosa non la capisco :rollo: ma non conosco il tuo progetto), se username e password sono criptati non credo ci siano problemi nel salvarli come cookie, onestamente io uso sempre le sessioni per questo lavoro.. però nn penso ci siano problemi di sorta

  6. #6
    Purtroppo le sessioni le uso quando inizi ad ordinare..

    Per esempio fai l'ordine ed inizi a mettere le cose nel carrello..

    Session codicecliente, session userid, session password, session importi, session numero documento, session tipo documento.. alla fine dell'ordine.. session_destroy..

    Però tu sei ancora all'interno dell'area quindi ho bisogno di riprendermi la tua pasword e codice username..

    Per poter fare altro..

    Non ho ne carte di credito che altro.. quindi pensavo al cookie.. per esempio questo forum come fa? appena arrivi ti riconosce per esempio..
    Gestionale aziendale php ?
    Gestionale vendite php ?
    AGUA GEST semplice e pratico e gpl
    by www.grigomax.it
    AMD_64 / Mandriva2007

  7. #7
    lo fa proprio coi cookie, te ne setta uno di nome bbuserid e uno di nome bbpassword, quest'ultimo contiene la pwd criptata (credo in md5)
    Sotto la panza la mazza avanza.

  8. #8
    ridotto all'osso, sicuramente migliorabile, ma funziona

    Codice PHP:
    <?php
    // login.php

    // Connessione al database: presuppone la presenza di una tabella users con un campo nick e un campo password
    $db_host "localhost";
    $db_name "db";
    $db_user "dbuser";
    $db_pwd "dbpassword";
    $conn mysql_connect($db_host,$db_user,$db_pwd)or die("Connessione al server MySQL fallita. L'errore è ".mysql_error());
    mysql_select_db($db_name)or die("Connessione al database fallita. L'errore è ".mysql_error());

    $nick = isset($_POST['nick']) ? $_POST['nick'] : '';  // Leggo il nome utente inserito nel form
    $pwd = isset ($_POST['pwd']) ? $_POST['pwd'] : ''// Leggo la password inserita nel form
    $pwd_md5 = isset ($pwd) ? md5($pwd) : ''// Cripto la password
    $cookienick = isset ($_COOKIE['nick']) ? $_COOKIE['nick'] : ''// Leggo il nome utente contenuto nel cookie, se esiste
    $cookiepwd_md5 = isset ($_COOKIE['pwd_md5']) ? $_COOKIE['pwd_md5'] : ''// Leggo la password criptata contenuta nel cookie, se esiste

    if ($cookienick != ""){ // L'utente è già loggato? 1
        
    echo "Sei loggato come $cookienick"// 1Y Se sì, visualizzane il nome
        
    ?>
        - [url="logout.php"]esci[/url]
        <?php
    }
    else { 
    // 1N Se no, esegui il login

        
    if (($nick!="") && ($pwd!="")) { // Sono stati inseriti utente e password? 2
            
    $q_admin=mysql_query("SELECT * FROM users WHERE nick='$nick' AND password='$pwd_md5'"); // 2Y Se sì, confrontali con quelli del db
            
    $q_admin_count=mysql_num_rows($q_admin);
            if (
    $q_admin_count == 1) { // E' stata trovata una corrispondenza? 3
                
    setcookie("nick"$nicktime()+3600); // 3Y Se sì, memorizza il nick in un cookie...
                
    setcookie("pwd_md5"$pwd_md5time()+3600); // ...e la password in un altro
                
    echo "Benvenuto, " $nick // Visualizza l'avvenuto login
            
    }
            else { 
    // 3N Se no, visualizza un messaggio di errore e invita l'utente a rifare il login
               
    ?>
                Utente o password errati, [url="login.php"]riprova[/url]
                <?php
            
    }
        }
        else { 
    // 2N Se no, chiedi all'utente di inserirli
            
    ?>
            
                <h2>Login utente</h2>
                <form action="login.php" method="post">
                    <table>
                        <tr>
                            <td>
                                Utente
                            </td>
                            <td>
                                <input type="text" name="nick" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Password
                            </td>
                            <td>
                                <input type="password" name="pwd" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <input type="submit" name="formsend" value="Entra" />
                            </td>
                        </tr>
                    </table>
                </form>
            
            <?
        
    }
    }
    mysql_close($conn); // Chiudi la connessione al db
    ?>
    questo per uscire:

    Codice PHP:
    <?php
    // logout.php

    $cookienick $_COOKIE["nick"];
    if (
    $cookienick != "") {
        
    setcookie("nick"""time()-3600);
        
    setcookie("pwd_md5"""time()-3600);
         echo 
    "Logout effettuato con successo";
    }
    else {
        echo 
    "Non sei loggato!";
    }
    ?>
    Sotto la panza la mazza avanza.

  9. #9
    Grazie mille..

    Ora mi studio il tuo script..

    Devo capire bene il tutto e poi inserirlo all'interno del mio programma lato internet..

    Lo stesso script volevo inserirlo anche all'interno del programma stesso per gestire gli utenti o operatori..

    In modo da mettere blocchi..

    Es. tal operatore può fare solo bolle
    tal solo fattute ecc.

    Grazie ancora
    Gestionale aziendale php ?
    Gestionale vendite php ?
    AGUA GEST semplice e pratico e gpl
    by www.grigomax.it
    AMD_64 / Mandriva2007

  10. #10
    potresti gestire gli accessi alle pagine in questo modo (inserisci il codice in testa ad ogni pagina da proteggere):

    Codice PHP:
    <?php
    include "db_connect.php"// Apro la connessione al db
    $cookienick $_COOKIE["nick"]; // Leggo i cookie
    $cookiepwd_md5 $_COOKIE["pwd_md5"];
    // Verifico l'esistenza di un utente nel db così come memorizzato nei cookie:
    $q_admin=mysql_query("SELECT * FROM utenti WHERE nick='$cookienick' AND password='$cookiepwd_md5'");
    $q_admin_array=mysql_fetch_array($q_admin);
    $q_admin_count=mysql_num_rows($q_admin);
    if (
    $q_admin_count==1) { // L'utente è registrato nel db? 1
        
    echo "Benvenuto!"// 1Y Se sì, visualizza la pagina corrente
        // bla bla bla
        // codice xhtml della pagina corrente
        // bla bla bla
    }
    else { 
    // 1N Se no, visualizza un messaggio di errore
        
    echo "Non sei autorizzato ad accedere a questa pagina!";
        }
    mysql_close($conn);
    ?>
    per discriminare fra utenti e operatori potresti aggiungere un campo in più al cookie con un id che identifica le due categorie, e controllarne la presenza per decidere quali pagine rendere accessibili agli uni e non agli altri; non è granchè sicuro perchè se un utente intuisce come è costruito il cookie può sempre modificare il suo per diventare operatore inserendone il relativo id (che deve conoscere), ma se non hai particolari esigenze di sicurezza può andar bene
    Sotto la panza la mazza avanza.

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.