Ho un problema con questo script per inserire commenti (e alcuni dei loro dati) nel database: esso infatti non inserisce nulla nel campo id_articolo, che dovrebbe invece essere passato tramite GET. Ho provato a stampare gli errori con error_reporting(E_ALL); , ma non viene fuori nulla.
Tabella: tb_chat.
Struttura: id_chat (auto_increment)
id_articolo (dovrebbe essere passato tramite GET, indica l'id dell'articolo che si vuole commentare);
user_chat (l'utente che ha inviato il commento);
mex_chat (il messaggio);
data (la data di invio del commento).
Codice di art.php?articolo=idarticolo, al quale l'utente accede per inviare il commento:
Codice PHP:
// [...]
echo '<p>Stai commentando a nome di: <b>';
echo $username;
echo '</b></p><form name="chat" method="post"
action="messaggio.php" target="MSG">
<textarea name="messaggio" id="messaggio" style="width:100%; height:10%; font-family:Arial,Verdana,Geneva;"></textarea>
<input type="submit" value="Pubblica">
</form>
<div id="CHAT"></div>
<iframe src="messaggio.php?articolo='.$articolo.'" name="MSG" id="MSG"></iframe>';
messaggio.php
Codice PHP:
<?php
error_reporting(E_ALL);
//inizio codice per l'integrazione del login con phpbb
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../../f/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
//fine codice per l'integrazione del login con phpbb
$usern = $user->data['username'];
if(isset($_POST['messaggio'])){
//includo i dati di connessione
include 'config.php';
$idartt = $_GET['articolo'];
echo '<script> alert("Id articolo rilevata: '.$idartt.'"); </script>';
//l'alert restituisce sempre uno spazio vuoto
$datta = date("d-m-Y H:i");
$mexx_chat = $_POST['messaggio'];
$sostituire = array ('à','è','ì','ò','ù','<','>');
$con = array ('à','è','ì','ò','ù','<','>);
$mexy_chat = str_replace($sostituire, $con, $mexx_chat);
$mex_chat = nl2br(addslashes($mexy_chat));
$query = "INSERT INTO $tb (user_chat, mex_chat, data, id_articolo)
VALUES ('$usern','$mex_chat','$datta','$idartt')";
@mysql_query($query)or die (mysql_error());
@mysql_close();
echo '<script> location.href="art.php?articolo='.$idartt.'" </script>';
}
?>
Spero di aver fornito tutti i dati necessari... Se volete, vi linko anche la pagina in cui c'è lo script operativo.
Cosa potrei aver sbagliato?