Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    35

    [PHP + MYSQL] user registrato e registrazione dati su db

    Salve eccoci di nuovo qui per un altro consiglio. Uso un script che gestisce gli utenti che devono accedere con password, usa sia le sessioni che i permessi ed ha questo db

    CREATE TABLE sessioni (
    uid CHAR(32) NOT NULL,
    user_id INT UNSIGNED NOT NULL,
    creation_date INT UNSIGNED NOT NULL,
    INDEX(uid));

    CREATE TABLE utenti (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(30) NOT NULL,
    surname VARCHAR(30) NOT NULL,
    username VARCHAR(30) NOT NULL,
    password CHAR(32) NOT NULL,
    PRIMARY KEY(id),
    INDEX(username,password));
    Veniamo al dunque della persona che accede al sito devo sapere il nominativo dell'utente (gia registrato sul db) la data, l'ora e la pagina che sta visualizzando. Il tutto deve essere registrato su db.

    Sul forum ho trovato questo

    Detto da boomboom69
    QUI http://forum.html.it/forum/showthrea...hlight=%24user



    a grandi linee...

    io direi di fare due tabelle, 1 per gli utenti registrati, un'altra per vedere chi è online (registrati e non)

    nella tabella degli utenti registrati mettete quello che volete ma è importante che ci sia un campo identificativo univoco (generalmente id primary key auto_increment)
    si presuppone che quando un utente si logga, viene creata una sessione in cui viene registrato l'id dell'utente

    nella tabella online mettete tre campi

    code:
    CREATE TABLE online (
    id int(10) NOT NULL,
    session varchar(50) NOT NULL,
    time int(14) NOT NULL
    KEY id (id)
    ) TYPE=MyISAM;



    in ogni file includete queste righe

    code:
    session_start();
    // prendo l'id di sessione
    $session = session_id();

    // verifico se esiste la sessione con l'id registrato altrimenti imposto l'id = -1
    $user_id = isset($_SESSION['id']) ? $_SESSION['id'] : -1;
    $_SESSION['id'] = $user_id;

    // ora attuale in secondi
    $the_time = time();
    // imposto il timeout in minuti
    $useronline_timeout = 5; // timeout dopo 5 minuti
    $online_timeout = $the_time - ($useronline_timeout * 60);

    // connessione db
    // selezione
    // elimino dalla tabella tutti i record che sono in timeout
    mysql_query("DELETE FROM online WHERE time < $online_timeout");
    // effettuo una query per verificare se esiste o meno la sessione nella tabella
    $result = mysql_query("SELECT 1 FROM online WHERE session='$session'");

    if(mysql_num_rows($result) > 0) {
    // la sessione esiste, aggiorno il record
    mysql_query("UPDATE online SET id='$user_id', time='$the_time' WHERE session='$session'");
    } else {
    // la sessione non esiste, creo il record
    mysql_query("INSERT INTO online (id, session, time) VALUES ('$user_id', '$session', '$the_time')");
    }


    i campi con id = -1 saranno utenti non registrati, quelli con id diverso saranno i registrati
    spero vi sia di aiuto
    Mi puo essere utile? se si come ampliarlo alle mie esigenze?


    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    35
    Nessuno mi aiuta?

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.