Visualizzazione risultati 1 fino 6 di 6

Discussione: Non recupera i dati dal form

  1. #1
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito Non recupera i dati dal form

    Ciao a tutti, premesso che devo finire la parte dei checkbox che è una cosa a parte, questo è il codice:
    Codice PHP:
    <form name="form1" method="post" action='?inviodati=ok'>
    <table width="798" border="0" cellspacing="0">
    <tr>
    <td colspan="4">Commenti dagli utenti</td>
    </tr>
    <tr>
    <td width="115">Di la tua:</td>
    <td width="280">&nbsp;</td>
    <td width="115">&nbsp;</td>
    <td width="280">&nbsp;</td>
    </tr>
    <tr>
    <td>Nome:</td>
    <td><label>
    <input name="nome" type="text" id="nome" size="40">
    </label></td>
    <td>Commento:*</td>
    <td rowspan="5"><label>
    <textarea name="commento" id="commento" cols="42" rows="7"></textarea>
    </label></td>
    </tr>
    <tr>
    <td>Cognome:</td>
    <td><label>
    <input name="cognome" type="text" id="cognome" size="40">
    </label></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>Email:*</td>
    <td><label>
    <input name="email" type="text" id="email" size="40">
    </label></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>Autorizzazioni:</td>
    <td><input type="checkbox" name="mostra_nome" id="mostra_nome">
    Mostra il mio nome.</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><label>
    <input type="checkbox" name="mostra_mail" id="mostra_mail">
    Mostra il mio indirizzo Email.</label></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="checkbox" name="ricevi_commenti" id="ricevi_commenti">
    Avvisami quando qualcuno commenta.</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>* Campi necessari</td>
    <td>&nbsp;</td>
    <td><input type="reset" name="reset" id="reset" value="Cancella tutto" />
    <input type="submit" name="invia" id="invia" value="Invia il commento" /></td>
    </tr>
    </table>
    </form>


    <?php
    // attraverso un if controlliamo che il form sia stato inviato
    if ( $_GET['inviodati'] == "ok" ) {

    // recuperiamo i dati inviati con il form
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $mostra_nome = $_POST['mostra_nome'];
    $mostra_mail = $_POST['mostra_mail'];
    $ricevi_commenti = $_POST['ricevi_commenti'];
    $commento = $_POST['commento'];

    // ora controlliamo che i campi siano stati tutti compilati
    if ( $email == TRUE && $commento == TRUE ) {

    // controlliamo se il campo mail � stato scritto in maniera errata
    $mail = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$email);

    if (
    $mail == TRUE ) {

    // e inviamo una mail con il riuscito inserimento del commento all'utente
    $oggetto_mail = "Commento inserito nella galleria di Carmine Gioia";
    $mittente_mail = "From: Galleria di Carmine Gioia <>";
    $messaggio_mail = "Buongiorno $nome $cognome,\n
    ti confermiamo che il tuo commento e' stato inserito correttamente.\n
    Commento:
    $commento";

    mail ($email, $oggetto_mail, $messaggio_mail, $mittente_mail);

    // invio una mail all'amministratore per informarlo del fatto
    $mailtome0 = "adminreluca@hotmail.it";
    $oggetto_mail0 = "Nuovo commento inserito nella tua galleria";
    $mittente_mail0 = "From: Galleria di Carmine Gioia <>";
    $messaggio_mail0 = "Buongiorno amministratore, ti informo che $nome $cognome ha appena aggiunto un commento fornendo $mail come indirizzo.\n
    Commento:
    $commento";

    mail ($mailtome0, $oggetto_mail0, $messaggio_mail0, $mittente_mail0);

    //recupero la data e l'orario
    $today = date("j F Y, g:i a"); // March 10, 2001, 5:16 pm

    // costruisco la tabella e metto le basi per postarla
    $post = '<table width="800" border="0" cellspacing="0">
    <tr>
    <td colspan="2">Commenti inseriti</td>
    <td width="150">&nbsp;</td>
    <td width="289">&nbsp;</td>
    </tr>
    <tr>
    <td width="125">Nome</td>
    <td width="228">$nome</td>
    <td colspan="2">Ha scritto:</td>
    </tr>
    <tr>
    <td>Cognome</td>
    <td>$cognome</td>
    <td colspan="2" rowspan="4">$commento</td>
    </tr>
    <tr>
    <td>Email</td>
    <td>$email</td>
    </tr>
    <tr>
    <td>Data commento:</td>
    <td>$today</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>'
    ;

    $a=fopen("database_cx_calore.html", "a"); // apro il db html e aggiungo sopra la tabella compilata
    fwrite($a, $post); //scrivo tutto cio che ce in textarea
    fclose($a); //chiudo il file


    // messaggio da far visualizzare all'utente finale
    echo "<div style=\"color:#093\"><strong>Il tuo commento e' stato inserito! Ti e' stata inviata una e-Mail.</strong></div>";
    } else {
    echo
    "<div style=\"color:#F00\"><strong>L'indirizzo e-Mail che ci hai fornito non e' stato scritto correttamente.</strong></div>";
    }
    } else {
    echo
    "<div style=\"color:#F00\"><strong>I campi indicati sono obbligatori.</strong></div>";
    }
    }


    ?>
    Bene, ora funziona tutto, ma se vi spostate a fine script dove dice "// costruisco la tabella e metto le basi per postarla" li trovate il problema, ovvero che non mi va a mettere nel file html che aggiorna i dati del form $nome, $cognome, $commento ecc. ma mi lascia la voce cosi facendomi comparire $nome.
    Quindi il file html me lo crea e aggiunge correttamente la tabella, ma non inserisce i dati.

    Grazie in anticipo per l'aiuto!

  2. #2
    Guest

    Predefinito

    Prova ad aggiungere error_reporting(E_ALL); all'inizio dello script. Poi ti consiglio di sostituire eregi() con preg_match()

  3. #3
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    mi dice:
    Notice: Undefined index: inviodati in /membri/carminegioia/sistema_foto.php on line 71

    la linea 71 è questa:
    Codice PHP:
    if ( $_GET['inviodati'] == "ok" ) {
    ma cosa c'entra questo con il fatto che non mi riporta i dati inseriti nel file html, comunque i dati inseriti me li manda per mail.

  4. #4
    Guest

    Predefinito

    C'entra che tutto quel che vorresti fare, si trova proprio dentro quella condizione, quindi non esistendo inviodati, non ti funziona correttamente lo script.

    Prova a modificare:
    Codice PHP:
    if ( $_GET['inviodati'] == "ok" )
    con:
    Codice PHP:
    if (isset($_POST['invia']))
    e cancella l'action="" del form

  5. #5
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    ora mi dice che ci sono problemi alle linee che riguardano i checkbox

    Notice: Undefined index: mostra_nome in /membri/carminegioia/sistema_foto.php on line 77

    Notice: Undefined index: mostra_mail in /membri/carminegioia/sistema_foto.php on line 78

    Notice: Undefined index: ricevi_commenti in /membri/carminegioia/sistema_foto.php on line 79

  6. #6
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito

    le righe del post di prima sono queste:
    Codice PHP:
    $mostra_nome = $_POST['mostra_nome'];
    $mostra_mail = $_POST['mostra_mail'];
    $ricevi_commenti = $_POST['ricevi_commenti'];
    scusate il doppio post

Regole di scrittura

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