Form php per salvare nome visitatore

« Older   Newer »
 
  Share  
.
  1. andrex_93
     
    .

    User deleted


    Salve a tutti quanti, su una pagina web, ho creato un form per far inserire al visitatore il proprio nome.. Questo nome deve essere salvato nel database, perchè poi mi servirà per calcolare il punteggio realizzato da questo utente e stamparlo a video.

    ESEMPIO:
    nella index, inserisco il mio nome ( andrea ).
    Finito di fare quello che devo fare, mi verrà stampato il punteggio, del tipo: ("andrea = XXX punti.")


    il problema e': come cavolo posso farlo? Non mi viene in mente niente, e col php non sono una cima... Potreste aiutarmi?
     
    Top
    .
  2. andrex_93
     
    .

    User deleted


    up
     
    Top
    .
  3. ~Andrey™
     
    .

    User deleted


    Posta il codice inerente al form.
     
    Top
    .
  4. andrex_93
     
    .

    User deleted


    HTML
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>Quiz Online</title>
    </head>
    <body>
    <!-- immagine centrale -->
    <center>
    <img src="http://quiz1online.altervista.org/images/Senza-titolo-6.gif" />
    </center>
    <!-- menu' -->
    <div id="testata" align="center">
    <a href="http://quiz1online.altervista.org/">Home</a> -
    <a href="http://quiz1online.altervista.org/Guestbook.html">Guestbook</a> -
    <a href="http://quiz1online.altervista.org/Credits.html">Credits</a>
    </div>
    <center>
    <div id="box" align="center">
    <p>Inserisci il tuo nome:</p><br>
    <form action="file.php">
    <input type="text" name="nome">
    <input type="submit" name="invio">
    </form>
    </div>
    </center>
    </body>
    </html>


    e' l'intero codice della pagina..
     
    Top
    .
  5.  
    .
    Avatar


    Group
    Member
    Posts
    6,931

    Status
    Offline
    In file.php preleva il nome dell'utente con $_POST['name'], dopodichè effettua una connessione al database e effettua una query del tipo `INSERT INTO nomeTabella(name) VALUES('$name')`.
    Infine chiudi la connessione e aggiungi le dovute protezioni.
    Consulta il manuale se hai bisogno ;)
     
    Top
    .
  6. ~Andrey™
     
    .

    User deleted


    CITAZIONE (Roxas Shadow @ 31/8/2011, 16:19) 
    In file.php preleva il nome dell'utente con $_POST['name'], dopodichè effettua una connessione al database e effettua una query del tipo `INSERT INTO nomeTabella(name) VALUES('$name')`.
    Infine chiudi la connessione e aggiungi le dovute protezioni.
    Consulta il manuale se hai bisogno ;)

    La variabile sarà $_POST['nome'] solo dopo che avrà aggiunto al form l'attributo method="post" (il valore di default è get), e nella query, che scritta in quel modo in PHP va racchiusa tra doppi apici, ci va uno spazio dopo nomeTabella.
     
    Top
    .
  7.  
    .
    Avatar


    Group
    Member
    Posts
    6,931

    Status
    Offline
    CITAZIONE (~Andrey™ @ 31/8/2011, 16:40) 
    CITAZIONE (Roxas Shadow @ 31/8/2011, 16:19) 
    In file.php preleva il nome dell'utente con $_POST['name'], dopodichè effettua una connessione al database e effettua una query del tipo `INSERT INTO nomeTabella(name) VALUES('$name')`.
    Infine chiudi la connessione e aggiungi le dovute protezioni.
    Consulta il manuale se hai bisogno ;)

    La variabile sarà $_POST['nome'] solo dopo che avrà aggiunto al form l'attributo method="post" (il valore di default è get), e nella query, che scritta in quel modo in PHP va racchiusa tra doppi apici, ci va uno spazio dopo nomeTabella.

    Lo spazio e il tipo di apice è indifferente, tu fai
    mysql_query('INSERT INTO nomeTabella(name) VALUES(\'$name\')');
    o
    mysql_query("INSERT INTO nomeTabella(name) VALUES('$name')");
    Io nella risposta precedente ho usato quell'apice per mettere in risalto la query, è ovvio che il parser darà un errore.
    Per il form hai ragione, non avevo notato la mancanza del suddetto attributo.
     
    Top
    .
  8. ~Andrey™
     
    .

    User deleted


    CITAZIONE (Roxas Shadow @ 1/9/2011, 14:45) 
    Lo spazio e il tipo di apice è indifferente, tu fai
    mysql_query('INSERT INTO nomeTabella(name) VALUES(\'$name\')');
    o
    mysql_query("INSERT INTO nomeTabella(name) VALUES('$name')")

    Certo, ma hai cambiato la stringa. Io dicevo che per usare quella che hai postato all'inizio bisogna usare i doppi apici, perché con gli apici singoli PHP avrebbe dato errore, dato che quelli in VALUES() non erano 'backslashati'. Era solo per evitare un errore all'utente, che molto probabilmente non conosce la differenza tra apici doppi e singoli.

    Per lo spazio sinceramente non ho provato, mi rifacevo semplicemente alla reference di MySQL (http://dev.mysql.com/doc/refman/5.5/en/insert.html), ma probabilmente non è obbligatorio.
     
    Top
    .
  9. miticgio
     
    .

    User deleted


    Se vuoi che il nome e i punti siano solo visualizzati e non salvati (quindi una volta chiuso il browser non sono più disponibili) allora ti consiglio di creare una sessione. Il codice sarà il seguente:

    CODICE
    <?php

    session_start();

    if(!isset($_POST['submit'])) {
    echo '<form method="post" action="#">
            <input type="text" name="nome">
            <input type="submit" name="submit" value="Invia">
            </form>';
    } else {
            $nome = $_POST['nome'];
            $_SESSION['nome'] = $nome;
            $_SESSION['punti'] = $punti;
           
            echo $nome.' = '.$punti;
    }

    ?>
     
    Top
    .
  10.  
    .
    Avatar


    Group
    Member
    Posts
    6,931

    Status
    Offline
    CITAZIONE (andrex_93 @ 26/8/2011, 11:08) 
    Salve a tutti quanti, su una pagina web, ho creato un form per far inserire al visitatore il proprio nome.. Questo nome deve essere salvato nel database, perchè poi mi servirà per calcolare il punteggio realizzato da questo utente e stamparlo a video.

    ESEMPIO:
    nella index, inserisco il mio nome ( andrea ).
    Finito di fare quello che devo fare, mi verrà stampato il punteggio, del tipo: ("andrea = XXX punti.")


    il problema e': come cavolo posso farlo? Non mi viene in mente niente, e col php non sono una cima... Potreste aiutarmi?

     
    Top
    .
  11. miticgio
     
    .

    User deleted


    Ok... Ho capito. Allora, per prima cosa devi creare una tabella (nel database ovviamente) con i campi: "Nome" e "Punti". Nella index inserisci questo piccolo script:

    CODICE
    <?php

           if(!isset($_POST['submit'])) {
           
                   echo '<form method="post" action="#">
                   Nome: <input type="text" name="nome"><br>
                   <input type="submit" name="submit" value="Partecipa!">
                   </form>';
                   
           } else {
           
                   if($_POST['nome']!= "") {
                           
                           $nome = $_POST['nome'];
                           $tabella_db = "Nome della Tabella";
                           $query = "INSERT INTO '{$tabella_db}' ('Nome') VALUES ('{$nome}');";
                           $query_result = mysql_query($query);
                           
                           if(!$query_result) {
                           
                                   echo 'Messaggio di Errore: Errore nella query!';
                           
                           } else {
                           
                                   echo 'Codici QUIZ ecc...
                                   ........................';
                           
                           }
                           
                   } else {
                           
                           echo 'Devi immettere il tuo nome<br>
                           <form method="post" action="#">
                           Nome: <input type="text" name="nome"><br>
                           <input type="submit" name="submit" value="Partecipa!">
                           </form>';
                           
                   }
                   
           }

    ?>


    Se hai qualche dubbio o domanda scrivili nella risposta. Spero di esserti stato di aiuto, ciao. :B):
     
    Top
    .
10 replies since 26/8/2011, 10:08   310 views
  Share  
.