Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Come realizzare un semplice archivio aggiornabile dagli stessi utenti s/za DB ?

    Ciao ragazzi.. sono davvero alle prime armi.. sto leggendo i diversi tutorial di base ma vorrei provare a sperimentare

    Allora, vorrei creare un'archivio di dati anagrafici (i soliti, nome, cognome, età, ecc) che dovrebbe essere aggiornato dagli stessi utenti ma vorrei utilizzare un array anzichè un db.

    Quindi
    - una pagina web che riporta un form per la richiesta di inserimento (i soliti, nome, cognome, età, ecc) e
    - un'altra che prende questi dati e li raccoglie in una tabella che verrà a crearsi man mano che gli utenti inseriscono i loro dati.

    I dati inseriti nel form in html verrebbero esplosi in un array (anche se non so come separare i singoli elementi con dei separatori)

    La funzione explode permette di suddividere una stringa in un vettore
    Sintassi: explode()
    explode(separatore, stringa);
    Quindi pensavo di utilizzare $_POST["dati"] per rilevare ciascun dato dal form html e utilizzare un loop foreach per scorrere l'array ad ogni nuovo inserimento con un indice che si incrementava di un'unità per ogni dato trasmesso ma non riesco a trovare una soluzione che
    - controlli che i dati trasmessi (introdotti tramite il form con lo stesso ordine di inserimento) non siano già presenti nell'archivio (*) (e che quindi riferisca all'utente "dati già presenti") e
    - che rilevi un nuovo inserimento in modo da incrementare l'indice (come fare ?) per cui il foreach scorre l'array per leggere e andare a costruire una nuova riga di dati per tale nuovo inserimento.
    - (non so quale altra verifica e controllo occorra.. se vi viene in mente.. riferitela pure)

    Alla pagina modulo dati dovrebbero accedere solo le persone autorizzate motivo per cui occorerebbe un sistema che rilevi la corrispondenza della coppia username e password.. in rete ho trovato tutorial che spiegano questo con l'uso di un db.. ma vorrei sapere se è possibile farne a meno..

    Ho dato giusto qualche indicazione (le idee sono ancora frammentate) delle funzioni e procedure che vorrei utilizzare.. ma se c'è una strada alternativa più facile.. sono qui per ascoltarvi

    Spero di non chiedervi.. troppo.. e ringranzio in anticipo chi vorrà aiutarmi..

    (*) controllo eventuali duplicati
    codice:
    <?php function esempio ($dato_inserendo, $dato_insererito) 
    { if ($dato_inserendo==$dato_insererito) 
    return "uguali";
    else return "diverse"; }
    
    /*
    Come fare a dire che a quell' "uguali" corrisponde 
    un msg all'utente che dica i dati che sta introducendo 
    sono già presenti in archivio ? 
    E che invece in caso contrario 
    li faccia inserire ?
    */

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    204
    Ciao... Posso farti una domanda? Come mai non vuoi utilizzare un database? E' molto più comodo che un semplice file di testo, puoi organizzarlo come meglio credi e ti rende la vita più facile... Se vuoi un esempio di uno script (che uso) per fare quello che chiedi lo posto (però utilizza un DB)...


  3. #3
    Ciao Ale.. e grazie per il tuo prezioso riscontro.
    Come mai non vuoi utilizzare un database?
    Perchè devo ancora studiare bene come collegarsi al db, fare le query, ecc e volevo sperimentare quello che avevo (o meglio credo di aver) imparato fino a questo momento

    Ma se tu ce l'hai con un db.. riportalo.. mi studierò come hai fatto e riproverà a farlo io

    Grazie ancora per la tua disponibilità

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    204
    Gli script che utilizzo sono leggermente più avanzati di quello che ti serve perché c'è anche la sezione di amministrazione... Prima di questi però usavo uno script presente nella sezione PHP di html.it, per la precisione questo:

    http://php.html.it/articoli/leggi/90...tenti-con-php/

    E' un articolo che spiega passo-passo la registrazione, il login e l'amministrazione di utenti (è ben spiegato e i 3 argomenti sono suddivisi).

    Se dovessi avere bisogno chiedi pure, ok?

  5. #5
    Grazie Ale.. è molto interessante
    http://php.html.it/articoli/leggi/9...utenti-con-php/

    ma è abbastanza avanzato.. da quello che ho capito serve anche per gestire i permessi dei vari utenti.. io vorrei limitarmi al solo riconoscimento di username e password.per l'accesso al form di compilazione. ma il nocciolo della questione sta in quello che viene dopo

    Gli script che utilizzo sono leggermente più avanzati di quello che ti serve perché c'è anche la sezione di amministrazione
    motivo per cui, se non ti faccio perdere del tempo, se riuscissi a postare qui quegli script rimuovendo la sezione di amministrazione potrei studiarmeli

    Per il discorso Array vorrei chiederti/vi ma solo perchè li sto studiando adesso
    che differenza c'è tra

    $_POST["valore"]

    e

    $_POST["valore"]

    O quando usare l'uno o l'altro

    Sembrano uguali ma hanno vengono trattate dal tutorial in due pagine diverse

  6. #6
    ciao volevo vedere lo script di ale87440 ma il server mi dà pagina rimossa,cmq io usavo cose semplici le prime volte,circa 4 mesi fà,quindi si può dire che stiamo agli stessi livelli e forse a me mi capisci.. :-)
    fai così usa il db,prima o poi dovrai imparare,fai una cosa semplice per l'autenticazione,la capirai sicuro..
    In questa poagina che ti arrivano rtramite get o post i valori dei campi:
    $id=$_GET(o post dipende da te)['nome primo input'];
    $password=$_GET['nome secondo input'];
    E poi ti fai una query semplice semplice
    $query="SELECT * from nome_tabella_in_questione where id_utente='$id' AND psw='$password'";
    $execute_query=mysql_query($query) or die ("Query fallita");
    $autenticato=mysql_num_rows($execute_query);
    if($autenticato==1)
    {
    fai quello che vuoi tipo echo "Benvenuto tizio";
    }
    else
    {
    esempio echo Accesso non consentito,non sei registrato!!
    }
    è molto semplice nella sintassi,è fatto passo passo...fammi sapere
    Ciao

  7. #7
    Scusate mi sono confuso tra questo problema ed un altro di un'altra persona..

  8. #8
    Forse ho letto sommariamente il thread, ma non ho trovato alcuna risposta su come salvare i dati se non usi il DB.
    L'unica cosa che mi viene in mente di dirti è usare un file di testo al posto del DB.

    Con le funzioni FOPEN, FREAD, FWRITE e FCLOSE riesci a fare un lavoro decente, ma dimenticati le prestazioni che puoi ottenere usando un DB.

    Nel manuale ufficiale di PHP trovi degli esempi di codice belli e pronti, che puoi adatattare al tuo scopo.
    Ti linko la pagina di FOPEN(), da cui poi trovi vari collegamenti alle altre funzioni di cui ti ho parlato.

    Puoi usare il metodo dei file di testo sia per il sistema di login sia per quello di stoccaggio dei dati (magari usando due diversi file di testo).... ma per evitare doppi inserimenti mi sa che dovrai fare un lavoro mortale.

    Potresti magari leggere i file di testo, esploderli per il carattere separatore che hai deciso (quindi inserirli in un array in maniera trasparente al tuo operato) e poi usare funzioni come IN_ARRAY() per verificare se i valori passati dalla form siano già presenti nel database testuale.

    Ti auguro un in bocca al lupo, perché tutto si fa, ma certo... hai scelto la via più impervia!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    204
    Scusa ma ieri sera avevo dei problemi col forum e non mi faceva rispondere al post..!! Ti metto i file necessari, non ho tempo di provarli ma spero che siano funzionanti con le modifiche che ho fatto...

    File install.php (crea le tabelle necessarie all'interno del DB) (Scusa ma se lo metto tra i tag php non mi permette di risponderti, non so perché solo con questo file)

    <?php
    require 'db.inc.php';

    $db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or
    die ('Unable to connect. Check your connection parameters.');
    mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));

    // crea la tabella utenti
    $query = 'CREATE TABLE IF NOT EXISTS site_user (
    user_id INTEGER NOT NULL AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    password CHAR(41) NOT NULL,

    PRIMARY KEY (user_id)
    )
    ENGINE=MyISAM';
    mysql_query($query, $db) or die (mysql_error($db));

    // crea la tabella informazioni-utenti
    $query = 'CREATE TABLE IF NOT EXISTS site_user_info (
    user_id INTEGER NOT NULL,
    first_name VARCHAR(20) NOT NULL,
    last_name VARCHAR(20) NOT NULL,
    email VARCHAR(50) NOT NULL,
    city VARCHAR(20),
    state CHAR(2),
    hobbies VARCHAR(255),

    FOREIGN KEY (user_id) REFERENCES site_user(user_id)
    )
    ENGINE=MyISAM';
    mysql_query($query, $db) or die (mysql_error($db));

    // popola la tabella utenti
    $query = 'INSERT IGNORE INTO site_user
    (user_id, username, password)
    VALUES
    (1, "john", PASSWORD("secret")),
    (2, "sally", PASSWORD("password"))';
    mysql_query($query, $db) or die (mysql_error($db));

    // popola la tabella informazioni-utenti
    $query = 'INSERT IGNORE INTO site_user_info
    (user_id, first_name, last_name, email, city, state, hobbies)
    VALUES
    (1, "John", "Doe", "jdoe@example.com", NULL, NULL, NULL),
    (2, "Sally", "Smith", "ssmith@example.com", NULL, NULL, NULL)';
    mysql_query($query, $db) or die (mysql_error($db));

    echo 'Success!';
    ?>

    File db.inc.php (i parametri per la connessione al database)

    Codice PHP:
    <?php
    define
    ('MYSQL_HOST','localhost');
    define('MYSQL_USER','root');
    define('MYSQL_PASSWORD','');
    define('MYSQL_DB','nomedeltuodatabase');
    ?>
    File index.php

    Codice PHP:
    <?php
    session_start
    ();
    ?>
    <html>
     <head>
      <title>Logged In</title>
     </head>
     <body>
      <h1>Welcome to the home page!</h1>
    <?php
    if (isset($_SESSION['logged']) && $_SESSION['logged'] == 1) {
    ?>
      

    Thank you for logging into our system, [b]<?php 
    echo $_SESSION['username'];?>.[/b]</p> 
      

    You may now [url="user_personal.php"]click here[/url] to go to your
    own personal information area and update or remove your information should
    you wish to do so.</p>
    <?php
    } else {
    ?>
      

    You are currently not logged in to our system. Once you log in,
    you will have access to your personal area along with other user
    information.</p>
      

    If you have already registered, <a href="login.php">click
    here</a> to log in. Or if you would like to create an account, 
    [url="register.php"]click here[/url] to register.</p>
    <?php
    }
    ?>
    File login.php

    Codice PHP:
    <?php
    session_start
    ();

    include 
    'db.inc.php';

    $db mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASSWORD) or 
        die (
    'Unable to connect. Check your connection parameters.');
    mysql_select_db(MYSQL_DB$db) or die(mysql_error($db));

    // filtro i valori in ingresso
    $username = (isset($_POST['username'])) ? trim($_POST['username']) : '';
    $password = (isset($_POST['password'])) ? $_POST['password'] : '';
    $redirect = (isset($_REQUEST['redirect'])) ? $_REQUEST['redirect'] : 'main.php';

    if (isset(
    $_POST['submit'])) {
        
    $query 'SELECT admin_level FROM site_user WHERE ' .
             
    'username = "' mysql_real_escape_string($username$db) . '" AND ' .
             
    'password = PASSWORD("' mysql_real_escape_string($password$db) . '")';
        
    $result mysql_query($query$db) or die(mysql_error($db));

        if (
    mysql_num_rows($result) > 0) {
            
    $row mysql_fetch_assoc($result);
            
    $_SESSION['username'] = $username;
            
    $_SESSION['logged'] = 1;
            
    $_SESSION['admin_level'] = $row['admin_level'];
            
    header ('Refresh: 5; URL=' $redirect);
            echo 
    '

    You will be redirected to your original page request.</p>'
    ;
            echo 
    '

    If your browser doesn\'t redirect you properly automatically, ' 
    .
                
    '[url="' $redirect '"]click here[/url].</p>';
            
    mysql_free_result($result);
            
    mysql_close($db);
            die();
        } else {
            
    // set these explicitly just to make sure
            
    $_SESSION['username'] = '';
            
    $_SESSION['logged'] = 0;

            
    $error '

    [b]You have supplied an invalid username and/or ' 
    .
                
    'password![/b] Please <a href="register.php">click here ' .
                
    'to register</a> if you have not done so already.</p>';
        }
        
    mysql_free_result($result);
    }
    ?>
    <html>
     <head>
      <title>Login</title>
     </head>
     <body>
    <?php
    if (isset($error)) {
        echo 
    $error;
    }
    ?>
      <form action="login.php" method="post">
       <table>
        <tr>
         <td>Username:</td>
         <td><input type="text" name="username" maxlength="20" size="20"
           value="<?php echo $username?>"/></td>
        </tr><tr>
         <td>Password:</td>
         <td><input type="password" name="password" maxlength="20" size="20"
           value="<?php echo $password?>"/></td>
        </tr><tr>
         <td> </td>
         <td>
          <input type="hidden" name="redirect" value="<?php echo $redirect ?>"/>
          <input type="submit" name="submit" value="Login"/>
        </tr>
       </table>
      </form>
     </body>
    </html>
    <?php
    mysql_close
    ($db);
    ?>
    File register.php

    Codice PHP:
    <?php
    session_start
    ();

    include 
    'db.inc.php';

    $db mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASSWORD) or 
        die (
    'Unable to connect. Check your connection parameters.');
    mysql_select_db(MYSQL_DB$db) or die(mysql_error($db));

    $hobbies_list = array('Computers''Dancing''Exercise''Flying''Golfing',
        
    'Hunting''Internet''Reading''Traveling''Other than listed');

    // filtro i valori in ingresso
    $username = (isset($_POST['username'])) ? trim($_POST['username']) : '';
    $password = (isset($_POST['password'])) ? $_POST['password'] : '';
    $first_name = (isset($_POST['first_name'])) ? trim($_POST['first_name']) : '';
    $last_name = (isset($_POST['last_name'])) ? trim($_POST['last_name']) : '';
    $email = (isset($_POST['email'])) ? trim($_POST['email']) : '';
    $city = (isset($_POST['city'])) ? trim($_POST['city']) : '';
    $state = (isset($_POST['state'])) ? trim($_POST['state']) : '';
    $hobbies = (isset($_POST['hobbies']) && is_array($_POST['hobbies'])) ?
        
    $_POST['hobbies'] : array();

    if (isset(
    $_POST['submit']) && $_POST['submit'] == 'Register') {

        
    $errors = array();

        if (empty(
    $username)) {
            
    $errors[] = 'Username cannot be blank.';
        }

        
    // controllo se l'username è già stato utilizzato
        
    $query 'SELECT username FROM site_user WHERE username = "' .
            
    $username '"';
        
    $result mysql_query($query$db) or die(mysql_error());
        if (
    mysql_num_rows($result) > 0) {
            
    $errors[] = 'Username ' $username ' is already registered.';
            
    $username '';
        }
        
    mysql_free_result($result);

        if (empty(
    $password)) {
            
    $errors[] = 'Password cannot be blank.';
        }
        if (empty(
    $first_name)) {
            
    $errors[] = 'First name cannot be blank.';
        }
        if (empty(
    $last_name)) {
            
    $errors[] = 'Last name cannot be blank.';
        }
        if (empty(
    $email)) {
            
    $errors[] = 'Email address cannot be blank.';
        }

        if (
    count($errors) > 0) {
            echo 
    '

    <strong style="color:#FF000;">Unable to process your ' 

                
    'registration.[/b]</p>';
            echo 
    '

    Please fix the following:</p>'
    ;
            echo 
    '<ul>';
            foreach (
    $errors as $error) {
                echo 
    '[*]' $error '';
            }
            echo 
    '[/list]';
        } else {
            
    // se non ci sono errori inserisco tutto nel DB

            
    $query 'INSERT INTO site_user 
                    (user_id, username, password)
               VALUES 
                   (NULL, "' 
    mysql_real_escape_string($username$db) . '", ' 
                    
    'PASSWORD("' mysql_real_escape_string($password$db) . '"))';
            
    $result mysql_query($query$db) or die(mysql_error());

            
    $user_id mysql_insert_id($db);

            
    $query 'INSERT INTO site_user_info 
                    (user_id, first_name, last_name, email, city, state, hobbies)
               VALUES 
                   (' 
    $user_id ', ' .
                    
    '"' mysql_real_escape_string($first_name$db)  . '", ' .
                    
    '"' mysql_real_escape_string($last_name$db)  . '", ' .
                    
    '"' mysql_real_escape_string($email$db)  . '", ' .
                    
    '"' mysql_real_escape_string($city$db)  . '", ' .
                    
    '"' mysql_real_escape_string($state$db)  . '", ' .
                    
    '"' mysql_real_escape_string(join(', '$hobbies), $db)  . '")';
            
    $result mysql_query($query$db) or die(mysql_error());

            
    $_SESSION['logged'] = 1;
            
    $_SESSION['username'] = $username;

            
    header('Refresh: 5; URL=index.php');
    ?>
    <html>
     <head>
      <title>Register</title>
     </head>
     <body>
      

    [b]Thank you <?php echo $username?> for registering![/b]</p>
      

    Your registration is complete! You are being sent to the page you
    requested. If your browser doesn't redirect properly after 5 seconds,
    [url="index.php"]click here[/url].</p>
     </body>
    </html>
    <?php
            
    die();
        }
    }
    ?>
    <html>
     <head>
      <title>Register</title>
      <style type="text/css">
       td { vertical-align: top; }
      </style>
     </head>
     <body>
      <form action="register.php" method="post">
       <table>
        <tr>
         <td><label for="username">Username:</label></td>
         <td><input type="text" name="username" id="username" size="20"
           maxlength="20" value="<?php echo $username?>"/></td>
        </tr><tr>
         <td><label for="password">Password:</label></td>
         <td><input type="password" name="password" id="password" size="20"
           maxlength="20" value="<?php echo $password?>"/></td>
        </tr><tr>
         <td><label for="email">Email:</label></td>
         <td><input type="text" name="email" id="email" size="20" maxlength="50"
           value="<?php echo $email?>"/></td>
        </tr><tr>
         <td><label for="first_name">First name:</label></td>
         <td><input type="text" name="first_name" id="first_name" size="20"
           maxlength="20" value="<?php echo $first_name?>"/></td>
        </tr><tr>
         <td><label for="last_name">Last name:</label></td>
         <td><input type="text" name="last_name" id="last_name" size="20"
           maxlength="20" value="<?php echo $last_name?>"/></td>
        </tr><tr>
         <td><label for="city">City:</label></td>
         <td><input type="text" name="city" id="city" size="20" maxlength="20"
           value="<?php echo $city?>"/></td>
        </tr><tr>
         <td><label for="state">State:</label></td>
         <td><input type="text" name="state" id="state" size="2" maxlength="2"
           value="<?php echo $state?>"/></td>
        </tr><tr>
         <td><label for="hobbies">Hobbies/Interests:</label></td>
         <td><select name="hobbies[]" id="hobbies" multiple="multiple">
    <?php
    foreach ($hobbies_list as $hobby)
    {
        if (
    in_array($hobby$hobbies)) {
            echo 
    '<option value="' $hobby '" selected="selected">' $hobby .
                
    '</option>';
        } else {
            echo 
    '<option value="' $hobby '">' $hobby '</option>';
        } 
    }
    ?>
          </select></td>
        </tr><tr>
         <td> </td>
         <td><input type="submit" name="submit" value="Register"/></td>
        </tr>
       </table>
      </form>
     </body>
    </html>
    File auth.inc.php

    Codice PHP:
    <?php
    // comincia o continua la sessione
    session_start();

    if (!isset(
    $_SESSION['logged'])) {
        
    header('Refresh: 5; URL=login.php?redirect=' $_SERVER['PHP_SELF']);
        echo 
    '

    You will be redirected to the login page in 5 seconds.</p>'
    ;
        echo 
    '

    If your browser doesn\'t redirect you properly automatically, ' 
    .
            
    '<a href="login.php?redirect=' $_SERVER['PHP_SELF'] . 
            
    '">click here</a>.</p>';
        die();
    }
    ?>
    File secret.php (potrai vederlo solo se hai eseguito correttamente il login)

    Codice PHP:
    <?php
    include 'auth.inc.php';
    ?>
    <html>
     <head>
      <title>Secret</title>
     </head>
     <body>
      <h1>You've found my secret!</h1>
     </body>
    </html>
    Come detto spero di averti messo tutto e se dovessero esserci dei problemi dimmi pure...


  10. #10
    Grazie a tutti per i preziosi riscontri e in particolare ad ale87440

    ale87440.. in questi giorni sono in partenza.. ma al mio ritorno mi studio tutto e ti faccio sapere

    grazie per la tua splendida disponibilità

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.