Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 55
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    37

    Aiuto per semplice login di accesso

    Salve a tutti.

    Premetto che sono digiuno di PHP e volevo sapere se qualcuno di voi potesse darmi una mano nel creare un piccolo script d'accesso.

    Sul mio server ho creato diverse cartelle dove risiedono le varie pagine internet alle quali sto lavorando e vorrei che non vi sia una accesso diretto ma solo dopo aver effettuato un login.
    Poi in base al nome utente e password inseriti si viene re-indirizzati verso la pagina competente al dato utente.
    Lo stesso sistema non vorrei lasciarlo nella root poiché li risiede il mio sito internet, ma vorrei che si trovasse all'interno di una specifica cartella.

    Esempio: miodominio.it/test .Qui viene attivato lo script di login.

    Ringrazio in anticipo chiunque spenda del tempo per aiutarmi ma anche solo per leggere la mia richiesta di aiuto.

  2. #2
    Codice PHP:
    <?php
    $DB_host     
    'localhost';
    $DB_user     'root';
    $DB_password 'secret';
    $DB_name     'test';

    $link mysql_connect($DB_host$DB_user$DB_password);
    if (!
    $link) {
        die (
    'Non riesco a connettermi: ' mysql_error());
    }

    $db_selected mysql_select_db($DB_name$link);
    if (!
    $db_selected) {
        die (
    "Errore nella selezione del database: " mysql_error());
    }

    if(
    $_POST) {
        
    effettua_login();
    } else {
        
    mostra_form();
    }

    function 
    mostra_form()
    {
        
    // mostro un eventuale messaggio
        
    if(isset($_GET['msg'])) {
            echo 
    '[b]'.htmlentities($_GET['msg']).'[/b]

    '
    ;
        }
        
    ?>
        <form name="form_login" method="post" action="">
            <label>nome: <input name="nome" type="text" value="" /></label>

            <label>password: <input name="password" type="password" value="" /></label>

            <input name="invia" type="submit" value="Invia" />
        </form>
        <?
    }

    function 
    effettua_login()
    {
        
    // recupero il nome e la password inseriti dall'utente
        
    $nome      trim($_POST['nome']);
        
    $password  trim($_POST['password']);
        
    // verifico se devo eliminare gli slash inseriti automaticamente da PHP
        
    if(get_magic_quotes_gpc()) {
            
    $nome      stripslashes($nome);
            
    $password  stripslashes($password);
        }

        
    // verifico la presenza dei campi obbligatori
        
    if(!$nome || !$password) {
            
    $messaggio urlencode("Non hai inserito il nome o la password");
            
    header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
            exit;
        }
        
    // effettuo l'escape dei caratteri speciali per inserirli all'interno della query
        
    $nome     mysql_real_escape_string($nome);
        
    $password mysql_real_escape_string($password);    

        
    // preparo ed invio la query
        
    $query "SELECT id FROM utenti WHERE nome = '$nome' AND pswd = MD5('$password')";
        
    $result mysql_query($query);
        
    // controllo l'esito
        
    if (!$result) {
            die(
    "Errore nella query $query: " mysql_error());
        }

        
    $record mysql_fetch_array($result);

        if(!
    $record) {
            
    $messaggio urlencode('Nome utente o password errati');
            
    header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
        } else {
            
    session_start();
            
    $_SESSION['user_id'] = $record['id'];
            
    $messaggio urlencode('Login avvenuto con successo');
            
    header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
        }
    }
    ?>
    sperando che tu stia usando un database lancia:
    Codice PHP:
    CREATE TABLE `utenti` (
       `
    idINT(11NOT NULL AUTO_INCREMENT,
       `
    nomeVARCHAR(32NOT NULL,
       `
    pswdVARCHAR(32NOT NULL,
       
    PRIMARY KEY  (`id`)
    ); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    37
    Grazie mille per la pronta risposta Cooly,

    Provo subito ad implementarlo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    37
    Ecco, a questo punto sono già bloccato dalla mia newbaggine!

    Nel senso che: Ho creato il file index.php con il codice che mi hai postato prima, poi sono entrato nel mio database 'mysql' ed ho eseguito il comando per creare la tabella degli utenti.

    Ho creato un utente di prova ma non sono sicuro di quali permessi debba attribuirgli.
    Inoltre come posso associare il path all'utente che si logga?

    Grazie ancora!

  5. #5
    dai permessi da root

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    37
    Quindi dovrei dare ai miei utenti tutti i permessi?

  7. #7
    no intendo tramite phpmyadmin all'utente principale.. gli altri basta che si registrano..
    ma l'esempio che ti ho mostrato e una base.. devi modificarlo secondo le tue esigenze

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    37
    Originariamente inviato da Cooly
    no intendo tramite phpmyadmin all'utente principale.. gli altri basta che si registrano..
    ma l'esempio che ti ho mostrato e una base.. devi modificarlo secondo le tue esigenze
    Avevo la sensazione si trattasse di codice da abbinare alla registrazione utente.
    Non avevo intenzione di richiedere agli utenti di registrarsi ma fornirei io gli stessi ad ognuno.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    37
    guardati la funzione Session_start() , utilizzandola con l'ISSET riesci a gestire perfettamente la visualizzazione di contenuti. La logica è :

    -fai loggare un tizio con un user e pass;
    -se user e pass esistono , gli fai aprire la session;
    -una volta aperta la session fai un controllo attraverso l'isset nelle pagine che vuoi far visualizzare
    -se la session è aperta e quindi sono loggati , posso vedere la pagina con i relativi link , senno' gli da errore.

    Spero di esserti stato utile.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    37
    Originariamente inviato da addosso
    guardati la funzione Session_start() ...
    Grazie addosso, apprezzo molto la tua risposta.
    Il problema è che sono completamente a digiuno di PHP e non mi è molto facile entrare nella mentalità di tale linguaggio di programmazione.

    Ora provo a mescolare le tue nozioni con altre cose che trovo su internet, ma in primo luogo vorrei capire come aggiungere gli utenti alla tabella creata...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.