• User Newbie

    Grazie bluedragon,
    però nel connect.php ci sono solo le informazioni per andare a rilevare un determinato db. A me serve scrivere informazioni differenti a seconda dei differenti utenti.

    penso che sia questa la stringa chiave:

    The edit method takes the ToDo item id and the new text
    	of the ToDo. Updates the database.
    */
    	
    public static function edit($idt, $text){
    	
    	$text = self::esc($text);
    	if(!$text) throw new Exception("Wrong update text!");
    	
    	mysql_query("	UPDATE tz_todo
    					SET text='".$text."'
    					WHERE id=".$idt
    				);
    	
    	if(mysql_affected_rows($GLOBALS['link'])!=1)
    		throw new Exception("Couldn't update item!");
    }
    
    /*
    

    quella tabella tz_todo nel database non ha nessun dato per differenziare le informazioni a seconda dell'utente che le inserisce.
    Come posso fare a creare queste informazioni?

    grazie
    Ciao


  • User

    ah! scusa adesso ho capito, vuoi che inserisca le note di uno specifico utente.

    dovresti modificare abbastanza il codice:

    premesso che non conosco quello script e non l'ho guardato, ma a livello generale, magari ti può aiutare a ricercare su internet se nessuno ti posta il codice pronto, penso dovresti modificare:

    individua dove fa l' "update" e qui dovresti aggiungere:

    Se l'utente esiste; (sessione login) > allora update dove nel database, nell'utente "x" (nella tabella di ogni utente oltre a password, username etc.. deve esserci un campo che da quanto scrivi si dovrebbe chiamare "text" )


  • User

    Ciao a tutti. Ho un grosso dubbio sulle sessioni.
    Come faccio a permettere l'accesso ad una pagina al solo utente a cui la pagina è riservata?
    Il dubbio è che l'utente una volta loggato possa accedere a pagine riservate ad altri cambiando l'indirizzo della pagina.
    Grazie per un chiarimento.


  • User Newbie

    Ciao, ecco il mio problema... ho fatto una prova x vedere se riuscivo a registrarmi al mio sito ma dopo aver compilati i campi e cliccato registra mi dice:Errore 033, contattare l'amministratore No database selected.
    Io per creare la tabella utenti, visto che il mio sito è su altervista, sono andato su tools►PhpMyAdmin e vado su Sql e ci copio quello che hai scritto tu per creare la tabella utenti.
    Ora non so se è questo il problema 😢 ma non so come risolverlo, mi aiuti???


  • ModSenior

    Ciao xDPasqualeDx,
    fai attenzione alle maiuscole e ad non usare lo stile sms nei tuoi messaggi.
    Per quanto riguarda il problema, hai modificato il file di configurazione scrivendo i dati corretti per la connessione al database?


  • User Newbie

    Beh veramente ho usato il solito copia e incolla del codice html o php (a me sembrano uguali) e li ho creati in file .php con il nome indicato. 😞


  • ModSenior

    Si, ma i dati per la connessione al database devi modificarli, mettendo i tuoi corretti.


  • User Newbie

    😞 Non so come si fa e quale file va modificato, me lo potresti spiegare?


  • ModSenior

    Ciao xDPasqualeDx,
    fai attenzione alle maiuscole nei tuoi messaggi.
    Nel file config.php trovi le variabili da modificare, i valori da inserire deve darteli il tuo provider.


  • User Newbie

    Bhe, io non capisco niente di queste cose :bho: l'unica cosa che so è l'indirizzo del mio sito yourbestsite.altervista.org e so come accedere al mio database per inserirci nuove pagine o file oppure utilizzare il PhpMyAdmin.
    Non so neanche che cosa è il provider e come contattarlo :bho: sono disperato 😢.


  • User Newbie

    Ho risolto :yuppi: ho inserito i miei dati in config.php e ora mi ha registrato, grazie mille Thedarkita 🙂


  • ModSenior

    Il tuo provider è altervista in questo caso, da qualche parte di avranno fornito nome database, host del database, nome utente e password, e devi inserire questi dati nel file config.php


  • User Newbie

    Si si :-), in effetti ho inserito quelli, però ora se una persona si iscrive e fa il log-in non può fare niente... perchè dove che ha effettuato il log-in gli esce una pagina bianca con scritto "area privata" e un link sotto che gli fa il log-out. non posso creare un profilo per ogni utente?


  • ModSenior

    Questo è un tutorial per creare un'area riservata, non sono previste altre operazioni, ma puoi comunque modificare lo script in base alle tue esigenze. Ovviamente bisogna imparare php, questo tutorial serve proprio a spiegare il funzionamento di certe cose, non è un semplice script da utilizzare cosi com'è.


  • User Newbie

    A capito... per caso sai se c'è un codice che legge il nome dell'utente che ha fatto il log-in e lo inserisce nella pagina dopo il log-in?grazie


  • ModSenior

    Puoi farlo modificando il file login:
    [php]
    <?php
    // Includo la connessione al database
    require('config.php');

    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Crypto la password e la confronto con quella nel database
    $pass = md5($pass);
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id, user 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);
        
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
        $_SESSION['login_user'] = $login['user'];
        // reindirizzo l'utente
        header('Location: privata.php');
        exit;
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
    

    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>

    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
    <input name="login" type="submit" value="Login" /><br />
    </form>
    </body>
    </html>
    [/php]

    E nella variabile di sessione $_SESSION['login_user'] hai il nome dopo aver effettuato il login.


  • User Newbie

    Ok grazie 🙂 ho fatto,scusa se ti chiedo molte cose, il fatto è che sò poco e niente... però ora mi puoi dire come mandare un e-mail con i dati di iscrizzione e un codice per la modifica della password? ti ringrazio già per le altre risposte 🙂 .


  • ModSenior

    Il codice per la modifica della password, lo trovi in una delle pagine di questa discussione.
    Mentre per l'email ti basta leggere la documentazione relativa alla funzione mail, che è molto semplice:
    http://php.net/mail


  • User

    Ciao, volevo farti un paio di domande:

    1. Il tuo tutorial risale al 2008 (o almeno cosi leggo nel primo post) dopo 4 anni, va ancora bene, oppure andrebbe aggiornato?
    2. Vorrei creare un log delle connessioni, vorrei salvare nel db l'ultima volta che x utente ha fatto i login, è possibile? io avevo pensato di mettere un update di un campo nel db subito dopo aver creato la sessione, secondo te va bene?
    3. E' possibile utilizzarlo su un proprio sito? non ho trovati info al riguardo, se si visto che si tratto di un sito con dati sensibili, me lo consigli come script oppure e meglio trovare altro?

    Scusa per le troppe domande, e ti ringrazio per il tutorial, mi sei stato molto utile.


  • ModSenior

    Ciao sixdas,
    ti rispondo per punti:

    1. Il tutorial va più che bene, non c'è alcun problema di compatibilità con la versione corrente di PHP (PHP 5.4).
    2. Utilizzare una tabella apposita sarebbe meglio, se desideri tenere traccia di tutte le connessioni, e non solo dell'ultima.
    3. Puoi utilizzarlo sul tuo sito, lo script tratta anche la sicurezza per evitare SQL INJECTION per cui non c'è motivo per non utilizzarlo.