problema con modifica scheda
problema con modifica scheda postato il 26/05/2011 14:39:05 nel forum programmazione, open source e hosting
Ciao a tutti.
Ho un problema sulla modifica delle schede di una land in preparazione. Ho utilizzato come base gdrcd 3.5, anche se ormai dell'originale è rimasto ben poco.
Il problema è che sulla pagina in questione vengono caricati correttamente i dati già presenti sul database ma al momento della conferma delle modifiche, quest'ultime non vengono salvate.
Non viene mostrato alcun codice di errore e sinceramente non so più dove andare a parare.
Ho provato a rifare la pagina da zero ma la cosa non cambia. Immagino sia un problema della query di aggiornamento ma non riesco a venirne a capo.
Potete darmi una mano?
Pagine → 1
26/05/2011 14:41:47
Senza codice sarà difficile individuare l'errore...Postalo...magari qualcuno riesce a darti una mano...
26/05/2011 15:33:06
sgc carter ha scritto: Senza codice sarà difficile individuare l'errore...Postalo...magari qualcuno riesce a darti una mano...
Buonanotte ragazzi, scusate ma ho il cervello in pappa per colpa del lavoro. Qui di seguito il codice della pagina e subito appresso l'elenco delle voci nel DB.
<? session_start();
include ('inc/parametri.inc.php');
include ('inc/controllo.php');
include ('inc/open2.php');
$pg=$_REQUEST['pg'];
$Login=$_SESSION["Login"];
$pg = trim($pg);
$Modifica = trim($Login);
$upd = ((strtoupper($pg) == strtoupper($Login)) and (trim($pg) != "") and (strtoupper($Modifica) == strtoupper($pg)));
function barra($valore, $maxvalore)
{
$colore = "#8fbc8b";
$colore1 = "#8fbc8b";
$bar = '<table cellpadding=0 cellspacing=0 border=0 width="'.$valore.'" height=10>';
$bar .= '<tr><td align=right bgcolor="'.$colore.'" width=';
if ($valore > 100) {
$bar .= '100><font color=#000000>+</font>';
}
else
{
$bar .= $valore.'><img src='img/spacer.gif' width='.$valore.' height=1>';
};
$bar .= "</td>";
if (($maxvalore - $valore) > 0) {
$bar .= '<td align=right bgcolor="'.$colore1.'" width=';
$bar .= ($maxvalore - $valore).'><img src='img/spacer.gif' width='.($maxvalore-$valore).' height=1>';
$bar .= "</td>";
};
$bar .= "</tr>";
$bar .= "</table> ";
return $bar;
};
$MySql = "SELECT Personaggio.*, Razza.Razza, Razza.URLImg AS URLImgRazza, Gilda.Gilda, Gilda.URLImg AS URLImgGilda
FROM Personaggio
LEFT JOIN Razza
ON Personaggio.IDRazza = Razza.IDRazza
LEFT JOIN Gilda
ON Personaggio.IDGilda = Gilda.IDGilda
WHERE Nome = '".pars($pg)."'";
$result = mysql_query($MySql);
$rs = mysql_fetch_array($result);
if ((trim($pg) == "") or !($rs)) {
$rs->close;
mysql_close;
echo("<script><!-- history.back(); //--> </script>");
exit();
};
#########################################
# Il Recordset non è vuoto #
#########################################
$UrlImg = trim($rs["URLImg"]);
If ($UrlImg == "")
$UrlImg = "img/sagoma".$rs["Sesso"].".gif";
$UrlImgRazza = trim($rs["URLImgRazza"]);
If ($UrlImgRazza == "")
$UrlImgRazza = "spacer.gif";
$UrlImgGilda = trim($rs["URLImgGilda"]);
If ($UrlImgGilda == "")
$UrlImgGilda = "nessuno.gif";
$Gilda = trim($rs["Gilda"]);
if ($Gilda == "") {
if (strtolower($rs["Sesso"]) == "f") {
$Gilda = "Cittadina";
} else {
$Gilda = "Cittadino";
}
}
include ('inc/header.html.inc.php');
?>
<title>Modifica Scheda <?= $pg ?></title>
</head>
<body bgcolor=#8fbc8b text=#000000>
<div align="center">
<br>
<table border=0 cellpadding=0 cellspacing=0 align="center">
<tr>
<td>
<a href="scheda.php?pg=<?= urlencode($pg) ?>" target="palestra"><img border="0" src="/scheda/scheda.png"></td>
<td>
<a href="schedadescrizione.php?pg=<?= urlencode($pg) ?>" target="palestra"><img border="0" src="/scheda/descrizione.png"></a></td>
<td>
<a href="schedaaffetti.php?pg=<?= urlencode($pg) ?>" target="palestra"><img border="0" src="/scheda/affetti.png"></a></td>
<td>
<a href="schedaskill.php?pg=<?= urlencode($pg) ?>" target="palestra"><img border="0" src="/scheda/skill.png"></a></td>
<td>
<a href="schedacapacita.php?pg=<?= urlencode($pg) ?>" target="palestra"><img border="0" src="/scheda/special.png"></a></td>
<td>
<a href="schedaoggetti.php?pg=<?= urlencode($pg) ?>" target="palestra"><img border="0" src="/scheda/oggetti.png"></a></td>
<?
if (isset($Login)) {
if ($Login == $pg) {
echo('<td><a href="scheda3.php?pg='.urlencode($pg).'"><img src="/scheda/modifica.png" border="0"></a></td>');
}
};
?></tr></table>
<br>
<? if (!($upd)) {exit();} ?>
<table border="1" bordercolor="#F8E9AA" cellspacing="0" cellpadding="2" width="420">
<tr>
<td colspan=3 align=center><font class=Titolo><img src="img/testamini<?= strtolower($rs["Sesso"]) ?>.gif"> <?= htmlspecialchars($rs["Nome"]) ?></font></td>
</tr>
<!--? if ($upd || $master==1) { ?-->
<form action="scheda.php" method="POST">
<input type="hidden" name="pg" value="<?= urlencode($pg) ?>">
<?if($upd) { ?>
<tr>
<td align=center colspan=3>Cognome<br> <input type="text" name="cognome" maxlength="40" value="<?= htmlspecialchars($rs["Cognome"]) ?>"></td>
</tr>
<tr>
<td><b>Attenzione</b>: nessuno può imporre di cambiare la password suggerendo quella nuova. Se accadesse, denunciatelo ai gestori, o ai moderatori.</td>
<td align=center colspan=1>Password<br><input type="password" name="pass" maxlength="50" value="<?= htmlspecialchars($rs["Pass"]) ?>"></td>
</tr>
<? } ?>
<tr>
<td rowspan="10" align="left" valign="top" width="200"><img width="200" src="<?= $UrlImg ?>" border="0"></td>
<td width=100>Mente</td><td width=20> <?= htmlspecialchars($rs["Mente"]) ?></td>
</tr><tr>
<td width=100>Caparbietà</td><td width=20> <?= htmlspecialchars($rs["Caparbietà"]) ?></td>
</tr><tr>
<td width=100>Forza</td><td width=20> <?= htmlspecialchars($rs["Forza"]) ?></td>
</tr><tr>
<td width=100>Stamina</td><td width=20> <?= htmlspecialchars($rs["Stamina"]) ?></td>
</tr><tr>
<td width=100>Destrezza</td><td width=20> <?= htmlspecialchars($rs["Destrezza"]) ?>
</tr><tr>
<td width=100>Genialità</td><td width=20> <?= htmlspecialchars($rs["Genialità"]) ?></td>
</tr><tr>
<td width=100>Cosmo/Sincronia</td><td width=20> <?= htmlspecialchars($rs["Cosmo"]) ?></td>
</tr><tr>
<td width=100>Fede</td><td colspan="2"> <?= htmlspecialchars($rs["Razza"]) ?></td>
</tr><tr>
<td width=100>Ruolo</td><td colspan="2"> <?= htmlspecialchars($Gilda) ?></td>
<? if (($pg == $Login) && !(strtoupper($Modifica) == strtoupper($pg))) { ?>
</form>
<? } ?>
</tr>
<form action="scheda.php" method="POST">
<?if ($upd) {
echo "<tr> <td align=center colspan=3>Descrizione<br>";
if ($upd) {
echo "<textarea cols=75 rows=5 name="descrizione">".htmlspecialchars($rs["Descrizione"])."</textarea>";
} else {
echo htmlspecialchars($rs["Descrizione"]);
}
echo "</td></tr>";
}?>
<? if ($upd) {
echo "<tr><td align=center colspan=3>Affetti<br>";
echo "<textarea cols=75 rows=5 name="affetti">".htmlspecialchars($rs["Affetti"])."</textarea>";
echo "</td></tr>";
} ?>
<? if ($upd) { ?>
<tr>
<td align=center colspan=3>URL Immagine<br> <input type="text" name="urlimg" maxlength="255" value="<?= htmlspecialchars($rs["URLImg"]) ?>" size=50></td>
</tr>
<? } ?>
<? if ($upd||$_SESSION['Master'] == '1') { ?>
<tr>
<td align=center colspan=3><input type="Submit" value="Modifica <?= $pg ?>"></td>
</tr>
</form>
<? } ?></table>
<? $rs->close;
?>
</div>
</body>
</html>
Questo è invece l'elenco delle voci nel database personaggi:
Nome
Cognome
Pass
DataIscrizione
Esperienza
Mente
Caparbietà
Forza
Stamina
Destrezza
Genialità
Cosmo
IDRazza
IDGilda
SaluteFisica
SaluteMentale
StatoCloth
NoteFato
Mappa
DataUltimaGilda
Sesso
Descrizione
URLImg
Soldi
UltimoLavoro
Esilio
DataEventiEsilio
UltimoStipendio
Motivo
Banca
MaxMente
MaxForza
Affetti
AutoreEsilio
IsCambiatoNome
Super
Admin
Doppio
27/05/2011 09:23:19
I dati già presenti sul database vengono visualizzati correttamente sui campi della pagina. Quello che non mi fa è salvare le eventuali modifiche. Il problema è che non mi da nessun messaggio di errore.
27/05/2011 13:39:07
Ti rispondo da programmatrice decisamente inesperta ed alle prime armi, andando semplicemente a rivedere il codice funzionante che avevo quando utilizzavo il gdr extreme/aran/3 ecc.
E, ad inizio pagina, per quanto riguarda almeno la modifica, visto che mi sembra quello il tuo problema, avevo questo:
$Modifica=$_POST['Modifica'];
$Modifica = trim($Modifica);
$upd = ((strtoupper($pg) == strtoupper($Login)) and (trim($pg) != "") and (strtoupper($Modifica) == strtoupper($pg)));
Non so quanto possa esserti utile ma non si sa mai :)
27/05/2011 13:58:44
leonarde ha scritto: I dati già presenti sul database vengono visualizzati correttamente sui campi della pagina. Quello che non mi fa è salvare le eventuali modifiche. Il problema è che non mi da nessun messaggio di errore.
Direi che è normale: nel codice che hai postato manca una qualsiasi query di update, per cui i dati sul db non verranno mai aggiornati senza di essa.
Inoltre in caso di errori nella sintassi SQL mandata al db è normale che non visualizzi nessun messaggio d'errore: quello lo produce il db.
Puoi però printarlo da php sistemando le mysql_query nel seguente modo:
mysql_query($miaQuery)or die(mysql_error());
In questo modo quando il db torna un errore php arresta lo script e printa il messaggio a video.
Fab, non credi usi il 5 visti gli includes ad inizio pagina :s
27/05/2011 14:03:20
blancks ha scritto:
Fab, non credi usi il 5 visti gli includes ad inizio pagina :s
meheheheh, appunto
"Ho un problema sulla modifica delle schede di una land in preparazione. Ho utilizzato come base gdrcd 3.5, anche se ormai dell'originale è rimasto ben poco."
xD
comunque... posso essere ben poco utile, non conoscendoq uel codice. Mi limito quindi a confermare quanto detto da blancks, dopo aver dato una scorsa al "modifica_scheda" di gdrc5: manca una qualsiasi query di update... inseriscila e prova un po' :)
21/10/2011 00:46:13
Ringrazio tutti per i consigli
sono riuscito a rimediare al problema. Era un problema della query che non so perchè si era incriccata. Riscrivendola da zero uguale identica è ripartita.
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!
Seconda Era ↗
RAID Shadow Legends ↗
Neverness to Everness ↗
World of Warship ↗
Raja Dunia ↗
Cafuné ↗
Foundation Galactic Frontier ↗