• User Attivo

    [Script] Login

    Ciao a tutti, visto che molti fanno richiesta di un Login ho creato uno script
    ci sono 5 files dentro, il codice è tutto commentato quindi spiego passo a passo quello che faccio.

    dovete solo creare un database con 2 campi, username e password(la password criptata in MD5 per criptarla basta che mentre si inserisce nel database si faccia un md5($pass)

    il secondo passo è impostare il file config.php con i vostri dati

    e il terzo passo è
    provare lo script.

    non l'ho testato ma penso che vada, buona giornata


  • Moderatore

    ti inserisco tra gli script utili grazie 😉


  • User Attivo

    Non c'è di che 🙂 spero che sia utile a qualcuno 🙂


  • User Attivo

    grazie...ho seguito la guida ma mi da un errore quando eseguo il logout...
    [PHP]<?php
    //distruggo le sessioni per fare il logout
    session_destroy();
    echo "Logout effettuato";
    /echo "<script>
    window.location = "index.php"
    </script>";
    /
    ?>[/PHP]
    Questo il msg di errore:

    **Warning**: session_destroy() [[function.session-destroy](http://localhost/tapsos/admin/function.session-destroy)]: Trying to destroy uninitialized session in **C:\Programmi\EasyPHP 2.0b1\www\tapsos\admin\logout.php** on line **3**
    

    che faccio?
    Grazie
    Ciao


  • User Attivo

    All'inizio del file aggiungi include "config.php";

    così deve diventare

    <?php
    include "config.php";
    //distruggo le sessioni per fare il logout
    session_destroy();
    echo "Logout effettuato";
    /echo "<script>
    window.location = "index.php"
    </script>";
    /
    ?>

    fammi sapere


  • User Attivo

    grazie!tutto sistemato!


  • User Newbie

    Ragazzi sono nuovo...Allora ho provato ad utilizzare il codice però ho qualche problema..Ecco cosa mi esce fuori:

    Warning: session_start() [function.session-start]: open(C:/php/sessionfiles\sess_r6ka3fr1sp189nt9ni9dfbnrv6, O_RDWR) failed: No such file or directory (2) in C:\www\login\Login\config.php on line 2
    Non hai fatto il login correttamente, mi spiace riprova o iscriviti
    Warning: Unknown: open(C:/php/sessionfiles\sess_r6ka3fr1sp189nt9ni9dfbnrv6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

    Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:/php/sessionfiles) in Unknown on line 0Mi potreste aiutare?

    EDIT: Ho risolto il problema precedente creando una cartella "sessionfiles" nella root di php....Adesso il problema è che lo script non mi funziona...mi da sempre username e password errate...ho anche provato a togliere la md5 ma non funziona lo stesso...:x

    EDIT 2: Ok tutto risolto...ho dovuto modificare un po il codice ma adesso funziona...se serve ve lo posto...


  • User Attivo

    ciao Darkito e benvenuto nel forum.

    Posta pure il codice si ti và, potrebbe essere utile ad altri.


  • User Newbie

    Ho dovuto modificare lo script login.php
    Ecco il codice:

    File login.php
    [php]<?php

    //includo il file di Configurazione con session_start()) dentro
    include "config.php";

    $userid=trim($_POST['username']);
    $pass=trim($_POST['password']);

    //Eseguo una query nella tabella utenti verificando se esiste l'username con quella password.
    // codice vulnerabile...converebbe introdurre codice anti inject codes..
    $query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '".md5($_POST['password'])."'");
    $var=mysql_num_rows($query);
    //se esiste l'account registra la sessione
    if($var==1)
    {
    //metto l'username nella variabile di sessione "username"
    $_SESSION['username'] = $_POST['username'];
    //Faccio il redirect nella pagine enter.php
    echo "<script>
    window.location = "enter.php"
    </script>";
    }
    else
    {
    //Faccio il redirect nella pagine enter.php
    //Questa sezione può contenere l'implementazione della parte di codice relativa al login errato.
    echo "<script>
    window.location = "enter.php"
    </script>";
    }
    ?>
    [/php]


  • User Attivo

    Grazie darkito sarà un utile feedback per altri utenti


  • User

    scusami DARKITO ma a cosa ti servono

    $userid=trim($_POST['username']);
    $pass=trim($_POST['password']);

    e poi io ho un problema, ti scrivo i miei passi:

    1)uso easyphp in locale e quindi ho scaricato il codice, unzippato nella cartella
    WWW/Login/
    2)ho creato il db con phpmyadmin creando un utente con tutti i privilegi
    username= 'log'
    password= 'log'
    ed ho creato il db nominato 'logdb'
    3)ho creato la tabella 'utenti' con campi 'username' e 'password'
    4)inserito allinterno della tabella i valori 'renato','renato'
    5)ho settato config.php cosi:

    <?php
    session_start();

    $database_name = "logdb";
    $nomeutente = "log";
    $password = "log";

    $connection = mysql_connect( 'localhost', $nomeutente, $password) or die('Could not connect to server.' );
    mysql_select_db($database_name, $connection) or die('Could not select database.');
    ?>

    6)ora quando vado a fare il login ed inserisco renato renato mi esce la pagina con

    Non hai fatto il login correttamente, mi spiace riprova o iscriviti

    Ora mi sai spiegare il perchè?

    p.s. ho fatto tutte le modifiche sopra descritte :mmm:


  • User Attivo

    Ciao pizzet e benvenuto nel forumGT

    Per quanto riguarda **trim **serve a togliere gli spazi all'interno della stringa.

    Per quanto riguarda il secondo punto dovrebbe essere un problema di configurazione del server.

    Potrebbero essere le sessioni non abilitate.


  • User

    grazie per la tua velocità
    cmq se non l'avessi capito non sono un veterano del php ma solo un dilettante.
    Mi potresti spiegare come configurare le sessioni????

    🙂


  • User Attivo

    visto che non lo hai scritto... hai fatto l'iscrizione prima?


  • User

    no ho inserito direttamente i campi nel database quindi dovrebbe trovare l'utente renato quando va a fare la query per il login
    Sbaglio???


  • User Newbie

    @pizzet said:

    no ho inserito direttamente i campi nel database quindi dovrebbe trovare l'utente renato quando va a fare la query per il login
    Sbaglio???

    Forse ho capito quale è il tuo errore...Nell'inserimento molto probabilmente hai inserito la passwordo senza la crittazione MD5 per questo quando cerchi renato renato non ti fa il log-in. Puoi risolvere in due modi:
    1- Modificando la query originale togliendo la crittazione MD5

    [php]$query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '"$_POST['password']."'");[/php]2- Inserendo i dati in questo modo..riporto pure la tabella a cui fa riferimento l'inserimento

    
         CREATE TABLE utenti (
          id INT(4) NOT NULL AUTO_INCREMENT,
          username VARCHAR(65) NOT NULL DEFAULT '',
          password VARCHAR(65) NOT NULL DEFAULT '',
            PRIMARY KEY (id,username)
    
          ) ;
     
        INSERT INTO `utenti` VALUES (1, 'admin', md5('admin'));
    
    
    
    ```Spero di essere stato utile

  • User

    Mi inchino a te!!!!!

    Grazie sei stato grande

    ora invece provo a vedere se riesco a fare la registrazione oppure esiste già lo script inoltre io volevo inserire la funzione in cui l'user volesse modificare dei suoi campi(es.email) hai qualche idea.


  • User Newbie

    @pizzet said:

    Mi inchino a te!!!!!

    Grazie sei stato grande

    ora invece provo a vedere se riesco a fare la registrazione oppure esiste già lo script inoltre io volevo inserire la funzione in cui l'user volesse modificare dei suoi campi(es.email) hai qualche idea.

    Per la registrazione io uso questo script
    [PHP]<?php
    require 'config.ini.php';
    require 'connection.php';

        $nome=trim($_POST['nome']);
        $cognome=trim($_POST['cognome']);
        $codice_fiscale=trim($_POST['codice_fiscale']);
        $via=trim($_POST['via']);
        $civico=intval($_POST['civico']);
        $telefono=trim($_POST['telefono']);
        $citta=trim($_POST['citta']);
        $regione=trim($_POST['regione']);
        $userid=trim($_POST['userid']);
        $pwd=trim($_POST['pwd']);
        
        
        
        $query = "INSERT INTO membro (nome,cognome,codice_fiscale,via,civico,telefono,citta,regione)
        VALUES ('$nome','$cognome','$codice_fiscale','$via',$civico,'$telefono','$citta','$regione')";
        $result=mysql_query($query);
        if (!$result) {  
            die("Impossibile inserire i dati" . mysql_error());  
            
        }  
        $query= "INSERT INTO account (codice_fiscale,userid,pwd,,tipoacc,valido) 
        VALUES ('$codice_fiscale','$userid','$pwd','user',0)";
        $result=mysql_query($query);
        if (!$result) {  
            die("Impossibile creare l'account" . mysql_error());  
            
        }  
        
        echo "Dati Inseriti";
        
        mysql_close();
    

    ?>[/PHP]
    Nel tuo caso dovresti inserire un campo mail. Per quanto riguarda la modifica dei campi non saprei....potresti adottare varie strategie..Quella che mi viene in mente adesso è di cancellare il vecchio record ed inserire quello con i campi aggiornati..Ma per questo punto passo la palla a chi ne sa più di me visto che anche io sono alle prime armi con php e non lo conosco nel dettaglio..magari esiste qualche funzione che ti permette di modificare i valori di un record...


  • User

    lo scrpt così com'era non mi girava.. ho apportato qualche piccola modifica: come faccio a postarlo?? se lo copio e incollo non me lo mostra...


  • User Attivo

    ciao Gigi la Trottol e benvenuto nel forumGT.

    riprova un CTRL-C CTRL-V dovrebbe funzionare ..poi racchiudi il codice cliccando sul tag php accanto a quello di youtube.

    Se vuoi specifica anche casa era che non ti funzionava...

    Grazie