Visualizzazione risultati 1 fino 8 di 8

Discussione: [php] Inserire dati nel database tramite form, senza cambiare pagina

  1. #1
    Guest

    Predefinito [php] Inserire dati nel database tramite form, senza cambiare pagina

    Ciao a tutti.

    Ho questo script, ma non riesco a farlo funzionare...

    Codice PHP:
    <?php

    // valorizzazione delle variabili con i parametri dal form
    if(isset($_POST['submit'])&&($_POST['submit']=="Scrivi")){

    if(isset(
    $_POST['user'])){
    $user = addslashes(filter_var($_POST['user'], FILTER_SANITIZE_STRING));
    }
    if(isset(
    $_POST['sito'])){
    $sito = addslashes(filter_var($_POST['sito'], FILTER_SANITIZE_STRING));
    }
    if(isset(
    $_POST['messaggio'])){
    $messaggio = addslashes(filter_var($_POST['messaggio'], FILTER_SANITIZE_STRING));
    }

    $host = "localhost";
    $user = "";
    $password = "";

    $nomedb = "";

    $connnessione = mysql_connect($host,$user,$password);

    $db = mysql_select_db($nomedb, $connnessione);

    $result = mysql_query("INTERT INTO guestbook(user,sito,messaggio) VALUES('$user', '$sito', '$messaggio')");

    mysql_close($connnessione);

    }else{
    // form per l'inserimento
    ?>

    <h1>Inserisci un messaggio</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    User:<br>
    <input name="user" type="text"><br />
    URL sito:<br>
    <input name="sito" type="text"><br />
    Messaggio:<br>
    <textarea name="messaggio" cols="60" rows="18"></textarea><br />
    <input name="submit" type="submit" value="Scrivi">
    </form>

    <?
    }
    ?>
    Dov'è l'errore?
    Ultima modifica di musicanapoli : 06-10-2011 alle ore 14.08.27

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    l'errore è sicuramente nella query.
    aggiungi alla query mysql_error() per vedere l'errore.....

    quale è il campo per la data nella tabella guestbook ?
    dove è definito $page_data ?

    gli apici non li hai chiusi correttamente -->'$messaggio,$page_data'
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Guest

    Predefinito

    No, ho fatto un copia ed incolla errato, la variabile page_data non c'è. Ho aggiustato lo script del messaggio iniziale.

    Ho fatto l'echo di mysql_error() e quando clicco su invio, mi stampa questo errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTERT INTO guestbook(user,sito,messaggio) VALUES('Ciao', 'http://sito.it', 'dgf' at line 1

  4. #4
    Guest

    Predefinito

    Prova a fare un echo del testo della query (non si sa mai che testo viene fuori...) ed eseguirla poi in phpmyadmin ...

  5. #5
    Guest

    Predefinito

    Codice:
    INTERT INTO guestbook(user,sito,messaggio) VALUES('ciao', 'http://', 'ehiiiii')
    Ho eseguito la query su phpmyadmin e mi da l'errore:
    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTERT INTO guestbook(user,sito,messaggio) VALUES('ciao',

  6. #6
    Guest

    Predefinito

    nel DB, il campo user di che tipo è? (VARCHAR, INT, ...)

  7. #7
    Guest

    Predefinito

    EDIT

    Ho aggiunto anche il campo data ed ho scritto la query in questo modo ed adesso funziona:
    Codice PHP:

    $data
    = date("Y-m-d");
    $result = mysql_query("INSERT INTO guestbook (user, email, sito, messaggio, page_data)
    VALUES ( '
    $user', '$email', '$sito', '$messaggio', '$data' ) ;");
    Ultima modifica di musicanapoli : 06-10-2011 alle ore 16.45.56

  8. #8
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Perché inserisci il punto e virgola dentro la query?
    Codice PHP:
    mysql_query("INSERT INTO guestbook (user, email, sito, messaggio, page_data)
    VALUES ( '
    $user', '$email', '$sito', '$messaggio', '$data' ) ;");
    E poi è INSERT, non INTERT!
    Ciao!

Regole di scrittura

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