[GDRCD5] Creazione nuova sezione scheda
[GDRCD5] Creazione nuova sezione scheda postato il 21/04/2011 20:03:30 nel forum programmazione, open source e hosting
vabbè, ok, qua rischio di essere mandata a quel paese ma... se mi aiutate giuro che.... boh, non lo so v.v
comunque xD
sto cercando di creare una nuova sezione nella scheda del personaggio, chiamata "poteri", che dovrebbe contenere appunto i... poteri dei vari pg. Vorrei fosse una sezione visibile da tutti ma modificabile solo dai gestori, in modo da poter aggiungere lì, di volta a volta, i vari poteri.
Ho cercato di prendere ad esempio la scheda e il file modifica per aggiungere la sezione, solo che... il problema è che non mi carica le info nel DB. In altre parole, ad ora, il risultato che ho ottenuto è far aprire la pagina di "modifica", diciamo così, senza che però le informazioni che lì immetto poi vengano "prese" e risultino in scheda.
Vi spiego passo passo cosa ho fatto, se riuscite a dirmi cosa sbaglio... vi faccio un monumento :D
ho creato il pulsante apposito in scheda, che mi collega alla pagina "scheda_incanti", dove si dovrebbero vedere i vari poteri di ciascun pg. Nella pagina, che ho creato, chiamata "scheda_incanti.inc.php" ho fatto in modo che per i gestori appaia anche il tasto "modifica", che conduce alla pagina "scheda_incanti_modifica.inc.php", che dovrebbe permettere a me gestore di aggiungere e togliere i vari poteri. Solo che, come dicevo, qualsiasi cosa inserisca poi in questa pagina non viene "presa". questo è il codice di "scheda_incanti_modifica.inc.php". Dove è l'errore?
[specifico, prima dell'errore, che sì, so che sto riutilizzando il vocabolario per gli affetti, ma non credo sia quello il problema. E che, sì, in scheda_incanti.inc.php ho creato la sezione in cui dovrebbero visualizzarsi gli incanti e dove dovrebbero incidere le modifiche]
<div class="pagina_scheda_modifica_incanti">
<?php /*HELP: */
if (isset($_REQUEST['pg'])===FALSE){
print gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']);
} else if ($_SESSION['permessi']<MODERATOR) {
print gdrcd_filter('out',$MESSAGE['error']['access_denied']);
} else {
if ($_POST['op']=='modify'){
$query="UPDATE personaggio SET poteri = '".gdrcd_filter('in',$_POST['modifica_poteri'])."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND permessi <= ".$_SESSION['permessi']."";
$result = mysql_query($query);
print '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
} else {
/*Carico le informazioni del PG*/
$query = "SELECT poteri FROM personaggio WHERE nome='".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = mysql_query($query);
$record = mysql_fetch_array($result);
}
?>
<div class="page_title">
<h2><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<?php if(isset($_POST['op'])===FALSE) { ?>
<div class="panels_box">
<?php
if ($_SESSION['permessi']>=MODERATOR){
?>
<div class="form_gioco">
<!-- Form utente modifica -->
<form action="main.php?page=scheda_modifica_incanti" method="post">
<div class='form_label'>
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['admin']['relationships']); ?>
</div>
<div class='form_field'>
<textarea type="textbox" name="modifica_poteri" class="form_textarea"><?php print $record['poteri']; ?></textarea>
</div>
<input type="hidden" name="op" value="modify" />
<input type="hidden"
value="<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>"
name="pg" />
<div class='form_submit'>
<input type="submit" value="<?php print $MESSAGE['interface']['forms']['submit']; ?>" class="form_submit" />
</div>
</form>
</div>
</div>
<?php
}//if
}//if
}//else?>
</div>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda_incanti&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>"><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
</div><!-- pagina -->
Pagine → 1
21/04/2011 21:44:55
Magari quel che sto per dire è completamente sbagliato e, in caso, mi scuso, ma non sono ancora così esperta come programmatrice. Non potrebbe essere che non hai creato la stringa nel db?
22/04/2011 11:23:20
grazie per i consigli, Bukama! :D
qua il punto, in realtà era... banalissimo, così tanto che, quando l'ho realizzato, avrei tirato testate al muro =_= banalmente: mi ero scordata di aggiungere la stringa dei poteri al DB e... niente, l'ho fatto e funziona. Resta che mi sento scema <.<"
XD
09/07/2015 01:19:08
Sono in vena di rispolvero topic! XD
Ho un problema abbastanza simile a quello che fu di Irenes e dunque non apro un altro thread!
Mi sto cimentando nella creazione di una pagina, linkabile dalla scheda pg, modificabile unicamente dalla gestione. Ho creato il campo nel database, ho creato sia scheda_competenze.inc.php, sia scheda_modifica_competenze.inc.php e tutto compare come dovrebbe.
Il "ma" viene ad esserci quando, provando a modificare il contenuto DAL SITO, per quanto mi si segnali "modifica eseguita", così non è. Posso modificare tale scheda direttamente dal db (e tali modifiche mi risultano tranquillamente), ma potete capire il disagio.
Sicuramente è un errore di codice, ma non riesco a trovarlo!
Intanto ve li posto entrambi, sperando in qualche anima pia che possa aiutarmi *_*
scheda_competenze.inc.php
<div class="pagina_competenze">
<?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
if (isset($_REQUEST['pg'])===FALSE){
echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT personaggio.*, 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');
}
?>
<div class="competenze"><!-- Background, affetti, robe varie -->
<?php /*Visualizza il link modifica se l'utente è almeno un moderatore*/
if($_REQUEST['pg']==$_SESSION['permessi']>=MODERATOR){ ?>
<a href="main.php?page=scheda_modifica_competenze&pg=<?php print gdrcd_filter('url',$_REQUEST['pg']); ?>">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['menu']['update']);?>
</a>
<?php } ?>
<div class="titolo_box">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['box_title']['competences']); ?>
</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['competenze']), true);
}elseif ($PARAMETERS['settings']['user_bbcode']['type'] == 'bbd')
{
echo bbdecoder(gdrcd_filter('out',$record['competenze']), true);
}else
{
echo gdrcd_bbcoder(gdrcd_filter('out',$record['competenze']));
}
}else
{
echo gdrcd_html_filter($record['competenze']);
}
?>
</div>
</div><!-- Background, affetti, robe varie -->
<? //********* CHIUSURA SCHEDA **********/
}//else
?>
scheda_modifica_competenze.inc.php
<div class="pagina_scheda_modifica_competenze">
<?php /*HELP: */
if (isset($_REQUEST['pg'])===FALSE){
print gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']);
} else if ($_SESSION['permessi']<MODERATOR) {
print gdrcd_filter('out',$MESSAGE['error']['access_denied']);
} else {
if((gdrcd_filter('get',$_REQUEST['pg'])==$_SESSION['login'])&&(gdrcd_filter('get',$_POST['op'])=='modify'))
$modifica_competenze = gdrcd_filter('in',$_POST['modifica_competenze']);
}
if ($_POST['op']=='modify'){
$query="UPDATE personaggio SET competenze = '".gdrcd_filter('in',$_POST['modifica_competenze'])."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND permessi <= ".$_SESSION['permessi']."";
$result = mysql_query($query);
print '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
} else {
/*Carico le informazioni del PG*/
$record = "SELECT competenze FROM personaggio WHERE nome='".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = mysql_query($query);
$record = mysql_fetch_array($result);
}
?>
<div class="page_title">
<h2><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<?php if(isset($_POST['op'])===FALSE) { ?>
<div class="panels_box">
<?php
if ($_SESSION['permessi']>=MODERATOR){
?>
<div class="form_gioco">
<!-- Form utente modifica -->
<form action="main.php?page=scheda_modifica_competenze" method="post">
<div class='form_label'>
<?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['modify_form']['admin']['competences']); ?>
</div>
<div class='form_field'>
<textarea type="textbox" name="modifica_competenze" class="form_textarea"><?php print $record['competenze']; ?></textarea>
</div>
<div class="form_info">
<?php echo gdrcd_filter('out',$MESSAGE['interface']['help']['bbcode']); ?>
</div>
<input type="hidden" name="op" value="modify" />
<input type="hidden"
value="<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>"
name="pg" />
<div class='form_submit'>
<input type="submit" value="<?php print $MESSAGE['interface']['forms']['submit']; ?>" class="form_submit" />
</div>
</form>
</div>
</div>
<?php
}//if
}//if
?>
</div>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda_competenze&pg=<?php print gdrcd_filter('get',$_REQUEST['pg']); ?>"><?php print gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
</div><!-- pagina -->
Grazie assai *_*
09/07/2015 08:48:46 e modificato da dyrr il 09/07/2015 08:51:42
La prima cosa che mi viene in mente guardando il codice è questa:
nella prima pagina dal codice utilizzato usi una versione abbastanza recente del gdrcd perchè usa le funzioni di gestione delle query gdrcd_query();
nella seconda usi un codice più vecchio del gdrcd perchè vedo ancora i print al posto degli echo e le query scritte ancora a mano con le funzioni di mysql tipo mysql_query().
Se usi un gdrcd abbastanza recente il gestore delle query non utilizza più MySQL ma MySQLi per cui il problema di fondo potrebbe essere la mancanza dell'esecuzione della query di update perchè non è attiva una connessione MySQL.
Il mio consiglio sarebbe di provare a modificare il pezzo del codice dove fa la query di update:
Questo per intenderci:
if ($_POST['op']=='modify')
{
$query="UPDATE personaggio SET competenze = '".gdrcd_filter('in',$_POST['modifica_competenze'])."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND permessi <= ".$_SESSION['permessi']."";
$result = mysql_query($query);
print '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}
usando il gestore delle quesry del gdrce modificandolo in:
if ($_POST['op']=='modify')
{
$query="UPDATE personaggio SET competenze = '".gdrcd_filter('in',$_POST['modifica_competenze'])."' WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND permessi <= ".$_SESSION['permessi']."";
gdrcd_query($query);
print '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}
Non ho testato il codice ma la modifica dovrebbe funzionare se il problema è quello, problema che mi salta al naso per primo.
Attenzione nel mischiare pagine per versioni vecchie del gdrcd %.x con quelle per le ultime perchè potrebbero esserci incompatibilità nelle funzioni di accesso al gatabase.
10/07/2015 16:33:27 e modificato da gypsy_of_avalon il 11/07/2015 19:06:45
Ti ringrazio tantissimo *_* il problema era proprio quello lì!
Grazie grazie grazie :-D:-D
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!
Enlisted ↗
New Orleans ↗
The Coven ↗
State of Survival ↗
Foundation Galactic Frontier ↗