qualcuno ha idea di dove sia l'erroe? io non riesco a trovarlo...
qualcuno ha idea di dove sia l'erroe? io non riesco a trovarlo...
Il problema è che no chiudi la parentesi graffa dell'else dove hai inserito il commento // per evitare che i campi non contengano caratteri speciali.
![]()
potresti modificare e postare la pagina esatta per favore? perchè non so più quale delle modifiche sopra sia esatta e quale no...grazie![]()
pezzo, guarda se ho ben capito la modifica che mi hai detto di fare perchè mi da ancora errore alla linea 10:
Codice PHP:<?
include("top_foot.inc.php");
include ("config.inc.php");
top();
if($_POST['pass'] != $password):
print "Password errata.";
elseif (trim($titolo) == "" OR trim($testo) == "")
print "I campi Titolo e Testo non possono rimanere vuoti!";
else { // per evitare che i campi non contengano caratteri speciali
//probabilmente register_globals è ad off
$titolo = $_POST['titolo'];
$autore = $_POST['autore'];
$mail = $_POST['mail'];
$testo = $_POST['testo'];
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$testo = addslashes(stripslashes($testo));
$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$autore = str_replace("<", "<", $autore);
$autore = str_replace(">", ">", $autore);
$testo = str_replace("<", "<", $testo);
$testo = str_replace(">", ">", $testo);
$testo = nl2br($testo);
$data = mktime("0", "0", "0", $mese, $giorno, $anno);
}
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) {
die ("Errore nella connessione al database. Verificare i parametri o contattare l'amministratore.");
}
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri o contattare l'amministratore.");
$query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
if (mysql_query($query, $db)) {
print "Salvataggio dati avvenuto correttamente. Grazie.";
} else {
print "Errore durante il salvataggio.";
}
mysql_close($db);
foot();
?>
ma a che servono i : dopo l'if?
mi sa che quello che ti avevo segnalato era un altro errore![]()
Codice PHP:<?
include("top_foot.inc.php");
include ("config.inc.php");
top();
if($_POST['pass'] != $password):
print "Password errata.";
elseif (trim($titolo) == "" OR trim($testo) == "")
print "I campi Titolo e Testo non possono rimanere vuoti!";
else { // per evitare che i campi non contengano caratteri speciali
//probabilmente register_globals è ad off
$titolo = $_POST['titolo'];
$autore = $_POST['autore'];
$mail = $_POST['mail'];
$testo = $_POST['testo'];
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$testo = addslashes(stripslashes($testo));
$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$autore = str_replace("<", "<", $autore);
$autore = str_replace(">", ">", $autore);
$testo = str_replace("<", "<", $testo);
$testo = str_replace(">", ">", $testo);
$testo = nl2br($testo);
$data = mktime("0", "0", "0", $mese, $giorno, $anno);
}
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) {
die ("Errore nella connessione al database. Verificare i parametri o contattare l'amministratore.");
}
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri o contattare l'amministratore.");
$query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
if (mysql_query($query, $db)) {
print "Salvataggio dati avvenuto correttamente. Grazie.";
} else {
print "Errore durante il salvataggio.";
}
mysql_close($db);
foot();
?>
così facendo (ho tolto i 2 punti che mi hai evidenziato tra i due tag [ b]:[ /b]) e il risultato è:
__________________________________________________ __________________
Notice: Undefined variable: titolo in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 9
I campi Titolo e Testo non possono rimanere vuoti!
Notice: Undefined variable: titolo in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 40
Notice: Undefined variable: testo in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 40
Notice: Undefined variable: data in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 40
Notice: Undefined variable: autore in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 40
Notice: Undefined variable: mail in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 40
Salvataggio dati avvenuto correttamente. Grazie.
__________________________________________________ _________________
ovviamente il salvataggio non è avvenuto correttamente come invece viene stampato a video...
Ma l'hai scritto tu questo codice?![]()
![]()
Dunque, alla riga 9 scrivi
ma $titolo non l'hai dichiarata da nessuna parteCodice PHP:elseif (trim($titolo) == "" OR trim($testo) == "")
mentre i notice della riga 40 nascono dal fatto che le variabili in questione vengono dichiarate solo nel caso in cui sia verificata la condizione dell'else... quindi le righe con la query vengono interpretate sempre e cmq e nel caso in cui la prima if o l'elseif sono verificate le variabili non vengono definite... non è che hai sbagliato a chiudere la famosa parentesi?![]()
infine da dove viene la variabile $password? da uno degli include?
si, come spiegavo qualche messaggio fa, la password è dichiarata nell'include di config.inc.php
la pagina cmq nn l'ho scritta io, stavo solo seguendo la guida che si trova a questo link sai aiutarmi a sistemare il tutto per cortesia?
Ok, prova così!
per maggiore sicurezza ho aperto il tag php con <?php, ho indentato il codice (anche se non so se sul forum si vede correttamente) in modo da riuscire a leggerlo meglio, spostato la chiusura della parentesi graffa dell'else (che secondo me deve contenere anche la query) e... basta!
Se ancora dubbi e/o problemi non esitare a chiedere!![]()
Codice PHP:<?php
include("top_foot.inc.php");
include ("config.inc.php");
top();
if($_POST['pass'] != $password){
print "Password errata.";}
elseif (trim($titolo) == "" OR trim($testo) == ""){
print "I campi Titolo e Testo non possono rimanere vuoti!";}
else { // per evitare che i campi non contengano caratteri speciali
//probabilmente register_globals è ad off
$titolo = $_POST['titolo'];
$autore = $_POST['autore'];
$mail = $_POST['mail'];
$testo = $_POST['testo'];
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$testo = addslashes(stripslashes($testo));
$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$autore = str_replace("<", "<", $autore);
$autore = str_replace(">", ">", $autore);
$testo = str_replace("<", "<", $testo);
$testo = str_replace(">", ">", $testo);
$testo = nl2br($testo);
$data = mktime("0", "0", "0", $mese, $giorno, $anno);
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) {
die ("Errore nella connessione al database. Verificare i parametri o contattare l'amministratore.");
}
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri o contattare l'amministratore.");
$query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
if (mysql_query($query, $db)) {
print "Salvataggio dati avvenuto correttamente. Grazie.";
}
else {
print "Errore durante il salvataggio.";
}
}
mysql_close($db);
foot();
?>
Così mi da:
Notice: Undefined variable: titolo in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 9
I campi Titolo e Testo non possono rimanere vuoti!
Notice: Undefined variable: db in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 51
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in c:\programmi\easyphp1-8\www\prova\pratica php_mysql\save.php on line 51
![]()
![]()
![]()
![]()