- Home
- Categorie
- Coding e Sistemistica
- PHP
- Implementazione di un portale in PHP
-
[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
-
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.
-
Scusa ma io da quì non vedo i vari
[PHP] $titolo=$_GET['autore'];
$commento=$_GET['commento'];
[/PHP]
etc etc
-
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
-
[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ì...
-
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
-
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
-
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.
-
Dopo la condizione dell'if e dopo l'else devi aggiungere i due punti ( : )
-
Ecco la dimenticanza!
Grazie a entrambi per l'aiuto. Funziona tutto correttamente. Ultimo il portale e poi vi farò vedere il risultato.
CiaoAlessandro