[RISOLTO] Inserimento nel database

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
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:
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

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 ('&agrave;','&egrave;','&igrave;','&ograve;','&ugrave;','&lt;','&gt;);
$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?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non hai fatto errori nel copiare il codice, un errore è
PHP:
//....
$con = array ('&agrave;','&egrave;','&igrave;','&ograve;','&ugrave;','&lt;','&gt;);
$mexy_chat = str_replace($sostituire, $con, $mexx_chat);
//....
se noti la riga $mexy_chat = str_replace($sostituire, $con, $mexx_chat); è tutta rossa, ti sei dimenticato di chiudere un apice in '&gt;
PHP:
//....
$con = array ('&agrave;','&egrave;','&igrave;','&ograve;','&ugrave;','&lt;','&gt;');
$mexy_chat = str_replace($sostituire, $con, $mexx_chat);
//....
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Sì, è un errore di copiatura, devo averlo cancellato quando ho rimosso dell'array le voci che sostituivano le parole offensive (che ho ritenuto opportuno non riportare :p ).
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a mettere un var_dump per vedere come viene la query, in particolare quali valori si perdono
PHP:
<?php
//.....
 $query = "INSERT INTO $tb (user_chat, mex_chat, data, id_articolo) 
VALUES ('$usern','$mex_chat','$datta','$idartt')";
var_dump($query);//poi lo togli
//....
?>
eventualmente poi mettilo anche qui
PHP:
<?php
//...
$idartt = $_GET['articolo'];
var_dump($idartt);
//...
?>
e se ti da NULL verifica perchè non trasmette/riceve il get (potresti aver sbagliato il nome)
se poi ti manca anche qualche altro dato usa ancora il var_dump per i dati che ti mancano
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Infatti mi dice

NULL string(113) "INSERT INTO tb_chat (user_chat, mex_chat, data, id_articolo) VALUES ('altutto','ciao','04-11-2013 20:07','')" ...
Eppure, non mi pare di aver sbagliato nulla :(
<iframe src="messaggio.php?articolo='.$GET['articolo'].'" name="MSG" id="MSG"></iframe>';
è l'iframe che richiama messaggio.php con il GET passato
$idartic = $_GET['articolo'];
è la variabile in messaggio.php che corrisponde a $_GET['articolo'], che dovrebbe essere inserita nel db con $query = "INSERT INTO $tb (user_chat, mex_chat, data, id_articolo)
VALUES ('$usern','$mex_chat','$datta','$idartic')";

:confused::confused::confused::confused:
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [RISOLTO]Inserimento nel database MySQL 13
C [RISOLTO]Inserimento variabile php in input html PHP 20
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
M [risolto] Inserimento link in tabella da database PHP 3
H [RISOLTO]Inserimento file xml Ajax 3
pup3770 [RISOLTO]Pagina di inserimento con visualizzazione temporizzata PHP 7
M [RISOLTO] inserimento dati db PHP 22
O [risolto] Inserimento nuovo campo in mysql. Problema PHP 6
M [RISOLTO]Inserimento Slide Html HTML e CSS 5
Jonn Inserimento [RISOLTO] sui tread Supporto Mr.Webmaster 1
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8

Discussioni simili