Problema html scheda
Problema html scheda postato il 20/09/2021 20:24:52 nel forum programmazione, open source e hosting
Ciao a tutti, sto riscontrando un nuovo problema in land che non riesco a risolvere:
Quando un giocatore utilizza l'html in scheda e da qualche parte sbaglia a mettere un <div>, i <div> della struttura della scheda (quelli che ho inserito io nei file di gdrcd) vengono alterati e questa viene "smontata" parzialmente, ovvero è come se i div non si chiudessero da qualche parte.
La scheda è settata per avere sia html che no
Esistono soluzioni che non prevedano di disabilitare questa possibilità?
Pagine → 1
20/09/2021 22:12:27
Abbiamo avuto un problema simile ormai un anno addietro e ricordo (vagamente) che il problema derivava da un refuso nel codice di GDRCD, che non filtrava correttamente l'html in out.
Purtroppo, è passato così tanto tempo, che ad oggi non ti saprei dire di preciso in che punto e come sia stato modificato il codice, perché abbiamo poi ovviato per una soluzione completamente diversa a livello grafico, optando per le schede in modale.
Nella modale, il problema non viene riscontrato.
Per gli html più difficili, abbiamo optato per la possibilitá di un iframe, dove l'utente inserisce l'url di una propria pagina html contenente la scheda e questa viene visualizzata.
Sicuramente, qualcuno più pratico di me con i codici potrebbe darti una mano più considetevole, se lasciassi qui il codice della pagina scheda ✌️
20/09/2021 22:14:02
Ah, peccato! Grazie mille comunque per il consiglio, ecco qua il codice
<div class="scheda_back">
<div class="pagina_scheda">
<?php /*HELP: E' possibile modificare la scheda agendo su scheda.css nel tema scelto, oppure sostituendo il codice che segue la voce "Scheda del personaggio"*/ ?>
<?php
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
$query5 = gdrcd_query("SELECT id_razza, bonus_umano, esperienza FROM personaggio WHERE nome = '".$_SESSION['login']."'");
$razza = $query5['id_razza'];
$bonus_umano = $query5['bonus_umano'];
if (($query5['bonus_umano'] == '0') && ($razza == '1026')){
$query6 = gdrcd_query("UPDATE personaggio SET esperienza = esperienza + 50, esperienza_totale = esperienza_totale + 50, bonus_umano = '1' WHERE nome = '".$_SESSION['login']."'");
}
elseif (($query5['bonus_umano'] == '1') && ($razza != '1026')){
$query7 = gdrcd_query("UPDATE personaggio SET esperienza = esperienza - 50, esperienza_totale = esperienza_totale - 50, bonus_umano = '0' WHERE nome = '".$_SESSION['login']."'");
}
if (isset($_REQUEST['pg'])===FALSE){
echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT personaggio.*, livello, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5 FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza WHERE personaggio.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//Se non esiste il pg
if (gdrcd_query($result, 'num_rows')==0){echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';}
else {
$record = gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
$bonus_oggetti = gdrcd_query("SELECT SUM(oggetto.bonus_car0) AS BO0, SUM(oggetto.bonus_car1) AS BO1, SUM(oggetto.bonus_car2) AS BO2, SUM(oggetto.bonus_car3) AS BO3, SUM(oggetto.bonus_car4) AS BO4, SUM(oggetto.bonus_car5) AS BO5 FROM oggetto JOIN clgpersonaggiooggetto ON oggetto.id_oggetto = clgpersonaggiooggetto.id_oggetto WHERE clgpersonaggiooggetto.nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND clgpersonaggiooggetto.posizione > ".ZAINO."");
/*Controllo esilio, se esiliato non visualizzo la scheda*/
if($record['esilio']>strftime('%Y-%m-%d')){
echo '<div class="warning">'.gdrcd_filter('out',$record['nome']).' '.gdrcd_filter('out',$record['cognome']).' '.gdrcd_filter('out',$MESSAGE['warning']['character_exiled']).' '.gdrcd_format_date($record['esilio']).' ('.$record['motivo_esilio'].' - '.$record['autore_esilio'].')</div>';
if ($_SESSION['permessi']>=GAMEMASTER){?>
<div class="panels_box"><div class="form_gioco">
<form action="main.php?page=scheda_modifica&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']) ?>" method="post">
<input type="hidden" value="<?php echo strftime('%Y'); ?>" name="year" />
<input type="hidden" value="<?php echo strftime('%m'); ?>" name="month" />
<input type="hidden" value="<?php echo strftime('%d'); ?>" name="day" />
<input type="hidden" value="<?php gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>" name="causale" />
<input type="hidden" value="exile" name="op" />
<div class="form_label">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>
</div>
<div class="form_submit">
<input type="submit"
value="<?php echo gdrcd_filter('out',$MESSAGE['interface']['forms']['submit']); ?>" />
</div>
</form>
</div></div>
<?php }
} else {
$px_totali_pg=$record['esperienza'];
//carico le sole abilità del pg
$result=gdrcd_query("SELECT id_abilita, grado FROM clgpersonaggioabilita WHERE nome='".gdrcd_filter('in',$_REQUEST['pg'])."'", 'result');
$query5 =gdrcd_query("SELECT id_abilita, grado FROM clgpersonaggioabilita WHERE nome='".$_SESSION['login']."'");
$px_spesi=0;
while ($row=gdrcd_query($result, 'fetch')){
/*Costo in px della singola abilità*/
$px_abi=$PARAMETERS['settings']['px_x_rank']*(($row['grado']*($row['grado']+1))/2);
/*Costo totale*/
$px_spesi+=$px_abi;
$ranks[$row['id_abilita']]=$row['grado'];
}
gdrcd_query($result, 'free');
/*Incremento skill*/
if (($query5['grado'] >= 0) && ($query5['grado'] < 10 )) {
if((gdrcd_filter('get',$_REQUEST['op'])=='addskill') && (($_SESSION['login']==gdrcd_filter('out',$_REQUEST['pg']))||($_SESSION['permessi']>=MODERATOR))){
$px_necessari=$PARAMETERS['settings']['px_x_rank']*($ranks[$_REQUEST['what']]+1);
if(($px_totali_pg)>=$px_necessari){
$query = gdrcd_query("UPDATE personaggio SET esperienza = esperienza - '".$px_necessari."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'");
if ($px_necessari==$PARAMETERS['settings']['px_x_rank']){
$query="INSERT INTO clgpersonaggioabilita (id_abilita, nome, grado) VALUES (".gdrcd_filter('num',$_REQUEST['what']).", '".gdrcd_filter('in',$_REQUEST['pg'])."', 1)";
$ranks[$_REQUEST['what']]=1;
#echo $query;
} else {
$ranks[$_REQUEST['what']]++;
$query="UPDATE clgpersonaggioabilita SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_abilita = ".gdrcd_filter('num',$_REQUEST['what'])." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
}//else
gdrcd_query($query);
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}//if
}//if
/*Decremento skill*/
if((gdrcd_filter('get',$_REQUEST['op'])=='subskill') && ($_SESSION['permessi']>=MODERATOR)){
if ($ranks[$_REQUEST['what']]==1){
$query = gdrcd_query("UPDATE personaggio SET esperienza = esperienza + '".floor($PARAMETERS['settings']['px_x_rank']*($ranks[$_REQUEST['what']]))."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'");
$query="DELETE FROM clgpersonaggioabilita WHERE id_abilita = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' LIMIT 1";
$ranks[$_REQUEST['what']]=0;
} else {
$query = gdrcd_query("UPDATE personaggio SET esperienza = esperienza + '".floor($PARAMETERS['settings']['px_x_rank']*($ranks[$_REQUEST['what']]))."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'");
$ranks[$_REQUEST['what']]--;
$query="UPDATE clgpersonaggioabilita SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_abilita = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
}//else
gdrcd_query($query);
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}//if
}
if (isset($_REQUEST['op'])===FALSE){
?>
<!--- SCHEDA DEL PERSONAGGIO --->
<div class="page_title">
<h2><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<?php
/** * Controllo e avviso che è ora di cambiare password
* @author Blancks
*/
if ($PARAMETERS['mode']['alert_password_change']=='ON')
{
$six_months = 15552000;
$ts_signup = strtotime($record['data_iscrizione']);
$ts_lastpass = (int)strtotime($record['ultimo_cambiopass']);
if ($ts_lastpass+$six_months < time() && $record['nome'] == $_SESSION['login'])
{
echo '<div class="warning">';
if ($ts_signup+$six_months < time())
echo $MESSAGE['warning']['changepass'];
else
echo $MESSAGE['warning']['changepass_signup'];
echo '</div>';
}
}
?>
<div class="menu_scheda"><!-- Menu scheda -->
<?php /*Visualizza il link modifica se l'utente visualizza la propria scheda o se è almeno un capogilda*/
if($_REQUEST['pg']==$_SESSION['login'] || $_SESSION['permessi']>=GUILDMODERATOR){ ?>
<a href="main.php?page=scheda_modifica&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>" class="modifica">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['update']);?>
</a>
<?php } ?>
<a href="main.php?page=scheda_poteri&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>">
Talenti
</a>
<a href="main.php?page=scheda_trans&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['transictions']);?>
</a>
<a href="main.php?page=scheda_px&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['experience']);?>
</a>
<a href="main.php?page=scheda_oggetti&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['inventory']);?>
</a>
<a href="main.php?page=scheda_equip&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['equipment']);?>
</a>
<a href="main.php?page=scheda_fama&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>">
Fama
</a>
<?php /*Visualizza il link modifica se l'utente visualizza la propria scheda o se è almeno un capogilda*/
if($_SESSION['permessi']>=MODERATOR){ ?>
<a href="main.php?page=scheda_log&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>" class="log">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['log']);?>
</a>
<a href="main.php?page=scheda_gst&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>" class="amministra">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['gst']);?>
</a>
<?php } ?>
</div><!-- Menu scheda -->
<div class="preview">
<div class="ritratto"><!-- nome, ritratto, ultimo ingresso -->
<div class="titolo_box" style="color:#005d9d;
text-shadow: -1px 1px grey;">
<span class="ritratto_nome_nome">
<?php echo gdrcd_filter('out',$record['nome']); ?>
</span>
<span class="ritratto_nome_cognome">
<?php echo gdrcd_filter('out',$record['cognome']); ?>
</span>
</div>
<br>
<div class="ritratto_avatar">
<img src="<?php echo gdrcd_filter('fullurl',$record['url_img']); ?>" class="ritratto_avatar_immagine" />
</div>
<div class="iscritto_da">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['first_login']).' '.gdrcd_format_date($record['data_iscrizione']); ?>
</div>
<?php if (gdrcd_format_date($record['ora_entrata'])!='00/00/0000'){ ?>
<div class="ultimo_ingresso">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['last_login']).' '.gdrcd_format_date($record['ora_entrata']); ?>
</div>
<?php } ?>
<div class="ritratto_invia_messaggio"><!-- Link invia messaggio -->
<a href="main.php?page=messages_center&newmessage=yes&reply_dest=<?php echo gdrcd_filter('url',$record['nome']); ?>" class="link_invia_messaggio">
Invia Messaggio
</a>
</div><!-- Link invia messaggio -->
</div><!-- nome, ritratto, ultimo ingresso -->
<div class="profilo"><!-- Punteggi, salute, status, classe, razza. -->
<div class="titolo_box">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['profile']); ?>
</div>
<?php if($record['permessi']>=0){ ?>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['role']); ?>:
</div>
<div class="profilo_voce_valore">
<?php
switch ($record['permessi']){
case USER: $permessi_utente = 'Player'; break;
case GUILDMODERATOR: $permessi_utente = $PARAMETERS['names']['guild_name']['lead']; break;
case SCHIAVO: $permessi_utente = $PARAMETERS['names']['slave_name']['sing']; break;
case GAMEMASTER: $permessi_utente = $PARAMETERS['names']['master']['sing']; break;
case MODERATOR: $permessi_utente = $PARAMETERS['names']['moderators']['sing']; break;
case SUPERUSER: $permessi_utente = $PARAMETERS['names']['administrator']['sing']; break;
}
?>
<?php if($record['permessi']>0):
echo gdrcd_filter('out',$permessi_utente).' <img src="imgs/icons/permessi'.(int)$record['permessi'].'.gif" class="profilo_img_gilda" />'; ?>
<?php else: echo gdrcd_filter('out',$permessi_utente); ?>
<?php endif ?>
</div>
</div>
<?php
} ?>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['occupation']); ?>:
</div>
<div class="profilo_voce_valore">
<?php //carico le gilde
$guilds=gdrcd_query("SELECT ruolo.nome_ruolo, ruolo.gilda, ruolo.immagine, gilda.visibile, gilda.nome AS nome_gilda FROM clgpersonaggioruolo LEFT JOIN ruolo ON ruolo.id_ruolo = clgpersonaggioruolo.id_ruolo LEFT JOIN gilda ON ruolo.gilda = gilda.id_gilda WHERE clgpersonaggioruolo.personaggio = '".gdrcd_filter('in',$record['nome'])."'", 'result');
if (gdrcd_query($guilds, 'num_rows')==0){
echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['uneployed']);
}else{
while ($row_guilds = gdrcd_query($guilds, 'fetch')){
if($row_guilds['gilda']==-1){
echo '<img class="profilo_img_gilda" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out',$row_guilds['immagine']).'" alt="'.gdrcd_filter('out',$row_guilds['nome_ruolo']).'" title="'.gdrcd_filter('out',$row_guilds['nome_ruolo']).'" />';
} else {
if(($row_quilds['visibile']==1)||($_SESSION['permessi']>=USER)){
echo '<a href="main.php?page=servizi_gilde&id_gilda='.$row_guilds['gilda'].'"><img class="profilo_img_gilda" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/guilds/'.gdrcd_filter('out',$row_guilds['immagine']).'" alt="'.gdrcd_filter('out',$row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" title="'.gdrcd_filter('out',$row_guilds['nome_ruolo'].' - '.$row_guilds['nome_gilda']).'" /></a>';
}
}//else
}//while
gdrcd_query($guilds, 'free');
}//else?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['race']['sing']); ?>:
</div>
<div class="profilo_voce_valore">
<?php if((empty($record['sing_f'])==FALSE)||(empty($record['sing_m'])==FALSE)){
if($record['sesso']=='femmina'){echo gdrcd_filter('out',$record['sing_f']);}
else{echo gdrcd_filter('out',$record['sing_m']);}
} else { echo gdrcd_filter('out',$PARAMETERS['names']['race']['sing'].' '.$MESSAGE['interface']['sheet']['profile']['no_race']);}?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
Sesso:
</div>
<div class="profilo_voce_valore">
<?php echo '<img class="presenti_ico" src="../imgs/icons/testamini'.$record['sesso'].'.png" alt="'.gdrcd_filter('out',$MESSAGE['status_pg']['gender'][$record['sesso']]).'" title="'.gdrcd_filter('out', $record['sesso']).'" style="height:12px;" />'; ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['experience']); ?>:
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',floor($record['esperienza_totale'])); ?>
</div>
</div>
<!-- caratteristiche -->
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car0']); ?>: <!-- forza -->
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',$record['car0']+$record['bonus_car0']+$bonus_oggetti['BO0']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car1']); ?>: <!-- destrezza -->
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',$record['car1']+$record['bonus_car1']+$bonus_oggetti['BO1']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car2']); ?>: <!-- resistenza -->
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',$record['car2']+$record['bonus_car2']+$bonus_oggetti['BO2']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car3']); ?>: <!-- percezione -->
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',$record['car3']+$record['bonus_car3']+$bonus_oggetti['BO3']); ?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car4']); ?>: <!-- carisma -->
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',$record['car4']+$record['bonus_car4']+$bonus_oggetti['BO4']); ?>
</div>
</div>
<div class="profilo_voce" style="border: none;">
<div class="profilo_voce_label">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['car5']); ?>: <!-- volontà -->
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',$record['car5']+$record['bonus_car5']+$bonus_oggetti['BO5']); ?>
</div>
</div>
<!-- caratteristiche -->
<div style="border-top: 3px solid #005d9d; padding-top: 5px; margin-top:2px;">
<!-- stat secondarie -->
<?php
$salute_attuale = (gdrcd_filter('num',$record['salute']));
$salute_max= (gdrcd_filter('num',floor($record['car2']+$record['bonus_car2']))*15);
$energia_massima = gdrcd_filter('out',floor($record['car3']+$record['bonus_car3']+$record['car4']+$record['bonus_car4']+$record['car5']+$record['bonus_car5'])*7);
$energia_attuale = gdrcd_filter('out',($record['energia']));
?>
<div class="profilo_voce" style="border-bottom: none;">
<div class="profilo_voce_label" style="border-bottom: 2px solid gray;">
<?php echo gdrcd_filter('out',$PARAMETERS['names']['stats']['hitpoints']); ?>:
</div>
<div class="profilo_voce_valore">
<div style="padding-bottom: 2px;"><?php echo $salute_attuale.'/'.gdrcd_filter('out',$salute_max); ?></div>
<div style="background:rgb(5,23,43,0.7); height:15px;width:100px; border-radius:20px; border:2px outset #005d9d; margin-left:25px; margin-top: -20px;"><div style="background-image: url('themes/advanced/imgs/menu/barra_hp.gif'); height:15px; float: right; background-size: auto; border-radius:20px; width: <?php echo gdrcd_filter('out',floor($salute_attuale*100)/$salute_max); ?>%; font-weight:700;"></div></div>
</div>
</div>
</div>
<div class="profilo_voce" style="border-bottom: none;">
<div class="profilo_voce_label" style="border-bottom: 2px solid gray;">
Punti Energia:
</div>
<div class="profilo_voce_valore">
<div style="padding-bottom: 2px;"> <?php echo $energia_attuale.'/'.$energia_massima; ?></div>
<div style="background:rgb(5,23,43,0.7); height:15px;width:100px; border-radius:20px; border:2px outset #005d9d; margin-left:25px; margin-top: -20px;"><div style="background-image: url('themes/advanced/imgs/menu/barra_mana.gif'); height:15px; background-size: auto;float: right; border-radius:20px; width: <?php echo gdrcd_filter('out',floor($energia_attuale*100)/$energia_massima); ?>%; font-weight:700;"></div></div>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
Salto:
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',round(floor(floor($record['car1']+$record['bonus_car1'])/2+floor($record['car0']+$record['bonus_car0'])/2))); ?> m
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
Lancio:
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',round(floor(floor($record['car0']+$record['bonus_car0'])+floor($record['car1']+$record['bonus_car1'])))); ?> m
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
Percorrenza:
</div>
<div class="profilo_voce_valore">
<?php
$query = gdrcd_query("SELECT id_razza FROM personaggio WHERE nome = '".$_SESSION['login']."'");
$razza = $query['id_razza'];
if ($razza == '1033'){
echo gdrcd_filter('out',round(floor($record['car0']+$record['car1']+$record['car2']+$record['bonus_car0']+$record['bonus_car1']+$record['bonus_car2'])+8)); ?> m
<?php }
else {
echo gdrcd_filter('out',round(floor($record['car0']+$record['car1']+$record['car2']+$record['bonus_car0']+$record['bonus_car1']+$record['bonus_car2']))); ?> m
<?php }
?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
Percezioni:
</div>
<div class="profilo_voce_valore">
<?php $query = gdrcd_query("SELECT id_razza FROM personaggio WHERE nome = '".$_REQUEST['pg']."'");
$razza = $query['id_razza'];
if ($razza == '1029'){
echo gdrcd_filter('out',floor(($record['car3']+$record['bonus_car3'])*3)+8); ?> m
<?php }
else {
echo gdrcd_filter('out',floor($record['car3']+$record['bonus_car3'])*3); ?> m
<?php }
?>
</div>
</div>
<div class="profilo_voce">
<div class="profilo_voce_label">
Apnea:
</div>
<div class="profilo_voce_valore">
<?php echo gdrcd_filter('out',round(floor($record['car2']+$record['bonus_car2'])/2)); ?> turni
</div>
</div>
<!-- stat secondarie -->
</div>
</div><!-- Punteggi, salute, status, classe, razza -->
<div class="trapezio">
<div class="trapezio_bordo">
</div>
</div>
</div>
<div class="status"> <!--status-->
<div class="titolo_box_status">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['profile']['status']); ?>
</div>
<div class="body_box_status">
<?php echo nl2br(gdrcd_filter('out',$record['stato'])); ?>
</div>
</div> <br><br>
<?php if($PARAMETERS['mode']['skillsystem']=='ON'){ //solo se è attiva la modalità skillsystem?>
<div class="elenco_abilita"><!-- Elenco abilità -->
<details>
<summary style=";
background-color: rgb(5,23,43,0.7);
border: 2px solid #005d9d; color:transparent; margin-bottom: 10px; cursor: pointer;">
<div class="titolo_box">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['skills']); ?>
</div>
<div class="form_info" style="color: #ebebeb; font-size: 15px; font-weight:bold; padding-left: 10px; padding-right: 10px; font-style: none;"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['avalaible_xp']).': '.($px_totali_pg);?></div>
<div class="form_info" style="color: #ebebeb; font-size: 15px; font-weight:bold; padding-left: 10px; padding-right: 10px; font-style: none; padding-bottom: 10px;"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['info_skill_cost']);?></div>
</summary>
<?php
//conteggio le abilità
$row=gdrcd_query("SELECT COUNT(*) FROM abilita WHERE id_razza=-1 OR id_razza= ".$record['id_razza']."");
$num=$row['COUNT(*)'];
//carico l'elenco delle abilità
$result=gdrcd_query("SELECT nome, car, id_abilita FROM abilita WHERE id_razza=-1 OR id_razza= ".$record['id_razza']." ORDER BY id_razza DESC, nome", 'result');
$count=0;
$total=0;?>
<div class="div_colonne_abilita_scheda">
<table class="colonne_abilita_scheda"><tr>
<?php while($row=gdrcd_query($result, 'fetch')){
if ($count==0){echo '<td><table>';}?>
<tr>
<td><div class="abilita_scheda_nome, casella"><?php echo gdrcd_filter('out',$row['nome']); ?></div></td>
<td>
<div class="abilita_scheda_car, stat">
<?php echo ''.gdrcd_filter('out',$PARAMETERS['names']['stats']['car'.$row['car']]).''; ?>
</div>
</td>
<td><div class="abilita_scheda_tank, stat" style=" width: 25px;"><?php echo 0+gdrcd_filter('out',$ranks[$row['id_abilita']]); ?></div></td>
<td>
<div class="abilita_scheda_sub, piu" >
<?php /*Stampo il form di incremento se il pg ha abbastanza px*/
if((((($ranks[$row['id_abilita']]+1)*$PARAMETERS['settings']['px_x_rank'])<=($px_totali_pg))&&
(gdrcd_filter('get',$_REQUEST['pg'])==$_SESSION['login'])&&
($ranks[$row['id_abilita']]<$PARAMETERS['settings']['skills_cap']))||
($_SESSION['permessi']>=MODERATOR)){ ?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']) ?>&op=addskill&what=<?php echo $row['id_abilita'] ?>"><span style="font-size: 22px;"> + </span></a>
<?php if(($_SESSION['permessi']>=MODERATOR)&&
($ranks[$row['id_abilita']]>0)){ ?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']) ?>&op=subskill&what=<?php echo $row['id_abilita'] ?>"><span style="font-size: 22px;">- </span></a>
<?php } ?>
<?php } else { echo ' ';} ?>
</div>
</td>
</tr>
<?php $count++; $total++;
if (($count>=ceil($num/2))||($total>=$num)){$count=0; echo '</table></td>';}
}//while
gdrcd_query($result, 'free');
?>
</tr>
</table>
</div>
</details>
</div><!-- Elenco abilità -->
<?php } ?>
<!-- Background, affetti, robe varie -->
<?php
$query3= gdrcd_query("SELECT url_media FROM personaggio WHERE nome = '".$_REQUEST['pg']."'");
$musica = $query3['url_media'];
if ($musica != ''){?>
<div class="background">
<div class="titolo_box">
Musica
</div>
<div class="body_box">
<div ><!-- embed src="<?php //echo gdrcd_bbcoder(gdrcd_filter('out',$record['url_media'])); ?>" height="0" width="0"-->
<?php
//Impedisci XSS nella musica
$record['url_media']=gdrcd_filter('fullurl',$record['url_media']);
if ($PARAMETERS['mode']['allow_audio'] == 'ON' && !$_SESSION['blocca_media'] && !empty($record['url_media']))
{
?>
<audio controls style="margin-bottom:-15px; height: 30px; width: 300px;">
<source src="<?php echo $record['url_media']; ?>" id="audio_scheda" >
</audio>
<!--[if IE9]>
<embed src="<?php echo $record['url_media']; ?>" autostart="true" hidden="true" />
<![endif]-->
<?php
}
?>
</div>
</div>
</div>
<?php } ?>
<?php
$query3= gdrcd_query("SELECT descrizione FROM personaggio WHERE nome = '".$_REQUEST['pg']."'");
$descrizione = $query3['descrizione'];
if ($descrizione != ''){?>
<div class="background">
<div class="titolo_box">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['background']); ?>
</div>
<div class="body_box">
<?php
/** * Html, bbcode o entrambi ?
* @author Blancks
*/
if ($PARAMETERS['mode']['user_bbcode'] == 'ON')
{
if ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd' && $PARAMETERS['settings']['bbd']['free_html'] == 'ON')
{
echo bbdecoder(gdrcd_html_filter($record['descrizione']), true);
}elseif ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd')
{
echo bbdecoder(gdrcd_filter('out',$record['descrizione']), true);
}else
{
echo gdrcd_bbcoder(gdrcd_filter('out',$record['descrizione']));
}
}else
{
echo gdrcd_html_filter($record['descrizione']);
}
?>
</div>
</div>
<?php } ?>
<?php
$query3= gdrcd_query("SELECT bg_segreto FROM personaggio WHERE nome = '".$_REQUEST['pg']."'");
$bg_segreto = $query3['bg_segreto'];
if ($bg_segreto != ''){?>
<?php if($_REQUEST['pg']==$_SESSION['login'] || $_SESSION['permessi']>=GAMEMASTER){ ?>
<div class="background">
<div class="titolo_box">
Background segreto
</div>
<div class="body_box">
<?php
/** * Html, bbcode o entrambi ?
* @author Blancks
*/
if ($PARAMETERS['mode']['user_bbcode'] == 'ON')
{
if ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd' && $PARAMETERS['settings']['bbd']['free_html'] == 'ON')
{
echo bbdecoder(gdrcd_html_filter($record['bg_segreto']), true);
}elseif ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd')
{
echo bbdecoder(gdrcd_filter('out',$record['bg_segreto']), true);
}else
{
echo gdrcd_bbcoder(gdrcd_filter('out',$record['bg_segreto']));
}
}else
{
echo gdrcd_html_filter($record['bg_segreto']);
}
?>
</div>
</div>
<?php } ?>
<?php } ?>
<?php
$query3= gdrcd_query("SELECT affetti FROM personaggio WHERE nome = '".$_REQUEST['pg']."'");
$affetti = $query3['affetti'];
if ($affetti != ''){?>
<div class="background">
<div class="titolo_box">
Lista Amici<br>
</div>
<div class="body_box">
<?php
/** * Html, bbcode o entrambi ?
* @author Blancks
*/
if ($PARAMETERS['mode']['user_bbcode'] == 'ON')
{
if ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd' && $PARAMETERS['settings']['bbd']['free_html'] == 'ON')
{
echo bbdecoder(gdrcd_html_filter($record['affetti']), true);
}elseif ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd')
{
echo bbdecoder(gdrcd_filter('out',$record['affetti']), true);
}else
{
echo gdrcd_bbcoder(gdrcd_filter('out',$record['affetti']));
}
}else
{
echo gdrcd_html_filter($record['affetti']);
}
?>
</div>
</div>
<?php } ?>
<!-- Background, affetti, robe varie -->
<!--- AREA ADMIN --->
<?php if($_SESSION['permessi']>=MODERATOR){ ?>
<div class="log_report">
<?php /*report*/ ?>
</div>
<?php } ?>
</div>
<?php
} else { ?>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('url',$_REQUEST['pg']); ?>"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
<?php }//else
}//else
/********* CHIUSURA SCHEDA **********/
}//else
?>
<?php }//else?>
</div>
</div>
22/09/2021 10:55:18
Purtroppo non esiste un modo semplice per risolvere questo problema ed è anche per questo motivo che solitamente si utilizza il BBCode (oltre, ovviamente, a tutte le criticità legate alla sicurezza).
Come ha giustamente suggerito @chykopon, puoi incapsulare la scheda all'interno di una modale e le eventuali impurità andranno ad affliggere solo ed esclusivamente queste, rendendo quindi il problema un poco più circoscritto, oppure puoi affidarti a strumenti come gli HTML EDITOR, tipo CKEDITOR (https://ckeditor.com/ckeditor-5/ ↗), che hanno metodi nativi per sistemare questi errori o te li mostrano direttamente in anteprima (non è sempre detto, sia chiaro, ma almeno hanno un occhio in più).
Kasa.
22/09/2021 22:30:22
grazie mille del consiglio, sto provando con l'editor, solo che mi sta dando dei problemi.
Quasi nessun editor è compadibile con gdrcd 5.4, l'unico che ha dato segni di vita è stato il classic del sito che mi hai consigliato tu, ma è scomodissimo e non è un text editor, è praticamente word, le immagini sono piazzate in mezzo alla textarea di prepotenza
C'è una qualche funzione del bbd che devo disattivare per farlo funzionare per caso?
26/09/2021 11:14:11
Esistono diversi livelli di personalizzazione di CKEditor, che apmpliano il parco di funzionalità a disposizione. Dovrebbe esserci, ma non ne sono sicuro dato che è cambiato molto nel tempo, anche una versione che ti permette di scrivere direttamente il sorgente in formato HTML e quindi inserire a DB questo, ovviamente con una anteprima visiva nella schermata principale dell'Editor.
In ogni caso, per disattivare le funzione di BBCode nella scheda dell'utente occorre impostare ad OFF questa riga nel file config.inc.php:
/** * Parametri per il BBCode
*/
$PARAMETERS['mode']['user_bbcode'] = 'OFF';
Non so se effettivamente entrino in conflitto le due funzionalità, sarebbe da testare.
Kasa.
29/09/2021 19:05:20
Non trovo nulla che faccia al caso mio :/
Sto cercando di fare in modo che sia possibile creare una grafica in scheda, pur senza rompere il codice di gioco
E' una cosa molto comune nelle land, davvero non c'è altro modo per ottenerlo?
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Tiles Survive ↗
Neverness to Everness ↗
Enlisted ↗
Wuthering Waves ↗
World of Warship ↗
Tibia ↗