GDRCD 5.4 - Errore quando invio messaggio privato multiplo
07/07/2017 18:13:46
Io ho GDRcd base, come scaricato dal sito :)
Ora non ho un computer a disposizione per poter tirar fuori GDRcd, domani spero di aver tempo di guardare!
15/07/2017 17:53:48
ho provato con gdrcd 5.0 il primo insomma quello di mrfaber, (no l'extreme) e il codice stesso della query è totalmente diverso.
non ha quasi niente a che vedere con quello della 5.4 che è stato riscritto completamente.
quindi secondo me anche se li funziona però non va bene.
07/08/2017 12:41:22
Riporto in auge questo argomento perché poi alla fine non è più stato risolto. In sostanza il problema è che l'invio del messaggio multiplo agli appartenenti della gilda non funziona. Sembra che quella parte del codice non sia chiara e non sia completa.
Qualcuno può aiutarmi a completarla e a sistemarla?
07/08/2017 13:49:58
io ho fatto così e funziona perfettamente.
else if ($_POST['multipli']=='multiplo')
{
$check_dest=explode(',',$_POST['destinatario']);
$query="INSERT INTO messaggi (tipo,mittente, destinatario, spedito, testo) VALUES";
foreach ($check_dest as $destinat)
{
$destinat=trim($destinat);
$result=gdrcd_query("SELECT nome FROM personaggio WHERE nome = '".gdrcd_filter('in',$destinat)."'", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
$query.=" ('".$_POST['tipo_sms']."',
'".$_SESSION['login']."',
'".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."',
NOW(),
'".gdrcd_filter('in',$_POST['testo'])."'),";
}
$query=substr($query,0,-1);
gdrcd_query($query);
$query='';
$query="INSERT INTO messaggi (tipo,mittente, destinatario, spedito, testo) VALUES";
$maxId = gdrcd_query("SELECT id as idmax FROM messaggi ORDER BY id DESC LIMIT 1");
gdrcd_query("INSERT INTO messaggi_inviati (tipo,mittente, destinatario, spedito, messaggio,letto,id) VALUES ('".$_POST['tipo_sms']."','".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."','0','".$maxId['idmax']."')");
}
07/08/2017 14:39:04
darkblade ha scritto: io ho fatto così e funziona perfettamente.
else if ($_POST['multipli']=='multiplo')
{
$check_dest=explode(',',$_POST['destinatario']);
$query="INSERT INTO messaggi (tipo,mittente, destinatario, spedito, testo) VALUES";
foreach ($check_dest as $destinat)
{
$destinat=trim($destinat);
$result=gdrcd_query("SELECT nome FROM personaggio WHERE nome = '".gdrcd_filter('in',$destinat)."'", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
$query.=" ('".$_POST['tipo_sms']."',
'".$_SESSION['login']."',
'".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."',
NOW(),
'".gdrcd_filter('in',$_POST['testo'])."'),";
}
$query=substr($query,0,-1);
gdrcd_query($query);
$query='';
$query="INSERT INTO messaggi (tipo,mittente, destinatario, spedito, testo) VALUES";
$maxId = gdrcd_query("SELECT id as idmax FROM messaggi ORDER BY id DESC LIMIT 1");
gdrcd_query("INSERT INTO messaggi_inviati (tipo,mittente, destinatario, spedito, messaggio,letto,id) VALUES ('".$_POST['tipo_sms']."','".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."','0','".$maxId['idmax']."')");
}
Niente, mi dice sempre:
Error Code: 1064
Error String: 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 '' at line 1
Error Detail: INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUE
07/08/2017 15:22:57
posta tutto il pezzo come ho fatto io dall'else if di mulitplo
07/08/2017 15:27:20
darkblade ha scritto: posta tutto il pezzo come ho fatto io dall'else if di mulitplo
certo l'ho fatto, e ho adattato le query del mio database ma mi da sempre quell'errore
07/08/2017 16:10:43
fai copia e incolla del codice e mettilo qui
08/08/2017 09:37:47
Sempre stesso errore. Questo è quanto:
<?php
session_start();
include_once('../header.inc.php');
/*Header comune*/
?>
<div class="pagina_messages_center">
<div class="page_title">
<h2><?php echo gdrcd_filter('out',$PARAMETERS['names']['private_message']['plur']); ?></h2>
</div>
<div class="page_body">
<?php
/*HELP: */
/*Inserimento nuovo messaggio nel db*/
if (gdrcd_filter('get',$_POST['op'])=="send_message")
{
if (gdrcd_filter('get',$_POST['multipli'])=='singolo')
{
$check_dest=explode(',',gdrcd_filter('get',$_POST['destinatario']));
$destinat=trim($check_dest[0]);
if (gdrcd_filter('get',$_POST['url'])!="")
{
$_POST['testo'] = $_SESSION['login'].' ti ha segnalato questo [url='.$_POST['url'].']link[/url].';
}//if
$result=gdrcd_query("SELECT nome FROM personaggio WHERE nome = '".$destinat."'", 'result');
if ((gdrcd_query($result, 'num_rows')>0)&&(empty($destinat)===FALSE))
{
gdrcd_query("INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
gdrcd_query("INSERT INTO backmessaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
}//if
}
else if ($_POST['multipli']=='presenti')
{
$query = "SELECT personaggio.nome, personaggio.cognome, personaggio.permessi, personaggio.sesso, personaggio.id_razza, razza.sing_m, razza.sing_f, razza.icon, personaggio.disponibile, personaggio.online_status, personaggio.is_invisible, personaggio.ultima_mappa, personaggio.ultimo_luogo, personaggio.posizione, personaggio.ora_entrata, personaggio.ora_uscita, personaggio.ultimo_refresh, mappa.stanza_apparente, mappa.nome as luogo, mappa_click.nome as mappa FROM personaggio LEFT JOIN mappa ON personaggio.ultimo_luogo = mappa.id LEFT JOIN mappa_click ON personaggio.ultima_mappa = mappa_click.id_click LEFT JOIN razza ON personaggio.id_razza = razza.id_razza WHERE personaggio.ora_entrata > personaggio.ora_uscita AND DATE_ADD(personaggio.ultimo_refresh, INTERVAL 4 MINUTE) > NOW() ORDER BY personaggio.is_invisible, personaggio.ultima_mappa, personaggio.ultimo_luogo, personaggio.nome";
$result = gdrcd_query($query, 'result');
while ($record = gdrcd_query($result, 'fetch'))
{
gdrcd_query("INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '".$record['nome']."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
}
}
else if ($_POST['multipli']=='multiplo')
{
$check_dest=explode(',',$_POST['destinatario']);
$query="INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES";
foreach ($check_dest as $destinat)
{
$destinat=trim($destinat);
$result=gdrcd_query("SELECT nome FROM personaggio WHERE nome = '".gdrcd_filter('in',$destinat)."'", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
$query.=" ('".$_POST['mod']."',
'".$_SESSION['login']."',
'".gdrcd_capital_letter(gdrcd_filter('in',$destinat))."',
NOW(),
'".gdrcd_filter('in',$_POST['testo'])."',
'".gdrcd_filter('in',$_POST['ambito'])."'),";
}
$query=substr($query,0,-1);
gdrcd_query($query);
$query='';
$query="INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES";
$maxId = gdrcd_query("SELECT id as idmax FROM messaggi ORDER BY id DESC LIMIT 1");
}
}
else if ($_POST['multipli']=="broadcast")
{
$query = gdrcd_query("SELECT nome FROM personaggio" , 'result');
while($row = gdrcd_query($query , 'fetch'))
{
gdrcd_query("INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '" . $row['nome'] . "' , NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
}
gdrcd_query($query , 'free');
}
else if (is_numeric($_POST['multipli'])===TRUE)
{
gdrcd_query("INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '".$_POST['multipli']."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
}
else if (empty($_POST['destinatario'])===FALSE)
{
gdrcd_query("INSERT INTO messaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in',$_POST['destinatario']))."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
gdrcd_query("INSERT INTO backmessaggi (moderazione, mittente, destinatario, spedito, testo, ambito) VALUES ('".gdrcd_filter('in',$_POST['mod'])."', '".$_SESSION['login']."', '".gdrcd_capital_letter(gdrcd_filter('in',$_POST['destinatario']))."', NOW(), '".gdrcd_filter('in',$_POST['testo'])."', '".gdrcd_filter('in',$_POST['ambito'])."')");
}//else
?>
<div class="warning">
<?php echo $PARAMETERS['names']['private_message']['sing'].$MESSAGE['interface']['messages']['sent']; ?>
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo $MESSAGE['interface']['messages']['go_back']; ?></a>
</div>
<?php
}//if
/*Form di composizione di un messaggio*/
if ((gdrcd_filter('get',$_POST['op'])=='send')||
(gdrcd_filter('get',$_POST['op'])=='attach')||
(gdrcd_filter('get',$_POST['op'])=='reply')||
(gdrcd_filter('get',$_REQUEST['newmessage'])=='yes'))
{
?>
<div class="panels_box">
<form class="form_messaggi"
action="main.php?page=messages_center"
method="post">
<br /><br />
<?php if ($_SESSION['permessi']>=MODERATOR){ ?>
<font size="2"><strong>MENU DEL MODERATORE:</strong><br>
<select name="mod">
<option value=" " selected>Nessun Intervento</option>
<option value="MODERAZIONE: 1° Richiamo">1° Richiamo</option>
<option value="MODERAZIONE: 2° Richiamo">2° Richiamo</option>
<option value="MODERAZIONE: 3° Richiamo">3° Richiamo</option>
<option value="MODERAZIONE: ULTIMO RICHIAMO PRIMA DELL'ESILIO">Minaccia Moderativa</option>
<option value="MODERAZIONE: Provvedimento Sanzionatorio">Provvedimento</option>
<option value="IMPORTANTE">Importante</option>
<?php if ($_SESSION['permessi']>=SUPERUSER){ ?>
<option value="COMUNICAZIONE DALLA GESTIONE">Comunicazione dalla Gestione</option>
<option value="ANNUNCIO GENERALE">Annuncio Generale</option>
<option value="AGGIORNAMENTO IMPORTANTE">Aggiornamento Importante</option>
<?php } else { }?>
</select></font>
<div class="form_info">
L'uso del menu del moderatore deve essere limitato al solo utilizzo moderativo, ogni abuso di potere verrà punito con l'esplulsione dal corpo di guardia
</div>
<?php } else { }?>
<font size="2"><strong>Ambito del Messaggio:</strong><br>
<select name="ambito">
<option value=" " selected>In Gioco (nessun tag)</option>
<option value="Organizzazione">Organizzazione (In Gioco)</option>
<option value="OFF Game">OFF Game</option>
</select></font>
<div class="form_info">
L'uso della casella AMBITO è puramente volontario ed ha lo scopo di chiarire meglio la natura del testo inviato,<br />soprattutto tra giocatori che non hanno una grande confidenza o una frequenza di relazione tale da aver naturalmente stabilito la modalità di dialogo.
</div>
<!-- Destinatario -->
<div class='form_label'>
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['destination']); ?>
</div>
<div class='form_field'>
<input type="text"
list="personaggi"
name="destinatario"
placeholder="Nome del personaggio"
value="<?php echo gdrcd_filter('get',$_REQUEST['reply_dest']); ?>" />
</div>
<?php
if($_SESSION['permessi']>=GUILDMODERATOR)
{
?>
<div class="form_field">
<select name="multipli">
<option value="singolo" selected>
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['multiple']['single']); ?>
</option>
<option value="multiplo">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['multiple']['multiple']); ?>
</option>
<?php
if (empty($_SESSION['gilda'])===FALSE){
$gilde=explode(',', $_SESSION['gilda']);
foreach ($gilde as $getname){
if ((is_numeric($getname)===TRUE) && ($getname>-1) ){
$query_getname="SELECT nome FROM gilda WHERE id_gilda=".$getname."";
$res_getname=mysql_query($query_getname);
$row_getname=mysql_fetch_array($res_getname);?>
<option value="<?php print $getname; ?>">
<?php print gdrcd_filter('out',$row_getname['nome']); ?>
</option>
<?php }
}
}?>
<?php
if($_SESSION['permessi']>=GAMEMASTER)
{
?>
<option value="presenti">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['multiple']['online']); ?>
</option>
<?php } ?>
<?php if($_SESSION['permessi']>=MODERATOR)
{
?>
<option value="broadcast">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['multiple']['all']); ?>
</option>
<?php } ?>
</select>
</div>
<?php
} //if
?>
<div class="form_info">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['multiple']['info']); ?>
</div>
<!-- Testo -->
<div class='form_label'>
<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['body']); ?>
</div>
<div class='form_field'>
<script>edToolbar('msg'); </script><textarea type="textbox" name="testo" id="msg"><?php
/** * Fix per evitare le parentesi quadre vuote quando si compone un nuovo messaggio
* @author Blancks
*/
if (isset($_POST['testo']))
echo "\n\n\n[".gdrcd_filter('out', trim($_POST['testo']))."]";
?></textarea>
</div>
<!-- Submit -->
<input type="hidden"
name="op"
value="send_message" />
<input type="hidden"
name="reply_attach"
value="<?php echo gdrcd_filter('get',$_POST['reply_arrach']); ?>" />
<div class='form_submit'>
<input type="submit"
value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
</div>
</form>
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php } //if ?>
<?php /*Visualizzazione completa di un messaggio*/
if (gdrcd_filter('get',$_REQUEST['op'])=='read'){
/** * Bugfix: correzione di un bug che permetteva la visualizzazione di messaggi non inviati all'utente
* semplicemente modificando l'id. Viene quindi aggiunta nella clausola where il controllo sulla proprietà
* del messaggio. Nel caso in cui non venga trovato alcun messaggio verrà mostrato un errore.
* @author Rhllor
*/
//$result=gdrcd_query("SELECT * FROM messaggi WHERE id = ".gdrcd_filter('num',$_REQUEST['id_messaggio'])." LIMIT 1", 'result');
$result=gdrcd_query("SELECT * FROM messaggi WHERE id = ".gdrcd_filter('num',$_REQUEST['id_messaggio'])." and ( destinatario = '". $_SESSION['login'] ."' or mittente = '". $_SESSION['login'] ."') LIMIT 1", 'result');
if (gdrcd_query($result, 'num_rows') == 0){
?>
<div class="warning">
Impossibile visualizzare il messaggio richiesto, il messaggio potrebbe non esistere oppure non disponi delle autorizzazioni necessarie per poterlo visionare
</div>
<?php
} else {
$record=gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
//Leggi id messaggio
//Formatta messaggio
//Bottoni Rispondi, Rispondi e allega, cancella ?>
<div class="read_message_box">
<div class="infos">
<span class="title"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['date']).": "; ?></span>
<span class="body">
<?php $quando=explode(' ',$record['spedito']);
echo gdrcd_format_date($quando[0]) ?>
</span>
<span class="title">
<?php echo ' '.gdrcd_filter('out',$MESSAGE['interface']['messages']['time']).' '; ?>
</span>
<span class="body">
<?php echo gdrcd_format_time($quando[1]); ?>
</span>
</div>
<div class="infos">
<span class="title"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['sender']).": "; ?>
</span>
<span class="body"><?php echo gdrcd_filter('out',$record['mittente']);?></span>
</div>
<div class="infos">
<span class="title"><?php echo 'Ambito: '; ?>
</span>
<span class="body"><?php echo gdrcd_filter('out',$record['ambito']);?></span>
</div>
<br />
<font color="red" align="center"><strong><?php echo $record['moderazione']; ?></strong></font><br />
<?php if (($record['destinatario']==$_SESSION['login'])&&($record['letto']==0)){
gdrcd_query("UPDATE messaggi SET letto = 1 WHERE id = ".gdrcd_filter('num',$_REQUEST['id_messaggio'])." LIMIT 1");
}?>
<div class="read_message_box_text">
<?php
if ($PARAMETERS['settings']['forum_bbcode']['type'] == 'bbd'){
echo bbdecoder(gdrcd_filter('out',$record['testo']), true);
}else{
echo gdrcd_bbcoder(gdrcd_filter('out',$row['testo']));
}?>
<!--Inserisco la firma del messaggio -->
<br /><br /><br />
<center><?php echo gdrcd_filter('out',$record['mittente']);?></center>
<!--Fine della firma del messaggio -->
</div>
<div class="read_message_box_forms">
<div class="read_message_box_form">
</div>
<div class="read_message_box_form">
<!-- erase -->
<form action="main.php?page=messages_center"
method="post">
<input type="hidden"
name="op"
value="erase" />
<input type="hidden"
name="id_messaggio"
value="<?php echo gdrcd_filter('num',$_REQUEST['id_messaggio']);?>" />
<input type="image"
src="imgs/icons/erase.png"
value="submit"
alt="Elimina"
title="Elimina" />
</form>
</div>
<div class="read_message_box_form">
<!-- attach -->
<form action="main.php?page=messages_center"
method="post">
<input type="hidden"
name="reply_dest"
value="<?php echo $record['mittente'];?>" />
<input type="hidden"
name="testo"
value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attachment'].$record['mittente'].']'.$record['testo'].'[/quote');?>" />
<input type="hidden"
name="op"
value="attach" />
<input type="image"
src="imgs/icons/attach.png"
value="submit"
alt="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attach']); ?>"
title="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attach']); ?>" />
</form>
</div>
<div class="read_message_box_form" >
<!-- reply -->
<form action="main.php?page=messages_center" method="post">
<input type="hidden"
name="reply_dest"
value="<?php echo $record['mittente'];?>" />
<input type="hidden"
name="op"
value="reply" />
<input type="image"
src="imgs/icons/reply.png" value="submit"
alt="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['reply']); ?>"
title="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['reply']); ?>" />
</form>
</div>
</div><!-- read_message_box_form -->
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php
} // Chiudo controllo paternità messaggio
} // Chiudo controllo lettura messaggio
?>
<?php /*Eliminazione di un messaggio*/
if ($_POST['op']=='erase')
{
$id_messaggio=gdrcd_filter('num',$_POST['id_messaggio']);
/** * Bugfix: correzione di un bug che permetteva la cancellazione di messaggi non inviati all'utente.
* Viene quindi aggiunta nella clausola where il controllo sulla proprietà del messaggio.
* Inoltre viene effettuato un controllo sul numero di righe cancellate. Se non è stato cancellato nulla
* non verrà mostrato nessun messaggio ma solo il link per tornare alla schermata messaggi.
* @author Rhllor
*/
//gdrcd_query("DELETE FROM messaggi WHERE id = ".$id_messaggio." LIMIT 1");
gdrcd_query("DELETE FROM messaggi WHERE id = ".$id_messaggio." and destinatario = '". $_SESSION['login'] ."' LIMIT 1");
if (gdrcd_query("",'affected') > 0) {
?>
<div class="warning">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['private_message']['sing'].$MESSAGE['interface']['messages']['erased']); ?>
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php } else {
/** * Enhancement: in caso di nessuna riga cancellata si controlla l'esistenza del messaggio,
* @author Rhllor
*/
$result=gdrcd_query("SELECT destinatario FROM messaggi WHERE id = ".gdrcd_filter('num',$_REQUEST['id_messaggio'])." and ( destinatario = '". $_SESSION['login'] ."') LIMIT 1", 'result');
if (gdrcd_query($result, 'num_rows') == 0){
?>
<div class="warning">
Il messaggio che stai tentando di cancellare non esiste
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php
} else {
$record=gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
}
}
}
if($_POST['op']=='erase_checked'){
if(!empty($_POST['ids'])){
foreach($_POST['ids'] as $k=>$v){
if(is_numeric($v)){
$POST['ids'][$k]=(int)$v;
}
else{
unset($_POST['ids'][$k]);
}
}
$msgs=implode(',',$_POST['ids']);
$query="DELETE FROM messaggi WHERE destinatario='".gdrcd_filter('in', $_SESSION['login'])."' AND id IN (".$msgs.")";
gdrcd_query($query);
if(gdrcd_query("",'affected')>0){
?>
<div class="warning">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['private_message']['plur'].$MESSAGE['interface']['messages']['all_erased']); ?>
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php
}
}
else{
?>
<div class="warning">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['private_message']['plur'].$MESSAGE['interface']['messages']['erased']); ?>
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php
}
}
/*Eliminazione di tutti i messaggi*/
if ($_REQUEST['op']=='eraseall'){
gdrcd_query("DELETE FROM messaggi WHERE destinatario = '".$_SESSION['login']."' AND letto = 1");
?>
<div class="warning">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['private_message']['sing'].$MESSAGE['interface']['messages']['erased']); ?>
</div>
<div class="link_back">
<a href="main.php?page=messages_center&offset=0"><?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['go_back']); ?></a>
</div>
<?php } ?>
<?php /*Elenco messaggi (visualizzazione di base della pagina)*/
if ((($_REQUEST['op']=='')||($_REQUEST['op']=='inviati'))&&(isset($_REQUEST['newmessage'])===FALSE)){
//Determinazione pagina
if (isset($_REQUEST['offset'])===FALSE){$pagebegin=0;}
else {$pagebegin=(int)$_REQUEST['offset']*$PARAMETERS['settings']['messages_per_page'];}
$pageend=$PARAMETERS['settings']['messages_per_page'];
//Conteggio messaggi totali
$record=gdrcd_query("SELECT COUNT(*) FROM messaggi WHERE destinatario = '".$_SESSION['login']."'");
$totaleresults=$record['COUNT(*)'];
//Elenco messaggi paginato
if($_GET['op'] == 'inviati') {
$result=gdrcd_query("SELECT * FROM messaggi WHERE mittente = '".$_SESSION['login']."' AND mittente_del = 0 ORDER BY spedito DESC LIMIT ".$pagebegin.", ".$pageend."", 'result');
$record=gdrcd_query("SELECT COUNT(*) FROM messaggi WHERE mittente = '".$_SESSION['login']."' AND mittente_del = 0");
$totaleresults=$record['COUNT(*)'];
} else {
$result=gdrcd_query("SELECT * FROM messaggi WHERE destinatario = '".$_SESSION['login']."' AND destinatario_del = 0 ".$extracond." ORDER BY spedito DESC LIMIT ".$pagebegin.", ".$pageend."", 'result');
$record=gdrcd_query("SELECT COUNT(*) FROM messaggi WHERE destinatario = '".$_SESSION['login']."' AND destinatario_del = 0 ".$extracond."");
$totaleresults=$record['COUNT(*)'];
}
$numresults=gdrcd_query($result, 'num_rows');
?>
<div class="elenco_record_gioco">
<div class="link_back">
<a href="main.php?page=messages_center">
Ricevuti
</a>
<a href="main.php?page=messages_center&op=inviati">
Inviati
</a>
</div>
<br />
<?php
if ($numresults>0)
{
?>
<table>
<tr>
<td>
<!-- Checkbox -->
<div class="titoli1_elenco">
</div>
</td>
<td>
<!-- Icona -->
<div class="titoli1_elenco">
<?php if($_GET['op'] == 'inviati')
{
echo "Letto ?";
}
else
{
echo 'Mittente';
}
?>
</div>
</td>
<td>
<div class="titoli1_elenco">
<?php if($_GET['op'] == 'inviati')
{
echo gdrcd_filter('out',$MESSAGE['interface']['messages']['preview']);
}
else
{
echo gdrcd_filter('out',$MESSAGE['interface']['messages']['preview']);
/*echo gdrcd_filter('out',$MESSAGE['interface']['messages']['sender']);*/
}
?>
</div>
</td>
<td width="100" align="center" valign="bottom">
<div class="titoli1_elenco" style="font-weight:bold;">
<?php
if($_GET['op'] == 'inviati')
{
echo "Destinatario";
}
else
{
echo 'Ambito';
/*echo gdrcd_filter('out',$MESSAGE['interface']['messages']['date']);*/
}
?>
</div>
</td>
<td align="center" valign="bottom">
<div class="titoli1_elenco" style="font-weight:bold;">
<?php
if($_GET['op'] == 'inviati')
{
echo "Inviato il";
}
else
{ /* echo gdrcd_filter('out',$MESSAGE['interface']['messages']['preview']); */ echo gdrcd_filter('out',$MESSAGE['interface']['messages']['date']); }?>
</div>
</td>
<td>
<div class="titoli1_elenco">
</div>
</td>
</tr>
<?php
while ($row=gdrcd_query($result, 'fetch'))
{
?>
<?php
if ($_GET['op'] == 'inviati')
{
?>
<tr>
<td>
</td>
<td>
<?php
}
else
{
?>
<tr>
<td>
<input type="checkbox" class="message_check" value="<?php echo (int)$row['id'] ?>" />
</td>
<td>
<?php }?>
<div class="elementi_elenco">
<?php
if ($_GET['op'] == 'inviati')
{
if($row['letto']==0)
{
?>
<?php
}
else //else di if letto
{
?>
<img src="imgs/icons/letto5.png" class="colonna_elengo_messaggi_icon">
<?php
}
}//if inviati
else //else di if inviati
{
if($row['letto']==0)
{
?>
<img src="imgs/icons/mail_new.png" class="colonna_elengo_messaggi_icon"> <?php echo '<a href="main.php?page=scheda&pg='.$row['mittente'].'">'.$row['mittente'].'</a>'; ?>
<?php
}
else //else di if letto
{
?>
<img src="imgs/icons/mail_read.png" class="colonna_elengo_messaggi_icon"> <?php echo '<a href="main.php?page=scheda&pg='.$row['mittente'].'">'.$row['mittente'].'</a>'; ?>
<?php
}
}
?>
</div>
</td>
<td>
<div class="elementi_elenco">
<?php
if ($_GET['op'] == 'inviati')
{
?><a href="main.php?page=messages_center&op=read&id_messaggio=<?php echo $row['id']?>"><?php echo gdrcd_filter('out',substr($row['testo'],0,40)); ?>...</a><?php
}
elseif (is_numeric($row['mittente'])==TRUE)
{
echo gdrcd_filter('out',$MESSAGE['interface']['messages']['to_guild']);
}
else
{ ?><font color="red"><strong><?php echo $row['moderazione']; ?></strong></font><br /><?php
?><a href="main.php?page=messages_center&op=read&id_messaggio=<?php echo $row['id']?>"><?php echo gdrcd_filter('out',substr($row['testo'],0,40)); ?>...</a> <?php // echo '<a href="main.php?page=scheda&pg='.$row['mittente'].'">'.$row['mittente'].'</a>';
}
?>
</div>
</td>
<td>
<div class="elementi_elenco">
<?php if($_GET['op'] == 'inviati')
{
echo '<a href="main.php?page=scheda&pg='.$row['destinatario'].'">'.$row['destinatario'].'</a>';
?><br /><?php
echo $row['ambito'];
}
else
{
?><br /><?php
echo $row['ambito'];
}
?>
</div>
</td>
<td>
<div class="elementi_elenco">
<?php
$quando=explode (" ",$row['spedito']);
echo gdrcd_format_date($quando[0]).'<br/>'.gdrcd_filter('out',$MESSAGE['interface']['messages']['time']).' '. gdrcd_format_time($quando[1]);
?>
<!-- <a href="main.php?page=messages_center&op=read&id_messaggio=<?php echo $row['id']?>"><?php echo gdrcd_filter('out',substr($row['testo'],0,40)); ?>...</a>-->
</div>
</td>
<td>
<?php
if($_GET['op'] != 'inviati')
{
?>
<div class="controlli_elenco" >
<div class="controllo_elenco" >
<!-- reply -->
<form action="main.php?page=messages_center" method="post">
<input type="hidden" name="reply_dest" value="<?php echo $row['mittente'];?>" />
<input type="hidden" name="genitore" value="<?php echo $row['id'];?>" />
<input type="hidden" name="op" value="reply" />
<input type="hidden" name="testo" value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['messages']['attachment'].$row['mittente'].']'.$row['testo'].'[/quote');?>" />
<input type="submit" value="Rispondi" />
</form>
</div>
</div>
<?php
}
else
{
?>
<div class="controlli_elenco" >
<div class="controllo_elenco" >
<!-- reply -->
<form action="main.php?page=messages_center" method="post">
<input type="hidden" name="reply_dest" value="<?php echo $row['destinatario'];?>" />
<input type="hidden" name="genitore" value="<?php echo $row['id'];?>" />
<input type="hidden" name="op" value="reply" />
<input type="submit" value="<?php echo 'Scrivigli'; ?>" />
</form>
</div>
</div>
<?php
}
?>
</td>
</tr>
<?php
$_SESSION['last_istant_message']=$row['id'];
}//while
gdrcd_query($result, 'free');
gdrcd_query("UPDATE personaggio SET ultimo_messaggio = ".$_SESSION['last_istant_message']." WHERE nome='".$_SESSION['login']."'");
?>
</table>
<?php
echo '<div>
<form id="multiple_delete" method="post" action="main.php?page=messages_center" onSubmit="return checked_copy();">
<input type="hidden" name="op" value="erase_checked" />
<input type="submit" value="Cancella Messaggi Selezionati">
</form>
</div>';
}
else
{
if($totaleresults>$PARAMETERS['settings']['messages_limit'])
{
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['interface']['messages']['please_erase']).'</div>';
}
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['interface']['messages']['no_message']).'</div>';
}
?>
<div class="pager">
<?php if($totaleresults>$PARAMETERS['settings']['messages_per_page']){
echo gdrcd_filter('out',$MESSAGE['interface']['pager']['pages_name']);
for($i=0;$i<=floor($totaleresults/$PARAMETERS['settings']['messages_per_page']);$i++){
if ($i!=$_REQUEST['offset']){ ?>
<a href="main.php?page=messages_center&offset=<?php echo $i; ?>"><?php echo $i+1; ?></a>
<?php } else { echo ' '.($i+1).' '; }
}
} ?>
</div>
</div>
<!-- link scrivi messaggio -->
<div class="link_back">
<a href="main.php?page=messages_center&newmessage=yes">
<?php echo $MESSAGE['interface']['messages']['new']; ?>
</a>
</div>
<!-- link cancella letti -->
<div class="link_back">
<a href="main.php?page=messages_center&op=eraseall">
<?php echo $MESSAGE['interface']['messages']['erase_all']; ?>
</a>
</div>
<script type="text/javascript">
function checked_copy(){
console.log('call');
var messages=document.getElementsByClassName('message_check');
var form=document.getElementById('multiple_delete');
var n_msg=messages.length;
var i;
var checked=false;
for(i=0;i<n_msg; i++){
if(messages[i].checked){
checked=true;
var el=document.createElement('input');
el.setAttribute('type','hidden');
el.setAttribute('name','ids[]');
el.setAttribute('value',messages[i].getAttribute('value'));
form.appendChild(el);
}
}
if(checked){
return true;
}
else{
return false;
}
}
</script>
<?php } ?>
</div><!-- page_body -->
</div><!-- Pagina -->
08/08/2017 10:13:37 e modificato da kanade tachibana il 08/08/2017 10:20:10
Il problema si verifica quando selezioni destinatario multiplo, apparentemente lasci vuoto il campo e ottieni quell'errore.
Devi controllare questo
$_POST['destinatario']
Se vuoi inviare un messaggio privato a più utenti devi separare i nomi con una virgola. (pippo,pluto)
Edittttt
se inserisci un nome utente che non esiste nel database ottieni ancora quel messaggio di errore.
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Tiles Survive ↗
World of the Sea Battle ↗
Hero Wars ↗
Wuthering Waves ↗
War Thunder ↗
The Coven ↗