GDRCD -Error nel codice di base circa l'invio di msg alla gilda
GDRCD -Error nel codice di base circa l'invio di msg alla gilda postato il 09/08/2017 10:06:53 nel forum programmazione, open source e hosting e modificato da fargus il 09/08/2017 10:13:50
Salve,
Ho trovato un errore nel codice di GDRCD per quanto concerne l'invio di un messaggio automaticamente a tutti i membri della gilda di cui appartieni se ne sei il leader.
Sezione specifica del codice
<?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 }
}
}?>
File intero:
<?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.=" ('".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'])."'),";
}
}
$query=substr($query,0,-1);
gdrcd_query($query);
/** * Bugfix: commentato la stampa della variabile $query. In caso di messaggio multiplo stampava
* l'ultima query eseguita.
* @author Rhllor
*/
}
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 -->
La funzione che potete vedere nella sezione specifica di codice presente all'interno del file permette all’utente con il permesso di guildmoderator in su di poter visualizzare un opzione con il nome della gilda per l’invio di un messaggio automatico a tutti i membri della propria corporazione. Sembra che questa opzione non funzioni... effettivamente non appare nemmeno come scelte nel menu a tendina quando sei sul sito.
come potrei risolvere?
PS. si sono admin e sono in una gilda attiva
09/08/2017 10:50:13
Da
$_SESSION['gilda']
lo hai aggiunto tu giusto?
09/08/2017 10:54:45
kanade tachibana ha scritto: Da
$_SESSION['gilda']
lo hai aggiunto tu giusto?No, c'era già quella sezione di codice nella versione originale di gdrcd di blanck 5.1
09/08/2017 11:21:43 e modificato da kanade tachibana il 09/08/2017 11:22:48
PS. si sono admin e sono in una gilda attiva
Se è simile al gdrcd 5.4 oltre ad essere guild moderator devi essere a capo della gilda.
Edit
Avendo php 7.17 non posso testare hehe
09/08/2017 11:27:25
kanade tachibana ha scritto: [quote]PS. si sono admin e sono in una gilda attiva
Se è simile al gdrcd 5.4 oltre ad essere guild moderator devi essere a capo della gilda.
Edit
Avendo php 7.17 non posso testare hehe[/quote]
Si io sono a capo della gilda (quello con la coroncina) e sono gestore anche
quindi ho tutti i permessi, ma non funziona, non appare nulla nel menu a tendina riguardo ciò
09/08/2017 11:29:59
Ma non ti conviene continuare a utilizzare il 5.4 visto che avevi già aperto un altra discussione su questa problematica ?
09/08/2017 11:30:51
kanade tachibana ha scritto: Ma non ti conviene continuare a utilizzare il 5.4 visto che avevi già aperto un altra discussione su questa problematica ?
Uso il 5.4
09/08/2017 11:32:04
No, c'era già quella sezione di codice nella versione originale di gdrcd di blanck 5.1
Quindi stai mescolando 5.1 con 5.4 ?
09/08/2017 11:33:03
kanade tachibana ha scritto: [quote]No, c'era già quella sezione di codice nella versione originale di gdrcd di blanck 5.1
Quindi stai mescolando 5.1 con 5.4 ?[/quote]
No ti ho parlato della versione 5.1 per dirti che quella sezione di codice già era presente dalla versione base di gdrcd di blanck.
E che non funziona anche nella 5.4 che detengo.
09/08/2017 12:00:30 e modificato da kanade tachibana il 09/08/2017 12:01:14
$_SESSION['gilda']
Invece di salvare gli id in array, quando esegui il login in sessione salva con questa struttura ,*1*,*2*
$gilde = str_replace("*", "", $_SESSION['gilda']);
$gilde = explode(',', $gilda);
Ti basta riprendere il codice che hai usato
foreach ($gilde as $getname){
Have fun
09/08/2017 12:09:06
kanade tachibana ha scritto:
$_SESSION['gilda']
Invece di salvare gli id in array, quando esegui il login in sessione salva con questa struttura ,*1*,*2*
$gilde = str_replace("*", "", $_SESSION['gilda']);
$gilde = explode(',', $gilda);
Ti basta riprendere il codice che hai usato
foreach ($gilde as $getname){
Have fun
Ho corretto cosi:
<?php
if (empty($_SESSION['gilda'])===FALSE){
$gilde = str_replace("*", "", $_SESSION['gilda']);
$gilde = explode(',', $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 }
}
}?>
Ma non funziona ugualmente, ho sbagliato a scrivere probabilmente mentre applicavo il tuo consiglio?
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
RAID Shadow Legends ↗
Raja Dunia ↗
Enlisted ↗
AlterEgo ↗
War Thunder ↗
Imperion ↗
Seconda Era ↗
Hero Wars ↗