Ciao ho letto la guida praticasu php e msql che mi servirebbe per gestire le news nel mio sito.Quindi seguendo attentamente le varie lezioni l'ho scritta e l'ho provata in locale: bello funziona!
Quindi allegro di poter utilizzare un gestore delle news semplice e perfetto per il mio sito l'ho trasferito sul mio server di hosting,ho cambiato i parametri del config e...sorpresa non funziona!!
Praticamente una volta inserita la news mi dice password errata nonostaante la password sia corretta e provando a togliere dal codice la parte relativa al controllo password mi dice che l'articolo è stato inserito correttamente ma in realtà non è così!
Allora ho contattato il servizio assistenza del mio server e mi hanno risposto in questo modo :
Risposta del tecnico del Supporto di Primo Livello:
Salve,
abbiamo notato che lo script non fa uso corretto degli array superglobali $_POST, $_GET o $_REQUEST.
Sui nostri server la direttiva register_globals è posta ad off ((http://it.php.net/register_globals)) e pertanto non è possibile richiamare le variabili passate tramite url con il loro nome (es. $titolo, $testo), ma bisogna far ricorso al relativo array superglobale (es. $_REQUEST['titolo'], $_REQUEST['testo'])
dato che con il php sono alle prime armi credo che devo andare a sostituire nella pagina save.php così:
<?
include("config.inc.php");
if ($_REQUEST['pass'] != $_REQUEST['password']):
echo "Password errata";
elseif (trim($_REQUEST['titolo']) == "" OR trim($_REQUEST['testo']) == ""):
echo "I campi Titolo e Testo devono essere riempiti!";
else:
$_REQUEST['titolo'] = addslashes(stripslashes($_REQUEST['titolo']));
$_REQUEST['autore'] = addslashes(stripslashes($_REQUEST['autore']));
$_REQUEST['mail'] = addslashes(stripslashes($_REQUEST['mail']));
$_REQUEST['testo'] = addslashes(stripslashes($_REQUEST['testo']));
$_REQUEST['titolo'] = str_replace("<", "<", $_REQUEST['titolo']);
$_REQUEST['titolo'] = str_replace(">", ">", $_REQUEST['titolo']);
$_REQUEST['autore'] = str_replace("<", "<", $_REQUEST['autore']);
$_REQUEST['autore'] = str_replace(">", ">", $_REQUEST['autore']);
$_REQUEST['testo'] = str_replace("<", "<", $_REQUEST['testo']);
$_REQUEST['testo'] = str_replace(">", ">", $_REQUEST['testo']);
$_REQUEST['testo'] = nl2br($_REQUEST['testo']);
$data = mktime("0", "0", "0", $_REQUEST['mese'], $_REQUEST['giorno'], $_REQUEST['anno']);
$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 news (titolo, testo, data, autore, mail, categoria) VALUES ('$_REQUEST['titolo']', '$_REQUEST['testo']', '$_REQUEST['data']', '$_REQUEST['autore']', '$_REQUEST['mail']', '$_REQUEST['categoria']')";
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente.Grazie per il tuo contributo!";
else
echo "Errore durante l'inserimento dell'articolo";
mysql_close($db); endif;
?>
però facendo in questa maniera mi da questo errore:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/mhd-01/www.k3k0.com/htdocs/esame/save.php on line 136
controllando la riga 136 mi risulta quella evidenziata in grassetto.Qualcuno sai aiutarmi e dirmi dove sbaglio?