• Consiglio Direttivo

    [php]<form method="GET" action="df_save.php">
    Nome dell'autore <input type="text" name="autore">
    Commento <input type="text" name="commento">
    <input type="hidden" name="id_video" value="<? echo $id_video; ?>">
    <input type="submit" value="Inserisci" name="B"></form>[/php]
    dove $id_video è l'id del video, poi ti salvi tutto sulla tabella commenti 😉


  • User

    Ecco quello che mi mancava

    <input type="hidden" name="id_video" value="<? echo $id_video; ?>"> 
    
    

    Ora però ho un'altro problema problema (che strano). Se compilo il campo "commento" non mi vengono salvati i records sul database...molto strano e non riesco a capire il perchè.

    Ti posto il codice utilizzato...magari trovi l'errore...anche se non penso sia un errore di scrittura.

    Tabella SQL

     
    CREATE TABLE `commenti` (
      `ID` mediumint(9) NOT NULL auto_increment,
      `ID_VIDEO` mediumint(9) NOT NULL ,
      `IP` varchar(60) NOT NULL default '',
      `HOST` varchar(60) NOT NULL default '',
      `DATA` varchar(50) NOT NULL default '',
      `ORA` varchar(40) NOT NULL default '',
      `AUTORE` varchar(255) NOT NULL default '',
      `COMMENTO` varchar(255) NOT NULL default '',
    
      PRIMARY KEY  (`ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;
    
    

    Form inserimento
    [HTML]<form method="GET" action="df_save.php">
    <input type="hidden" name="id_video" value="<? echo $id; ?>">
    <br><input type="text" name="autore">Autore
    <br><input type="text" name="commento">Commento
    <br><input type="submit" value="Inserisci" name="B">
    </form>[/HTML]

    df_save.php
    [PHP]<?
    include("df_config.inc.php");
    //calcolo della data
    $d = date('d');
    $m = date('m');
    $y = date('Y');
    $data = $d ."/". $m ."/". $y;
    //calcolo dell ora
    $g = date('G');
    $i = date('i');
    $ora = $g .":". $i;
    $ip = $REMOTE_ADDR;
    $host = @gethostbyaddr("$REMOTE_ADDR");
    if (trim($titolo) == ""):
    echo "Non è stato specificato il nome";
    elseif (trim($categoria) == ""):
    echo "Non è stata inserito nessun commento";
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "INSERT INTO commenti (ID_VIDEO,IP,HOST,DATA,ORA,AUTORE,COMMENTO) VALUES ('$id_video','$ip','$host','$data','$ora','$autore','$commento')";
    if (mysql_query($query, $db))
    print "Commento inserito correttamente";
    else
    print "Errore nell'inserimento";
    mysql_close($db); endif;
    ?>[/PHP]

    Se compilo entrambi i campi del form non mi salva nulla. Se lascio in bianco commento mi salva il record ma ovviamente senza il campo commento. :mmm:


  • Consiglio Direttivo

    Scusa ma io da quì non vedo i vari
    [PHP] $titolo=$_GET['autore'];
    $commento=$_GET['commento'];
    [/PHP]
    etc etc
    :mmm:


  • User

    Si scusa è che ho sbagliato a postare il codice della pagina df_save.php che è di un'altra sezione.

    df_save.php
    [php]<?
    include("df_config.inc.php");

    $autore=$_GET['autore'];
    $commento=$_GET['commento'];

    //calcolo della data
    $d = date('d');
    $m = date('m');
    $y = date('Y');
    $data = $d ."/". $m ."/". $y;
    //calcolo dell ora
    $g = date('G');
    $i = date('i');
    $ora = $g .":". $i;

    $ip = $REMOTE_ADDR;
    $host = @gethostbyaddr("$REMOTE_ADDR");

    if (trim($autore) == ""):
    echo "Non hai specificato il nome";
    elseif (trim($commento) == ""):
    echo "Non è stato inserito nessun commento";

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $query = "INSERT INTO commenti (ID_VIDEO,IP,HOST,DATA,ORA,AUTORE,COMMENTO) VALUES ('$id_video','$ip','$host','$data','$ora','$autore','$commento')";

    if (mysql_query($query, $db))
    print "Commento inserito correttamente";
    else
    print "Errore nell'inserimento";
    mysql_close($db); endif;
    ?> [/php]

    cmq il problema persiste. se inserisco solo l'autore ok ma se compilo anche il campo commento mi manda a una pagina vuoto dal link video/df_save.php?autore=Alessandro&commento=aaa&B=Inserisci


  • Consiglio Direttivo

    [php] <?
    include("df_config.inc.php");

    $id_video=$_GET['id_video'];
    $autore=htmlentities($_GET['autore'], ENT_QUOTES);
    $commento=htmlentities($_GET['commento'], ENT_QUOTES);

    //calcolo della data
    $d = date('d');
    $m = date('m');
    $y = date('Y');
    $data = $d ."/". $m ."/". $y;
    //calcolo dell ora
    $g = date('G');
    $i = date('i');
    $ora = $g .":". $i;
    // perchè non usi semplicemente il timestamp e poi in visualizzazione usi una sola volta la funzione date();??

    $ip = $REMOTE_ADDR; // questo da dove lo tiri fuori??
    $host = @gethostbyaddr("$REMOTE_ADDR");

    if (trim($autore) == "") {
    echo "Non hai specificato il nome";
    } else if { (trim($commento) == "")
    echo "Non è stato inserito nessun commento";}

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $query = "INSERT INTO commenti (ID_VIDEO,IP,HOST,DATA,ORA,AUTORE,COMMENTO) VALUES ('$id_video','$ip','$host','$data','$ora','$autore','$commento')";

    if (mysql_query($query, $db))
    print "Commento inserito correttamente";
    else
    print "Errore nell'inserimento";
    mysql_close($db); endif;
    ?>[/php]Prova un po' così...


  • User

    E lo sò il codice è molto rudimentale sono autodidatta quindi cerco di arrangiarmi con quel che sò e quel che trovo.

    Cmq ora mi da questo errore:

    Parse error: parse error, unexpected T_ENDIF in C:\AppServ\www\takeconscience\Sito\antimafia\video\df_save.php on line 38


  • User

    Scusa, ma ti da anche la riga dell'errore, basta guardare il codice alla riga corrispondente!

    mysql_close($db); endif;

    l'endif è errato scritto così?
    Se vuoi utilizzare l'endif
    la sintassi corretta è:

    [PHP]
    if (mysql_query($query, $db)):
    print "Commento inserito correttamente";
    else:
    print "Errore nell'inserimento";
    mysql_close($db); endif;
    [/PHP]

    ma ti consiglio di utilizzare le parentesi graffe


  • User

    Ciao satifal ho guardato si la riga dell'errore ma non capisco dove esso stia. La sintassi che io ho utilizzato è la stessa che tu mi hai postato.


  • User

    Dopo la condizione dell'if e dopo l'else devi aggiungere i due punti ( : ) 🙂


  • User

    Ecco la dimenticanza!
    Grazie a entrambi per l'aiuto. Funziona tutto correttamente. Ultimo il portale e poi vi farò vedere il risultato.
    Ciao

    Alessandro