Ho un problema con la chat di un mio sito web. Mi da un errore:"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mss', Data ='1341766440'' at line 1".
Vi allego il codice della prechat.html:
Codice PHP:
<html xmlns=”[url]http://www.w3.org/1999/xhtml”[/url]>
<head>
<title>Prechat</title>
</head>
<body>
<!– Il form consente di mettere il nome desiderato per quando si è in chat e contine il tasto invia per passare alla pagina successiva –>
<form action="chat.php" method="post">
Inserisci il tuo nickname: <input type="text" name="nome" />
<input value="Entra" type="submit">
</form>
</body>
</html>
Il codice della chat.php:
Codice PHP:
<?php
session_start();
$nome = htmlspecialchars($_POST['nome']);
if($nome != ""){
$_SESSION['Nome'] = $nome;
}else{
echo("Attenzione, dovete inserire un nome valido
");
echo('<a href=”prechat.html”>Indietro</a>');
exit();
}
?>
<html xmlns=”[url]http://www.w3.org/1999/xhtml”[/url]>
<head>
<title>Chat</title>
</head>
<body>
<!– creazione dei due iframe, quello superiore (visualizza) che visualizza le scritte della chat, e quello inferiore (input) nel quale viene visualizzata la pagina per l’input delle scritte –>
<div align"center"><iframe name="visualizza" width="95%" height="90%" frameborder="1" src="chat_visualizza.php"></iframe></div>
<div align="center"><iframe name="input" align="bottom" width="85%" height="50" frameborder="1" src="chat_input.php" scrolling="no"></iframe></div>
</body>
</html>
chat_input.php:
Codice PHP:
<?php
/* Inizializzazione della sessione e inclusione della pagina di accesso al database */
session_start();
include('connessione.php');
/* Controlliamo che l’utente sia entrato correttamente, in caso contrario, stampiamo un messaggio di errore e lo blocchiamo */
if($_SESSION['Nome'] == ""){
echo("Non sei autorizzato ad entrare!");
exit();
}
?>
<html xmlns=”[url]http://www.w3.org/1999/xhtml”[/url]>
<head>
<title>Input chat</title>
</head>
<!– L’evento onLoad mette il cursore del mouse in posizione di scrittura nella casella di scrittura una volta terminato il caricamento della pagina –>
<body onload=”document.inserimento.azione.focus()”>
<!– Le righe sottostanti creano la casella di testo e il bottone di invio. L’evento onSubmit ricarica la pagina ogni volta che viene cliccato il tasto invio –>
<form action="chat_salva.php" target="visualizza" name="inserimento" method="post" onsubmit="javascript:location.reload();">
<input name="azione" size="100">
<input value="Invia" name="invia" type="submit" >
</form>
<?php
/* chiusura del database */
mysql_close($db);
?>
</body>
</html>
chat_salva.php
Codice PHP:
<?php
/* Inizializzazione della sessione e inclusione della pagina di accesso al database */
session_start();
include('connessione.php');
/* Controlliamo che l’utente sia entrato correttamente, in caso contrario, stampiamo un messaggio di errore e lo blocchiamo */
if($_SESSION['Nome'] == ""){
echo("Non sei autorizzato ad entrare!");
exit();
}
/* Controlla che il parametro azione passato con il metodo POST dalla pagina chat_input.php esista (per vedere come funziona isSet() guardare la documentazione online) e che l’utente sia entrato in maniera corretta*/
if (isSet($_POST['azione']) && $_SESSION['Nome'] != "")
{
/* nella variabile “nome” viene salvato il nickname dell’utente. La variabile “mss”, salva prima il parametro passato con il metodo POST dopo averlo elaborato con la funzione htmlspecialchars (guardare documentazione online). La variabile “attuale” salva la data e l’ora attuale.*/
$nome = $_SESSION['Nome'];
$attuale = time();
$mss = htmlspecialchars($_POST['azione']);
/* Inserimento all’interno del database dell’azione con relativi campi (Giocatore, Messaggio, Data)*/
$query ="INSERT INTO Chat SET Nome = '$nome', Messaggio = $'mss', Data ='$attuale'";
mysql_query($query) or die(mysql_error());
}
/* chiusura del database */
mysql_close($db);
/*Reindirizzamento alla pagina chat_visualizza.php */
header("Location: chat_visualizza.php", true);
?>
chat_visualizza:
Codice PHP:
<?php
/* Inizializzazione della sessione e inclusione della pagina di accesso al database */
session_start();
include('connessione.php');
/* Controlliamo che l’utente sia entrato correttamente, in caso contrario, stampiamo un messaggio di errore e lo blocchiamo */
if($_SESSION['Nome'] == ""){
echo("Non sei autorizzato ad entrare!");
exit();
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!– consente il refresh della pagina ogni 20 secondi –>
<meta http-equiv="refresh" content="20,chat_visualizza.php">
<title>Visualizzazione chat</title>
</head>
<body>
<?php
/* Salvataggio dell’ora attuale, per vedere come funziona la funzione time() vedere la documentazione online al sito [url]www.php.net*/[/url]
$ora_attuale = time();
/* Estrazione di tutte le azioni che sono state mandate nell’arco di dieci minuti (600 secondi = 10 minuti), ordinate in
ordine decrescente in base alla data (Visualizzazione delle azioni più recenti in alto).
La variabile result, risulta un array di righe */
$query = "SELECT * FROM Chat WHERE Data+600>'$ora_attuale' ORDER BY Data DESC";
$result = mysql_query($query) or die(mysql_error());
/* Finchè esiste nel risultato una riga si entra nel ciclo while. Per vedere la funzione della funzione
stripslashes e date guardare la documentazione online. */
while($riga = mysql_fetch_array($result)){
$nome = stripslashes($riga['Nome']);
$mss = stripslashes($riga['Messaggio']);
$ora = date("H:i", $riga['Data']);
echo($ora." ".$nome." dice: ".$mss."
");
}
/* chiusura del database */
mysql_close($db);
?>
</body>
</html>
Non riesco a capire l'errore, mi potreste per favore dare una mano?
Devo presentare la chat entro domani vi prego aiutatemi.