Visualizzazione risultati 1 fino 9 di 9

Discussione: Inserire commenti partendo da un form

  1. #1
    Guest

    Predefinito Inserire commenti partendo da un form

    ciao a tutti oggi volevo stavo per finire un mio template per dei siti ma mi sono fermato in un punto. Volevo mettere un form per commentare solo che il form sono riuscito a crearlo mentre non riesco a capire come continuare lo script. Ecco:
    Codice HTML:
    <div class="article">
              <h2><span>Lascia un</span> commento</h2>
              <div class="clr"></div>
              <form action="#" method="post" id="leavereply">
                <ol>
                  <li>
                    <label for="name">Nome (required)</label>
                    <input id="name" name="name" class="text" />
                  </li>
                  <li>
                    <label for="email">Email Address (required)</label>
                    <input id="email" name="email" class="text" />
                  </li>
                  <li>
                    <label for="website">Website</label>
                    <input id="website" name="website" class="text" />
                  </li>
                  <li>
                    <label for="message">Il tuo messaggio</label>
                    <textarea id="message" name="message" rows="8" cols="50"></textarea>
                  </li>
                  <li>
                    <input type="image" name="imageField" id="imageField" src="http://forum.it.altervista.org/images/submit.gif" class="send" />
                    <div class="clr"></div>
                  </li>
                </ol>
              </form>
            </div>
          </div>
    Come aggiungo i commenti???
    Ultima modifica di andreafallico : 27-02-2011 alle ore 20.15.21

  2. #2
    Guest

    Predefinito

    Be... Sei partito un po' male =)
    Conosci il PHP?
    Hai mai usato il database?
    Se si a tutte due magari riesco a spiegartelo...
    Se no a tutte due potrei provare a spiegarti un po' come funziona il tutto, ok? ;-)

  3. #3
    Guest

    Predefinito

    si ho sbagliato non ho postato il vero script php allora il php lo conosco da poco lo sto studiando ecco ci sono moltissimi errori però:
    Codice PHP:
    <?php
    $utente
    = $_POST["name"];
    $commento = $_POST["message"];
    if (empty(
    $utente)){
    echo
    "Inserire un nome utente con il quale verrà registrato il commento";
    }

    echo
    "<p></p>";

    if (empty(
    $commento)){
    echo
    "Inserire un commento";
    }
    // finisce il sistema dei commenti inizia la connessione al database

    $con = mysql_connect("localhost", "xxxxxxxxx", "xxxxxxxxxxx") or die(mysql_error());
    echo
    "Connesso a MySQL!!<br />";
    mysql_select_db("xxxxxx", $con);
    // preparo la query
    // mostro i contenuti della tabella
    $query = "INSERT INTO commenti (utenti,commenti)
    VALUES ('
    $utente','$commento')";

    // lancio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    // chiudo la connessione a MySQL
    mysql_close();

    echo
    'Commento eseguito';
    //da qui inizia la visualizzazione del commento precedente
    $con = mysql_connect("localhost", "xxx", "xx") or die(mysql_error());
    echo
    "Connesso a MySQL!!<br />";
    mysql_select_db("my_xxxx", $con);
    $ricevuta = mysql_query("SELECT utenti, commenti FROM commenti ");

    while (
    $row = mysql_fetch_array($ricevuta, MYSQL_BOTH)) {
    echo
    'Utenti: ', $row[utenti] , ' Commenti: ', $row['commenti'] , "<br>";
    }
    // chiudo la connessione a MySQL
    mysql_close();

    ?>
    Manca la parte in cui mostro i commenti, devo modificarlo in modo che solo se riempi tutti i campi ti connetti al database
    So che è sbagliato infatti ne sto cercando uno già fatto se ne sai uno scrivi il link per favore.
    Lo "script" lo scritto interamente io per quello è fatto male

  4. #4
    Guest

    Predefinito

    Ah bene!!
    Però scusa non capisco qual'è il prolbema? gli errori? non funziona?

  5. #5
    Guest

    Predefinito

    No dico visto che lo fatto interamente io e sono alle prime armi e da 4 giorni che studio php sicuramente ci sono degli errori.
    Poi una cosa come posso mettere che solo se tutti i campi sono pieni allora prosegue a registrare i dati (utente e commento) nel db?

  6. #6
    Guest

    Predefinito

    ahh...
    be dunque... devi usare javascript...
    In generale dovrei darti queste dritte:
    1. se vuoi che una volta cliccato il pulsante il sito reindirizzi alla stessa pagina devi creare un input di tipo hidden (che per esempio chiamerai name="action") con un valore tipo "TRUE".
    Questo ti serve perchè il codice della pagina va suddiviso in due parti:
    - quando deve solo mostrare il contenuto della pagina.
    - quando deve oltre a mostrare... inserire i valori.
    di conseguenza il file sarà di tipo:
    - (recupera valore di action ($_POST['action'])
    - if($action == FALSE)
    ...mostra il form... ecc...
    - else
    ...recupera i dati dal post e li inserisce nel db...
    ...mostra il form.
    capito questa prima parte?
    2. se vuoi testare che tutti i campi siano compilati fai così (usando javascript):
    nell'head inserisci (adattalo un po te):
    Codice:
    function verifica(){
    var name_verify = TRUE;
    var website_verify = TRUE;
    ...
    
     if(name.value=NULL) name_verify = FALSE;
     if(website.value=NULL) name_verify = FALSE;
    ...
    
    if((!name_verify & !website_verify) | (!name_verify | !website_verify))
          window.alert("ERROREEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE NON HAI COMPILATO TUTTI I CAMPI ecc... tutte le offese che vuoi");
             
    }
    o qualcosa del genere...
    e poi nel pulsante di submit aggiungi: onClick="verifica()"


    spero di essere stato utile

  7. #7
    Guest

    Predefinito

    No non ho capito la prima parte.
    Perchè ho sbagliato a inviarti il form aspetta questo è quello giusto:
    Codice HTML:
     <form action="commenti.php" method="post" id="leavereply">
                <ol>
                  <li>
                    <label for="name">Name (required)</label>
                    <input id="name" name="name" class="text" />
                  </li>
                  <li>
                    <label for="message">Your Message</label>
                    <textarea id="message" name="message" rows="8" cols="50"></textarea>
                  </li>
                  <li>
                    <input type="image" name="imageField" id="imageField" src="http://forum.it.altervista.org/images/submit.gif" class="send" />
                    <div class="clr"></div>
                  </li>
                </ol>
              </form>
    adesso i codice di spunto che mi hai dato come variano?
    Ultima modifica di andreafallico : 27-02-2011 alle ore 20.16.18

  8. #8
    Guest

    Predefinito

    File commenti.php
    Codice PHP:
    <?php
    $utente
    = $_POST["name"];
    $commento = $_POST["message"];
    if (
    $utente==NULL){
    echo
    "Inserire un nome utente con il quale verrà registrato il commento";
    }

    echo
    "<p></p>";

    if (
    $commento==NULL){
    echo
    "Inserire un commento";
    }

    $con = mysql_connect("localhost", "xxxxxxxxx", "xxxxxxxxxxx") or die(mysql_error());
    echo
    "Connesso a MySQL!!<br />";
    mysql_select_db("xxxxxx", $con);

    $query = "INSERT INTO commenti (utenti,commenti)
    VALUES ('
    $utente','$commento')";

    // lancio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    // mysql_close();
    // non c'è bisogno di chiudere perchè devi ancora eseguire query =)

    echo 'Commento eseguito';
    //da qui inizia la visualizzazione del commento precedente

    /* $con = mysql_connect("localhost", "xxx", "xx") or die(mysql_error());
    echo "Connesso a MySQL!!<br />";
    mysql_select_db("my_xxxx", $con);
    */
    // ATTENZIONE! PUOI TOGLIERE mysql_close() e tralasciare quella parte... risparmi spazio (pochissimo =)) e ci capisci di più

    $ricevuta = mysql_query("SELECT utenti, commenti FROM commenti ");

    while (
    $row = mysql_fetch_array($ricevuta, MYSQL_BOTH)) {
    echo
    'Utenti: ' . $row[utenti] . ' Commenti: ' . $row['commenti'] . "<br>";
    }
    // ora chiusiamo la connessiona per davvero
    mysql_close();

    ?>
    credo che così vada bene
    Ultima modifica di andreafallico : 27-02-2011 alle ore 20.16.46

  9. #9
    Guest

    Predefinito

    non va perchè se lascio tutti i campi vuoti scrive lo stesso sul database

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •