Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema form

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    9

    problema form

    Ciao a tutti, premetto che non so praticamente nulla di Php, quindi mi perdonerete se scriverò delle vere e proprie boiate

    Allora, per il mio sito ho bisogno di un form nel quale inserire nome, cognome, email e una richiesta specifica (da fare in uno spazio per l'inserimento di testo). Ecco quello che ho prodotto:

    codice:
    <form method="post" action="http://www.mediciperidirittiumani.org/login.php"> <font face="Verdana, Geneva, sans-serif" size="2">Inserisci il tuo nome:  </font>  <input type="text" name="nome">
     
    <font face="Verdana, Geneva, sans-serif" size="2">Inserisci la tua email:</font> <input type="text" name="email">
     
     <font face="Verdana, Geneva, sans-serif" size="2">Scrivi i dati della persona a cui vuoi regalare la tessera:</font>
     <textarea name="testo" rows="5" cols="40"> </textarea>
      
    <input type="submit" value="Invia"> </form>
    e questa è la pagina Php correlata:

    Codice PHP:
    <?php
    $tuo_nome 
    $_POST['nome'];
    $tua_email $_POST['email'];
    $testo $_POST['testo'];
    echo 
    "Il tuo nome è ".$tuo_nome." e la tua email è ".$tua_email;
    echo 
    "Testo".$testo;
    ?>
    Ora, ho provato ad eseguire alcuni inserimenti di prova e ho visto che, dopo aver premuto invio, la pagina Php mi conferma i dati inseriti. La mia domanda è questa: come posso io webmaster ritrovare i dati inseriti dagli altri utenti?
    Non so se sia una banalità o una sonora cazzata, ma non sono riuscito a trovare da nessuna parte la soluzione a questo dilemma. In pratica vorrei sapere se i dati inseriti vanno a finire da qualche parte e come posso ritrovarli per poi inserirli in un mio database.

    Grazie a chi vorrà rispondere!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17

    Re: problema form

    Ciao,
    allora...
    I dati che ricevi da un form in html, utilizzando il method post, finiscono, appunto, nell'array $_POST["nome_campo"].
    Ovviamente questi dati, una volta inviato il form, vengono memorizzati temporaneamente in quest'array; ma se non vengono processati adeguatamente dallo script, essi vengono persi.
    Quindi, nel tuo caso, se vuoi che essi vengano inseriti in un db mysql, dovrai impostare in questo script una query che si occupi di ciò....
    Oppure potresti far in modo che questi dati ti vengano inviati per email...
    O ancora che vengano memorizzati in dei files txt...
    Insomma, hai solo l'imbarazzo della scelta.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    9
    Perfetto. per fare in modo che vengano memorizzati in un file txt cosa dovrei scrivere?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    17
    Hmm, qui dipende da come vuoi che siano strutturati i tuoi files...
    Mettendo il caso che tu voglia scrivere in un unico file, chiamato tessere.txt, dovresti fare qualcosa del genere:
    <?
    $file = fopen("tessere.txt","a+");
    fwrite($file,"Donazione di ".$_POST["nome"]);
    fclose($file);
    ?>
    E così per tutti gli altri dati che vuoi che vengano inseriti nel file.
    Tuttavia, potresti riscontrare un problema: tutti i dati di tutte le donazioni verrebbero tutte sulla stessa riga, decisamente poco leggibile!
    Come ovviare?
    Così:
    <?
    $file = fopen("tessere.txt","a+");
    fwrite($file,"Donazione di ".$_POST["nome"]."\r\n");
    fclose($file);
    ?>
    Spero di esser stato chiaro, altrimenti...Sono qui!

  5. #5

    Re: problema form

    Originariamente inviato da Edo14
    ...
    In pratica vorrei sapere se i dati inseriti vanno a finire da qualche parte e come posso ritrovarli per poi inserirli in un mio database.

    Grazie a chi vorrà rispondere!
    Dici di voler inserire i dati in un tuo database, allora perchè salvarli prima in un file txt e non direttamente nel DB?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    ciao. rigorosamente imho io farei così:

    form.php (la form)
    insert.php (inserimento nel database)

    opzionalmente una pagina intermedia con la visualizzazione dei dati che ti interessano ma questo riguarderebbe gli utenti non te webmaster.

    Provo a fare un esempio in codice.

    P.S. Sto scrivendo a braccio quindi può essere che qualche sintassi sia errata ma comunque la logica è corretta se ho capito bene quello che ti serve

    database.php
    Codice PHP:
    <?php
    $dbuser 
    'il_nome_del_tuo_utente_sql';
    $dbpass 'pass_del_utente_sql';
    $dbhost 'indirizzo_server_sql';
    $dbname 'nome_del_db';

    // Adesso ci connettiamo al database usando username, host e password
    $linkID mysql_connect $dbuser$dbpass$dbhost ) or die ( 'Impossibile connettersi al database' );
    // Adesso selezioniamo il database
    mysql_select_db $dbname$linkID);

    ?>
    form.html
    codice:
    <html>
    <head>
    <title>Form</title>
    </head>
    <body>
    I campi indicati con un asterisco sono necessari
    <form method="post" action="http://www.mediciperidirittiumani.org/report.php"> 
    <font face="Verdana, Geneva, sans-serif" size="2">Inserisci il tuo nome: * </font>  
    <input type="text" name="nome">
    
    
    <font face="Verdana, Geneva, sans-serif" size="2">Inserisci la tua email: * </font> 
    <input type="text" name="email">
    
     
    <font face="Verdana, Geneva, sans-serif" size="2">Scrivi i dati della persona a cui vuoi regalare la tessera: * </font>
    
    <textarea name="testo" rows="5" cols="40"></textarea>
    
    
    
    <input type="submit" value="Invia"> 
    </form>
    report.php
    Codice PHP:
    <?php

    // Verifichiamo che i campi non siano vuoti
    if ( $_POST['nome'] != '' && $_POST['email'] != '' && $_POST['testo'] != '' ) {
    echo 
    "Il tuo nome è: " $_POST['nome'] . "
    "
    ;
    echo 
    "La tua email é: " $_POST['email'] . "
    "
    ;
    echo 
    "Hai immesso il seguente testo: " $_POST['testo'] . "
    "
    ;
    ?>
    <hr>
    I dati inseriti sono corretti ? Se si premi invia altrimenti clicca sul pulsante back del browser
    <form name='nome_form' action='insert.php' method='post'>
    <input type=hidden value="<?php $_POST['nome']; ?>">
    <input type=hidden value="<?php $_POST['email']; ?>">
    <input type=hidden value="<?php $_POST['testo']; ?>">
    <input type=submit>
    <?php
    } else {
    echo 
    "Alcuni campi risultano vuoti. Premi il pulsante back del browser";
    }
    ?>
    insert.php
    Codice PHP:
    <?php

    // Includiamo la libreria di connessione al db
    require_once 'database.php';

    $nome $_POST['nome'];
    $mail $_POST['mail'];
    $testo $_POST['testo'];

    $nome stripslashes('$nome');
    $mail stripslashes('$mail');
    $testo stripslashes('$testo');
    $nome mysql_real_escape_string('$nome');
    $mail mysql_real_escape_string('$mail');
    $testo mysql_real_escape_string('$testo');
    $nome htmlentities('$nome');
    $mail htmlentities('$mail');
    $testo htmlentities('$testo');

    $sql "INSERT INTO utenti (nome, mail, testo) VALUES ('$nome', '$mail', '$testo')";
    $query mysql_query ($sql$linkID);

    ?>
    A questo punto per gli utenti è finita. Non c'è altro da fare. Non rimane che la paginetta admin che consente a te di estrarre i dati del utente in base allo username (o altro dato a tua scelta).

    admin.html
    codice:
    <html>
    <head>
    <title>Pagina di ricerca per il WebMaster</html>
    </head>
    <body>
    Immetti il nome del utente da cercare e premi il pulsante invia
    
    
    <form name = '' action = 'cerca.php' method = 'post'>
    <input type = 'text' name = 'username'>
    
    <input type = 'submit' value = 'cerca'>
    </form>
    </body>
    </html>
    cerca.php
    Codice PHP:
    <?php

    require_once 'database.php';

    $nomeUtente $_POST['username']
    $sql "SELECT * FROM utenti WHERE nome = $username";
    $query mysql_query $sql$linkID );
    $dati mysql_fetch_array $query );
    echo 
    "Stampa i dati del utente";
    echo 
    "Nome utente: " $query[0] . "
    "
    ;
    echo 
    "Email utente: " $query[1] . "
    "
    ;
    echo 
    "Testo: " $query[2];
    ?>
    database
    codice:
    CREATE TABLE IF NOT EXISTS `utenti` (
      `nome` varchar(30) NOT NULL,
      `mail` varchar(50) NOT NULL,
      `test` text NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    Ripeto che ho scritto a braccio quindi qualcosa potrebbe essere errata ma in linea di massima dovrebbe essere la soluzione che cerchi.

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    9
    Grazie mille a tutti, ora faccio un po' di prove poi vi dico.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    9
    Megasquall, facendo come mi hai scritto torna tutto. Ora peròho un problema con Mysql (che ovviamente non conoscevo ), precisamente nel file database.php quando mi chiede user, password e server:

    Codice PHP:
    <?php $dbuser 'il_nome_del_tuo_utente_sql'$dbpass 'pass_del_utente_sql'$dbhost 'indirizzo_server_sql'$dbname 'nome_del_db';
    Ho scaricato Mysql, però non riesco a ritrovare queste informazioni. Sai mica come posso fare?

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.