Bacheca GDRCD - Inserire o Omettere Firme
Bacheca GDRCD - Inserire o Omettere Firme postato il 29/04/2008 17:59:16 nel forum programmazione, open source e hosting e modificato da empofdark il 29/04/2008 19:09:36
Buona sera a tutti, sto smanettando da un paio d'ore con la Bacheca di GDRCD, l'idea era quella di dare la possibilità al pg di inserire o meno la firma nella bacheca, avendo tolto dalla specifica anche i simboletti ed il nome del pg in testa al messaggio, così da dare una parvenza piu' accreditabile della giocata ongame anche tramite bacheca.
Ho creato su: MessaggioAraldo una tabella rinominandola "Tipo" e se modifico il valore su db la funzione stampa correttamente o meno la firma, avendo creato questa stringa di codice sulla bachecapopolo.php
<? if ($rs["Stato"] == '1') { ?>
<font color="#000000"><strong><em><?= htmlspecialchars($rs["Autore"]) ?></em></strong></font></div><br><div align="center"><img src="img/stemmi/<?= $rs["Img"] ?>" border=0 width="18" height="18"> <font color="#000000"><strong><em><?= htmlspecialchars($rs["Corporazione"]) ?></em></strong></font></div><? } else { ?><font color="#000000"><strong><br><center>Anonimo</center></strong></font> <? } ?>
e come ho detto sopra, modificando da db tutto bene la stampa corretta avviene, quindi il problema si trova su: nuovabachecapopolo.php, esattamente qui:
<? $MySql = "INSERT Into MessaggioAraldo (Stato) VALUES ('$Tipo')";
mysql_query($MySql); ?></td></tr>
</table>
<br>
<center>
<table width="550" height="446" border=0 align="center" cellpadding=2 cellspacing=0 background="http://www.empireofdarkness.it/newavilion/pergamena1.gif">
<td width="510"><tr>
<form action="bachecapopolo.php" method=Post>
<input type=hidden name=ID value="<?= $IDAraldo ?>">
<input type=hidden name=p value="<?= $p ?>">
<input type=hidden name=IDMsg value="<?= $IDMsg ?>">
<input type=hidden name=IDMsgPadre value="<?= $IDMsgPadre ?>">
<td valign=top><b>
<center>
<p> </p>
<p><br><font color="#000000"><a href="scheda.php?pg=<?= urlencode($Login) ?>"><img src="img/stemmi/<?= $ImgGilda_S ?>" border=0>
<?= htmlspecialchars($Login) ?>
</a> -
<?= htmlspecialchars($DescGilda_S) ?>
</font> </p>
</center></td>
<? if ($IDMsgPadre > 0) { ?>
<? } else { ?>
<tr>
<td height="26" align=left valign=top>
<div align="center"><strong><font color="#000000">Titolo:
</font></strong>
<input type=text size=35 style="background-color: #FFCC99" name=Titolo value="<?= htmlspecialchars($Titolo) ?>">
</div></td>
</tr><? } ?>
<tr>
<td height="167"><div align="center">
<textarea cols=50 rows=10 style="background-color: #FFCC99" name=Messaggio><?= htmlspecialchars($Messaggio) ?>
</textarea>
</div></td>
</tr>
<? if ($Punti == '1') {
$MySql = "SELECT * FROM Punti WHERE IDMessaggioAraldo = '$IDMsg'";
$Result = mysql_query($MySql);
for ($i = 1; $i <= 20; $i++) {
$rs = mysql_fetch_array($Result);
echo '<tr><td>';
echo "<input name=Nome$i value='".$rs['Nome']."'><select name=Esperienza$i>";
for ($j = -10; $j <= 20; $j++) {
echo '<option value=''.($j/2).''';
if (($rs['Esperienza']==($j/2)) || ((''.$rs['Nome']=='') && ($j == 0))) {
echo ' SELECTED';
}
echo '>'.($j/2).'</option>';
}
echo '</select>';
echo '</td></tr>';
}
$rs->close;
} ?>
<tr><center><td>
<div align="center"><font color="#000000">
<input type="radio" name="Tipo" value="1"/>
<strong>Non Firmare
<input type="radio" name="Tipo" value="0" checked="checked"/>
Firma</strong></font></div></td>
</center>
</tr>
<tr>
<td height="115" align=right><div align="center">
<input type=submit value=Inserisci><!-- style={background:#3BC46C;}-->
</div></td>
</form>
ovvero se il Valore di Tipo è 1 La firma non compare e stampa il valore anonimo, mentre se il Tipo è 0 dovrebbe stampare la firma, ma cio' risulta errato, poiche effettivamente in bacheca non cambia nulla.
Dove cavolo spaglio ? 😏
Premetto che se il codice risultera' funzionante come gli altri da me creati, verranno messi tra le pach, piu' o meno utili di GDRCD
Pagine → 1
29/04/2008 18:14:20 e modificato da darkside of breakfast il 29/04/2008 18:14:50
Non so se ti possa servire, ma lì in alto nel file nuovopopolo (o giù di lì) c'è una query che non trovo corretta.
Ovvero per il campo Tipo, poi passi due values:
NOW() (chr restituisce la data e l'ora) e la variabile $tipo.
:)
Se non è questo l'errore mi leggerò meglio tutto il codice
29/04/2008 18:17:43
si avevo notato anche io l'errore, ma non è questo il danno
29/04/2008 18:27:48
boh, sopra richiami il valore Stato dall'array associativo $rs.
Però qui la variabile che passi si chiama Tipo.
Ok, potrebbe non voler dir nulla, ma visto che all'inizio dici che si chiama Tipo il campo nel db...
Ad ogni modo, il codice lato-server è sicuramente funzionante?
29/04/2008 19:05:59
Se io modifico da DB lo Stato, da 0 o 1 sulla bacheca si vede o non si vede la firma, quindi penso che l'errore sia relativo al form su nuovabachecapopolo.php
29/04/2008 19:43:48
Dunque, ho fatto una Nuova prova, perche' mi sembrava una cosa piu' pulita, ma il problema rimane ed io ho mal di testa. 😅
DataBase: Tabella "MessaggioAraldo" - "Campo Stato"
`Stato` char(1) NOT NULL,
nuovabacheca.php
<? };
$rs->close;
if ($op == "modifica") {
$MySql = "SELECT * FROM MessaggioAraldo WHERE IDMessaggio = '$IDMsg' AND IDAraldo = '$IDAraldo'";
if ($Esilio_S != '1') {
$MySql .= " AND Autore = '".pars($Login)."'";
}
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$Titolo = $rs["Titolo"];
$StatoA = $rs["A"];
$StatoB = $rs["B"];
$Messaggio = $rs["Messaggio"];
$rs->close;
}
if ($IDMsgPadre > 0) {
$MySql = "SELECT * FROM MessaggioAraldo WHERE IDMessaggio = '$IDMsgPadre'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$TitoloPadre = $rs["Titolo"];
$StatoPadreA = $rs["A"];
$StatoPadreB = $rs["B"];
$AutorePadre = $rs["Autore"];
$rs->close;
} ?>
</td></tr>
</table>
<br>
<center>
<table width="550" height="446" border=0 align="center" cellpadding=2 cellspacing=0 background="http://www.empireofdarkness.it/newavilion/pergamena1.gif">
<td width="510"><tr>
<form action="bachecapopolo.php" method=Post>
<input type=hidden name=ID value="<?= $IDAraldo ?>">
<input type=hidden name=p value="<?= $p ?>">
<input type=hidden name=IDMsg value="<?= $IDMsg ?>">
<input type=hidden name=IDMsgPadre value="<?= $IDMsgPadre ?>">
<td valign=top><b>
<center>
<p> </p>
<p><br><font color="#000000"><a href="scheda.php?pg=<?= urlencode($Login) ?>"><img src="img/stemmi/<?= $ImgGilda_S ?>" border=0>
<?= htmlspecialchars($Login) ?>
</a> -
<?= htmlspecialchars($DescGilda_S) ?>
</font> </p>
</center></td>
<? if ($IDMsgPadre > 0) { ?>
<? } else { ?>
<tr>
<td height="26" align=left valign=top>
<div align="center"><strong><font color="#000000">Titolo:
</font></strong>
<input type=text size=35 style="background-color: #FFCC99" name=Titolo value="<?= htmlspecialchars($Titolo) ?>">
</div></td>
</tr><? } ?>
<tr>
<td height="167"><div align="center">
<textarea cols=50 rows=10 style="background-color: #FFCC99" name=Messaggio><?= htmlspecialchars($Messaggio) ?>
</textarea>
</div></td>
</tr>
<? if ($Punti == '1') {
$MySql = "SELECT * FROM Punti WHERE IDMessaggioAraldo = '$IDMsg'";
$Result = mysql_query($MySql);
for ($i = 1; $i <= 20; $i++) {
$rs = mysql_fetch_array($Result);
echo '<tr><td>';
echo "<input name=Nome$i value='".$rs['Nome']."'><select name=Esperienza$i>";
for ($j = -10; $j <= 20; $j++) {
echo '<option value=''.($j/2).''';
if (($rs['Esperienza']==($j/2)) || ((''.$rs['Nome']=='') && ($j == 0))) {
echo ' SELECTED';
}
echo '>'.($j/2).'</option>';
}
echo '</select>';
echo '</td></tr>';
}
$rs->close;
} ?>
<tr><center><td>
<div align="center"><font color="#000000">
<input type="radio" name="Stato" value="<?= $A ?>"/>
<strong>Non Firmare
<input type="radio" name="Stato" value="<?= $B ?>" checked="checked"/>
Firma</strong></font></div></td>
</center>
</tr>
<tr>
<td height="115" align=right><div align="center">
<input type=submit value=Inserisci><!-- style={background:#3BC46C;}-->
</div></td>
</form>
bachecapopolo.php (Prima Parte)
#----- nuovo messaggio! -----
$MySql = 'INSERT INTO MessaggioAraldo (IDAraldo, IDMessaggioPadre, Titolo, Stato, Messaggio, Autore, IDGilda, Img, Corporazione, IDRazza, DataMessaggio)';
$MySql .=" VALUES ($IDAraldo,";
$MySql .=" '$IDMsgPadre',";
$MySql .=" '$Titolo',";
$MySql .=" '$Stato',";
$MySql .=" '$Messaggio',";
$MySql .=" '".pars($Login)."',";
$MySql .=" '".pars($IDGilda_S)."',";
$MySql .=" '".pars($ImgGilda_S)."',";
$MySql .=" '".pars($DescGilda_S)."',";
$MySql .=" '".pars($IDRazza_S)."',";
$MySql .=" NOW())";
#echo $MySql;
$Result = mysql_query($MySql);
$MySql = "SELECT * FROM MessaggioAraldo WHERE IDAraldo = '$IDAraldo' ORDER BY IDMessaggio DESC";
$Result = mysql_query($MySql);
$rs1 = mysql_fetch_array($Result);
$IDMsg = $rs1['IDMessaggio'];
$rs1->close;
} else {
#----- correzione messaggio! -----
$MySql = "UPDATE MessaggioAraldo SET ";
$MySql .=" Titolo = '$Titolo',";
$MySql .=" Messaggio = '$Stato'";
$MySql .=" Messaggio = '$Messaggio'";
$MySql .=" WHERE IDAraldo = '$IDAraldo'";
$MySql .=" AND IDMessaggio = '$IDMsg'";
if ($Esilio_S != '1') {
$MySql .=" AND Autore = '".pars($Login)."'";
}
#echo $MySql;
$Result = mysql_query($MySql);
bachecapopolo.php (seconda parte)
<?
$Messaggio = trim($rs["Messaggio"]);
if (strlen($Messaggio) > 0) {
$Iniziale = (substr($Messaggio, 0, 1));
$Messaggio = (substr($Messaggio, 1));
$Messaggio = str_replace("
", "<br>", $Messaggio);
}
?>
<font style={font-size:30px;}>
<?= $Iniziale ?></font><?= $Messaggio ?>
</font></em><br><br><div align="center"><? if ($rs["Stato"] == 'B') { ?><font color="#000000"><strong><em><?= htmlspecialchars($rs["Autore"]) ?></em></strong></font></div><br><div align="center"><img src="img/stemmi/<?= $rs["Img"] ?>" border=0 width="18" height="18"> <font color="#000000"><strong><em><?= htmlspecialchars($rs["Corporazione"]) ?></em></strong></font></div><? } else { ?><font color="#000000"><strong><br><center>Anonimo</center></strong></font> <? } ?>
Sicuramente piu' ordinato, ma il problema persiste 😏
29/04/2008 20:04:18
Ti chiedo scusa ma non ho voglia di leggere il codice, sono appena tornato dalla palestra. Comunque prova a stampare la variabile $Tipo. Magari è un problema di passaggio della variabile. Più tardi mi leggo il codice e ti dico.
29/04/2008 23:55:29
Sistemato, anche con aiuti esterni molto "Sexy" fatto sta che ho risolto, e vi ringrazio scusandomi per il disturbo :-)
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
War Thunder ↗
Imperion ↗
AlterEgo ↗
World of Tanks ↗
World of the Sea Battle ↗
Sea of Conquest ↗
Foundation Galactic Frontier ↗