Visualizzazione risultati 1 fino 20 di 20

Discussione: Invio commenti in PDO

  1. #1
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito Invio commenti in PDO

    Salve a tutti. Sono un neofita nel campo del PHP e sto costruendo un blog a fine didattico personale.

    Ma in questo mio progetto sto riscontro un problema nell'inserimento dei commenti. Ecco il codice.

    Codice PHP:
    <form name="comment" action="" method="POST" enctype="text/plain">
    <fieldset>
    <legend>Lascia un commento</legend>

    <div>
    <input type="text" name="Nickname" size="10" maxlength="30" value="Nome & Cognome" class="input"
    onclick="this.value='';"/>

    </div>

    <div>
    <input type="text" name="E_mail" size="10" maxlength="30" value="E-mail"
    class="input" onclick="this.value='';"/>

    </div>

    <div>
    <textarea name="Commento" rows="10" cols="40" id="textarea" />Scrivi un commento</textarea>
    </div>

    <div>
    <input type="submit" value="invia"/>
    <input type="reset" name="reset" value="cancella"/>
    </div>

    <?php

    if(isset($_POST['submit'])) {

    if (isset(
    $_POST['Nickname'])) {
    $Nickname = addslashes(filter_var($_POST['Nickname'], FILTER_SANITIZE_STRING));;
    $Nickname = trim($Nickname);
    echo
    $Nickname . "impostato";
    } else {
    echo
    "scrivi il nome!";
    }
    if (isset(
    $_POST['E_mail'])) {
    $E_mail = addslashes(filter_var($_POST['E_mail'], FILTER_SANITIZE_STRING));;
    $E_mail = trim($E_mail);
    echo
    $E_mail . "impostata";
    } else {
    echo
    "scrivi la e-mail!";
    }
    if (isset(
    $_POST['Commento'])) {
    $Commento = addslashes(filter_var($_POST['Commento'], FILTER_SANITIZE_STRING));;
    $Commento = trim($Commento);
    echo
    $Commento . "impostato";
    } else {
    echo
    "scrivi un commento!";
    }

    if (isset(
    $Nickname) && isset($Commento)) {
    connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    $sql = $connessione->execute('INSERT INTO commenti (Id_post, Immagine, Nickname, Commento, E_mail, Giorno)
    VALUES (:Id_Post, :Immagine , :Nickname , :Commento , :E_mail , :Giorno'
    );
    $sql = $connessione->lastInsertId();
    }
    }
    }
    ?>
    Nella pagina di HTML non ho alcuna scritta [ovviamente, visto che il primo if blocca tutto].
    Come posso controllare dove sbaglio?

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Hai controllato nel database se il commento viene aggiunto una volta compilato il form?

    Cosa fa la funzione connessione?
    Il metodo execute come fa a sostituire i campi (:Id_Post, :Immagine, ecc.) con i valori effettivi delle variabili corrispondenti?

    Aggiungi il codice che si occupa del database, altrimenti è possibile aiutarti.
    Ultima modifica di javascripter : 08-03-2015 alle ore 15.43.46

  3. #3
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Citazione Originalmente inviato da javascripter Visualizza messaggio
    Hai controllato nel database se il commento viene aggiunto una volta compilato il form?
    Sì, ho controllato. Ma non viene inserito alcun valore nel Database.

    Citazione Originalmente inviato da javascripter Visualizza messaggio
    Cosa fa la funzione connessione?
    connette.
    Codice PHP:
    <?php
    function connetti() {

    if(
    strrpos($_SERVER['SERVER_NAME'], 'altervista') !== false){
    $host = "localhost";
    $db_name = "my_marcoimprota";
    $username = "marcoimprota";
    $password = "0";
    }else{
    $host = "localhost";
    $db_name = "sito";
    $username = "root";
    $password = "0";
    }

    $connessione = new PDO ("mysql:host=$host; dbname=$db_name", $username, $password);
    $connessione->query("SET NAMES 'utf8'");

    if (
    $connessione->connect_error) {
    die(
    "Connection failed: " . $connessione->connect_error);
    }

    return
    $connessione;

    }
    ?>
    Citazione Originalmente inviato da javascripter Visualizza messaggio
    Il metodo execute come fa a sostituire i campi (:Id_Post, :Immagine, ecc.) con i valori effettivi delle variabili corrispondenti?
    Bella domanda...
    Citazione Originalmente inviato da javascripter Visualizza messaggio
    Aggiungi il codice che si occupa del database, altrimenti è possibile aiutarti.
    Il database è a posto, infatti i dati che sono inseriti li legge. Non funziona solo l'immissione dei dati...

  4. #4
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Ok, dando uno sguardo veloce agli statement pdo sulla documentazione di php stai sbagliando ad eseguire la query (execute non è un metodo dell'oggetto PDO ma di PDOStatement).
    Devi prima prepararla, poi associare i valori (:nome) e infine eseguirla. Oppure puoi usare il metodo query o exec, senza però i vantaggi di una query preparata.

    Ad esempio:
    Codice PHP:
    $st = $connessione->prepare('INSERT INTO commenti (Id_post, Immagine, Nickname, Commento, E_mail, Giorno)
    VALUES (:Id_Post, :Immagine , :Nickname , :Commento , :E_mail , :Giorno'
    );
    $st->execute(
    array(
    ':Id_Post' => $variabile_che_contiene_Id_Post
    ':Immagine' => $variabile_che_contiene_Immagine,
    ...
    // etc.
    )
    );
    Così facendo non hai nemmeno la necessità di usare addslashes (o PDO::quote o qualsiasi funzione di escape).

    In ogni modo, ti consiglio sempre di tenere come riferimento la documentazione: http://php.net/manual/en/book.pdo.php

    p.s. dato che la funzione connessione restituisce un riferimento di un oggetto di tipo PDO, quando la richiami devi salvare il suo valore di ritorno in una variabile:
    Codice PHP:
    $connessione = connessione();
    Ultima modifica di javascripter : 08-03-2015 alle ore 19.13.07

  5. #5
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Ciao, ho provato a fare le modifiche che mi hai detto, ma purtroppo ottengo lo stesso risultato di prima. Memore di precedenti errori ho controllato i nomi dei campi del Database, e risultano essere uguali tra database e query.

    Aggiorno il codice (non funzionante)

    Codice PHP:
    <?php

    if(isset($_POST['submit'])) {

    if (isset(
    $_POST['Nickname'])) {
    $Nickname = filter_var($_POST['Nickname'], FILTER_SANITIZE_STRING);;
    $Nickname = trim($Nickname);
    echo
    $Nickname . "impostato";
    } else {
    echo
    "scrivi il nome!";
    }
    if (isset(
    $_POST['E_mail'])) {
    $E_mail = filter_var($_POST['E_mail'], FILTER_SANITIZE_STRING);;
    $E_mail = trim($E_mail);
    echo
    $E_mail . "impostata";
    } else {
    echo
    "scrivi la e-mail!";
    }
    if (isset(
    $_POST['Commento'])) {
    $Commento = filter_var($_POST['Commento'], FILTER_SANITIZE_STRING);;
    $Commento = trim($Commento);
    echo
    $Commento . "impostato";
    } else {
    echo
    "scrivi un commento!";
    }

    if (isset(
    $Nickname) && isset($Commento)) {
    connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    $Giorno = date('Y-m-d');
    $Stringa = '../../images/user.png';
    $Id_Post = 1;
    $valori = array(
    ':Id_Post' => $Id_Post,
    ':Immagine' => $Stringa,
    ':Nickname' => $Nickname,
    ':Commento' => $Commento,
    ':E_mail' => $E_mail,
    ':Giorno' => $Giorno
    );
    $sql = $connessione->prepare('INSERT INTO commenti (Id_post, Immagine, Nickname, Commento, E_mail, Giorno)
    VALUES (:Id_Post, :Immagine , :Nickname , :Commento , :E_mail , :Giorno'
    );
    $sql = execute($valori);
    }
    }
    }
    ?>
    La documentazione, purtroppo, non so ancora molto leggerla. Ad esempio, non sapevo nemmeno dello Statement...

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Codice PHP:
    connessione();
    if (!
    $connessione) {
    La variabile $connessione non esiste. Non hai effettuato l'assegnamento.

    In ogni caso, specialmente agli inizi direi che è normale che lo script non funzioni al primo colpo (penso un po' a tutti). Serviti delle echo() o meglio di var_dump() per debuggare i pezzi di codice: guarda dove si ferma lo script durante l'esecuzione, in che punto arriva, quali sono i valori delle variabili, etc.

    Ciao!

  7. #7
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Buongiorno a tutti.
    Innanzitutto ringrazio la vostra ampia disponibilità, mi fa molto piacere vedere che -in caso di bisogno- ci siano persone pronte a cooperare.
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    agli inizi direi che è normale che lo script non funzioni al primo colpo (penso un po' a tutti)
    Sì, lo so. L'ho messo in preventivo e per questo non ne sono preoccupato. So che in tutte le cose bisogna un attimo applicarsi per ottenere dei buoni risultati. Ho fatto anche un micro-corso [di 60 ore] ma la parte di inserimento dati in un Database non è stata svolta in aula. Per questo ora ho delle gravi lacune e grandi difficoltà a capire il funzionamento e anche le cose che -per i più esperti- sono magari banalità.
    In seconda battuta dico che i problemi non sono dovuti alla connessione, ho già verificato. Nella stessa pagina ho già implementato delle funzioni che inviano delle query al Database [ricevendo i dati dalle tabelle], e tutto funziona a meraviglia. Come mai ho la connessione? Perché ho diviso le due funzioni connetti() e connessione(). Una la uso quando sono su Altervista, mentre l'altra su locale. Connessione() è quella in locale, visto che sto provando lì il tutto.

    Ricopio il codice e chiedo ulteriormente spiegazioni: cosa sbaglio ancora?

    Codice PHP:
    <?php

    if(isset($_POST['submit'])) {

    if (isset(
    $_POST['Nickname'])) {
    $Nickname = filter_var($_POST['Nickname'], FILTER_SANITIZE_STRING);
    $Nickname = trim($Nickname);
    echo
    $Nickname . "impostato";
    } else {
    echo
    "scrivi il nome!";
    }
    if (isset(
    $_POST['E_mail'])) {
    $Email = filter_var($_POST['E_mail'], FILTER_SANITIZE_STRING);
    $Email = trim($Email);
    echo
    $Email . "impostata";
    } else {
    echo
    "scrivi la e-mail!";
    }
    if (isset(
    $_POST['Commento'])) {
    $Commento = filter_var($_POST['Commento'], FILTER_SANITIZE_STRING);
    $Commento = trim($Commento);
    echo
    $Commento . "impostato";
    } else {
    echo
    "scrivi un commento!";
    }
    $connessione = connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    if (isset(
    $Nickname) && isset($Commento)) {
    $Giorno = date('Y-m-d');
    $Stringa = '../../images/user.png';
    $Id_Post = 1;
    $valori = array(
    ':Id_Post' => $Id_Post,
    ':Immagine' => $Stringa,
    ':Nickname' => $Nickname,
    ':Commento' => $Commento,
    ':E_mail' => $Email,
    );
    $sql = $connessione->prepare('INSERT INTO commenti (Id_post, Immagine, Nickname, Commento, E_mail)
    VALUES (:Id_Post, :Immagine , :Nickname , :Commento , :E_mail'
    );
    $sql = $connessione->execute($valori);
    }
    }
    }
    ?>
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Serviti delle echo() o meglio di var_dump() per debuggare i pezzi di codice
    Lo farei molto volentieri ma, in questo tipo di codice, è possibile farlo? Se ho il primo IF che mi mette la condizione di "se il submit" è premuto, e premendo il bottone ti manda ad un refresh della pagina, come posso vedere gli Echo?
    Ultima modifica di marcoimprota : 09-03-2015 alle ore 10.59.12

  8. #8
    Guest

    Predefinito

    dovresti usare firebug, ed invece di scrivere eco scrivi print ('<pre>'); print $mievariabili; print ('</pre>'); in firebug vedi scritto nella risposta della chiamata.
    Adesso bisognerebbe vedere un pò da vicino il codice, però a primo impatto nel php inizializza le variabili subito $nickname=$_POST['nickname'] etc...poi lavori

    if (isset($nickname)){ fai quello che devi fare}...

    in poche parole ordinare un pò meglio il codice, quando hai fatto i controlli ed hai il nickname valorizzato e l'email e il commento per l'insert non hai bisogno dell'execute, che necessita di un prepare ma ti basta fare
    Codice PHP:
    $db = new PDO("sqlite:MIODATABASE.db");//Mi connetto

    //RICAVA I DATI DELLE INPUT IN POST
    $nickname = $_POST['nickname'];
    $email = $_POST['email'];
    $commento = $_POST['commento'];

    //Eseguiamo la query per l'inserimento dei dati nella tabella
    $sql = ("INSERT INTO MIATABELLA (nickname, email, commento)
    VALUES (
    '
    $nickname',
    '
    $email',
    '
    $commento')");

    $db -> exec($sql);

  9. #9
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Alla luce del nuovo messaggio invio il testo [sempre non funzionante] delle modifiche apportate:

    Codice PHP:
    <form name="comment" action="" method="POST" enctype="text/plain">
    <fieldset>
    <legend>Lascia un commento</legend>

    <div>
    <input type="text" name="Nickname" id="Nickname" size="10" maxlength="30" value="Nome & Cognome" class="input"
    onclick="this.value='';"/>

    </div>

    <div>
    <input type="text" name="E_mail" id="E_mail" size="10" maxlength="30" value="E-mail"
    class="input" onclick="this.value='';"/>

    </div>

    <div>
    <textarea name="Commento" id="Commento" rows="10" cols="40" id="textarea" />Scrivi un commento</textarea>
    </div>

    <div>
    <input type="submit" value="invia"/>
    <input type="reset" name="reset" value="cancella"/>
    </div>

    <?php

    if(isset($_POST['submit'])) {

    $n = $_POST['Nickname'];
    $e = $_POST['E_mail'];
    $c = $_POST['Commento'];
    $b = $_POST['submit'];
    $s = '../../images/user.png';
    $i = 1;

    $connessione = connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    if (isset(
    $n) && isset($c)) {
    $sql = $connessione->prepare('INSERT INTO commenti (Id_post, Immagine, Nickname, Commento, E_mail)
    VALUES (:Id_post, :Immagine , :Nickname , :Commento , :E_mail'
    );
    $valori = array(
    ':Id_post' => $i,
    ':Immagine' => $s,
    ':Nickname' => $n,
    ':Commento' => $c,
    ':E_mail' => $e,
    );
    print(
    '<pre>');
    print(
    $valori);
    print(
    '</pre>');
    $sql = $connessione->execute($valori);
    }
    Il problema risulta esserci ancora. Il print non printa nulla sulla pagina [come giustamente dovrebbe essere] e nel database non vengono inseriti i dati.
    Ho provato anche a mettere prima la parte delle variabili e dopo il IF(isset($_POST['submit'])), ma ovviamente viene scritto che non sono state impostate [al caricamento della pagina ... ].

  10. #10
    Guest

    Predefinito

    ehh ma così non può andare....per il momento lascia fuori i controlli li fai quando il salvataggio va a buon fine e prova a fare così...

    Codice PHP:

    if(isset($_POST['submit'])) {
    $id_post='1'; //mettiamo intanto 1 vedi se salva
    $n = $_POST['Nickname'];
    $e = $_POST['E_mail'];
    $c = $_POST['Commento'];
    //$b = $_POST['submit'];
    $s = '../../images/user.png';
    $i = 1;

    $connessione = connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    $sql = ('INSERT INTO commenti (Id_post, Immagine, Nickname, Commento, E_mail)
    VALUES ('
    $id_post',' $s' ,' $n' ,' $c' ,' $e');

    $connesione -> exec($sql)
    }
    }

  11. #11
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Nulla, il risultato è lo stesso. Non scrive nulla nel database e nella pagina.

    Questo è quello che ho introdotto:

    Codice PHP:
    <?php
    if(isset($_POST['submit'])) {
    $id_post=1; //mettiamo intanto 1 vedi se salva
    $n = $_POST['Nickname'];
    $e = $_POST['E_mail'];
    $c = $_POST['Commento'];
    //$b = $_POST['submit'];
    $s = '../../images/user.png';
    $i = 1;

    $connessione = connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    $sql = ("INSERT INTO commenti(Id_post, Immagine, Nickname, Commento, E_mail)
    VALUES (
    $id_post,$s,$n,$c,$e)");

    $connessione -> exec($sql);
    }
    }
    ?>

  12. #12
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito



    Immagine della tabella del database: commenti
    e i vari campi...

  13. #13
    Guest

    Predefinito

    Marco la logica è quella che hai fatto fin'ora, prova a controllare bene innanzi tutto gli apici ed il passaggio dei parametri, ti metto un esempio che facemmo tempo fa con PDO proprio all'isset del bottone inserisci in tabella, la logica è questa prova a vedere l'ortografia, sarà questione di una cavolata...

    Codice PHP:

    //Al click del bottone "Salva", VENGONO SALVATI I DATI NEL DATABASE
    if (isset($_POST['ButtUpdateLog'])) {
    //apriamo la connessione
    $db = new PDO("sqlite:WebDB.db");

    //RICAVA I DATI DELLE INPUT IN POST
    $TxtDataInizio = $_POST['TxtDataInizio'];
    $TxtDataFine = $_POST['TxtDataFine'];
    $TxtDescrizioneLog = $_POST['TxtDescrizioneLog'];
    $TxtH = $_POST["TxtH"];
    $idAmbito = $_POST['idAmbito'];
    $idIntervento = $_POST['idIntervento'];
    $TxtModulo = $_POST['TxtModulo'];
    $User=$datiUtente['id'];
    //Eseguiamo la query per l'inserimento dei dati nella tabella
    $sql = ("INSERT INTO Log (Data_inizio,Data_fine,Descrizione,H,Ambito_id,Tipo_intervento_id,Script_id,User_id)
    VALUES (
    '
    $TxtDataInizio',
    '
    $TxtDataFine',
    '
    $TxtDescrizioneLog',
    '
    $TxtH',
    $idAmbito,
    $idIntervento,
    '
    $TxtModulo',
    '
    $User')");
    $db -> exec($sql);
    }

  14. #14
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Ormai la struttura l'ho capita. Solo che mettendo anche tutte le virgolette e gli apici corretti, non c'è verso, non funziona e non salva i valori nel Database.
    Se voi vedere errori, che magari a me sfuggono, avvisatemi. Tanto ormai ho messo tutto...

    Mettendo anche dei valori fissi non funziona...

    Codice PHP:
    <?php
    if(isset($_POST['submit'])) {
    $connessione = connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    $id_post=1; //mettiamo intanto 1 vedi se salva
    $n = "giovannone";
    $e = "sdfsdf@dssfs.it";
    $c = "Bello";
    //$b = $_POST['submit'];
    $s = "../../images/user.png";

    $sql = ("INSERT INTO commenti(Id_post, Immagine, Nickname, Commento, E_mail)
    VALUES ('
    $id_post','$s','$n','$c','$e')");

    $connessione -> exec($sql);
    }
    }
    ?>

  15. #15
    Guest

    Predefinito

    Allora è questo che sballa...

    $connessione = connessione();

    cosa ritorna?invece di essettuare la callback ed usare la funzione come parametro prova a stabilire la connessione direttamente nella pagina di upload se poi funziona aggiusti la chiamata...intanto però devi capire dove è l'errore...poi passo passo aggiusti i punti...Spero ti sia utile, ciao buona giornata.

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,175

    Predefinito

    Citazione Originalmente inviato da marcoimprota Visualizza messaggio
    Lo farei molto volentieri ma, in questo tipo di codice, è possibile farlo? Se ho il primo IF che mi mette la condizione di "se il submit" è premuto, e premendo il bottone ti manda ad un refresh della pagina, come posso vedere gli Echo?
    Hai provato?

    Quando effettui il submit di un form, la pagina viene refreshata (se stiamo parlando della stessa pagina). A questo punto qualsiasi cosa stampi va a finire nella "nuova" pagina; a meno che tu in qualche modo non refreshi ulteriormente, ma non credo.

    Se riesci a cavar le gambe da solo, poi riuscirai (probabilmente) a risolvere anche altri errori che incontrerai successivamente: è molto importante saper debuggare il codice e risolvere il problema da soli.

    Ciao!

  17. #17
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Aggiornamento.

    Ho provato a fare una tabella nuova chiamata Test e rifare tutto da zero, usando una pagina Test.php. Il tutto funzionava così ho pensato di importarlo dentro la mia pagina cambiando il nome della tabella in commenti. A quel punto non mi è più andata nemmeno la visualizzazione degli stessi commenti, dandomi il messaggio:

    Fatal error: Call to a member function fetch() on a non-object in ... on line 155

    e bloccando tutto quando dovrebbe visionare i commenti. Ho provato a ricaricare vecchie pagine salvate, senza introdurre l'inserimento dei commenti, ma anche in quelle fa lo stesso effetto. Da sempre la scritta sovraindicata.

    Mi sono ufficialmente rotto le scatole.

  18. #18
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    Aggiornamento 2:

    sono quasi riuscito a farlo funzionare.
    Ora ho altri problemi:
    1) quello che non mi mostra subito l'ultimo commento inserito, se non dopo due "aggiorna".
    2) ogni volta che aggiorno la pagina, nel database compare un nuovo record. Identico al precedente.

    lascio il php per i posteri:

    Codice PHP:
    <form active="" method="post">
    <input type="text" name="nome" />
    <input type="text" name="mail" />
    <textarea name="commento" id="commento" rows="10" cols="40" id="textarea"></textarea>
    <input type="submit" value="Invia" name="submit" />
    </form>

    <?php
    include_once "funzioni.php";

    if(isset(
    $_POST['submit'])) {
    $connessione = connessione();
    if (!
    $connessione) {
    Echo
    "non posso connettermi";
    } Else {
    $nome = $_POST['nome'];
    $mail = $_POST['mail'];
    $commento = $_POST['commento'];
    $post = 1;
    $s = "../../images/user.png";
    $valori = array($post, $s, $nome, $commento, $mail);
    $q = "INSERT INTO test(id_post, immagine, nome, commento, mail) VALUES (:id_post, :immagine, :nome, :commento, :mail);";
    $query = $connessione->prepare($q);
    $risultato= $query->execute(array(
    ":id_post" => $post,
    ":immagine" => $s,
    ":nome" => $nome,
    ":commento" => $commento,
    ":mail" => $mail
    ));

    }
    }
    ?>

  19. #19
    marcoimprota non è connesso Neofita
    Data registrazione
    24-01-2015
    Messaggi
    26

    Predefinito

    l'ulteriore problema è stato risolto con un

    Codice PHP:
    <?php ob_start(); ?>
    <!DOCTYPE>
    <html>
    ...
    e alla fine dell'inserzione dei commenti:

    Codice PHP:
    $risultato = $query->execute(array(
    ":id_post" => $post,
    ":immagine" => $s,
    ":nome" => $nome,
    ":commento" => $commento,
    ":mail" => $mail
    ));
    }
    header('location: '.$_SERVER['PHP_SELF']);
    }

    }
    ?>

  20. #20
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Eh, non è proprio una soluzione pulita usare ob_start. Non dovresti proprio generare output di sorta se poi effettui una redirezione. E poi perché una redirezione alla pagina medesima?

Regole di scrittura

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