[programmazione-pannello mod]Esilio-Arresto
[programmazione-pannello mod]Esilio-Arresto postato il 08/07/2008 12:45:36 nel forum programmazione, open source e hosting e modificato da kilua il 08/07/2008 13:07:15
Salve a tutti spero che qualche grande programmatore mi risolva questo problema al mio gdr quasi pronto....
Spiegazione
Allora praticamenti nel pannello mod nelle scheda compare esilia arresta blocco ip...etc...ecco a me non funge questo pannello cioè non mi funge ne l'arresto ne l'esilio.. ....premetto che sono un programmatore ...chi vuole informazioni sul gdr mi contatti privatamente...
Ambientazione:Kindom Hearts
Code pannello
<?
if ($rs["Esilio"] == '2037-12-31 00:00:00') {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr bgcolor=red><td colspan=5><font color=white>Cacciato il '.formattadata($rs['DataEventoEsilio']).' per sempre da Kingdom Hearts Memories.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
} elseif ($rs["Esilio"] > date("Y-m-d H:i:s")) {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr class=tTitolo><td colspan=5><font class=Warning>Imprigionato il '.formattadata($rs['DataEventoEsilio']).'.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
}
#----- Strumenti di Esilio o Prigione -----
if ($_SESSION['Esilio_S']) {
echo '<form onSubmit="return Conferma();" action="scheda.php" method=Post><tr><td colspan=5>Motivo Esilio <input name="Motivo_Esilio" size=40 maxlength=255> <input Name="Esilia" type=submit value="Esilia" style={color:white;background:red}> <input type=checkbox Name=IP style={background:red}> blocco IP <input Name="Grazia" type=checkbox style={background:green}> Grazia</td></tr><input type=hidden Name=pg value="'.$pg.'"></form></td></tr>';
echo '<form onSubmit="return Conferma();" action="scheda.php" method=Post><tr><td colspan=5>Pulisci Avatar <input Name="pg" type=hidden value="'.$pg.'"><input Name="Pulisci" type=submit value="Pulisci" style={color:black;background:white}></form>';
}
if ($_SESSION['Prigione_S']) {
echo '<form onSubmit="return Conferma();" action="scheda.php" method=Post><tr><td colspan=5>Motivo Arresto <input name="Motivo_Arresto" size=40 maxlength=255> <input Name="Arresta" type=submit value="Arresta" style={background:yellow}> per giorni <select Name=gg><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option></select></td></tr><input type=hidden Name=pg value="'.$pg.'"></form>';
}
if (($_SESSION['Admin_S']=='1') AND ($_SESSION['AdminExt_S']=='1') AND ($par_Flag_AdminExt=='1')) {
echo BottoneGestione('Chiudi Gestione Estesa', '', 'scheda.php?AdminExt=0&pg='.urlencode($pg));
#----- Controlla gli ultimi 10 IP di entrata
echo BottoneGestione('Log Entrate', '', 'gstLogEntrate.php?Nome='.urlencode($pg));
echo '<tr class=tScuro><td colspan=5>';
$MySql = 'SELECT IP FROM LogEntrate WHERE Nome = ''.addslashes($pg).'' ORDER BY DataEvento DESC LIMIT 0,10';
$Result1 = mysql_query($MySql);
while ($rs1 = mysql_fetch_array($Result1)) {
echo '<a href="gstLogEntrate.php?IP='.$rs1['IP'].'">'.$rs1['IP'].'</a><br>';
}
mysql_free_result($Result1);
$rs1->close;
echo '</td></tr>';
#----- Controlla gli ultimi 10 messaggi di chat -----
echo '<tr class=tScuro><td colspan=5>';
$MySql = 'SELECT Chat.*, Mappa.Breve FROM Chat LEFT JOIN Mappa ON Chat.Stanza=Mappa.ID WHERE Mittente=''.addslashes($pg).'' ORDER BY ID DESC LIMIT 0,10';
$Result1 = mysql_query($MySql);
while ($rs1 = mysql_fetch_array($Result1)) {
echo '<b>'.strftime("%H:%M", strtotime($rs1['Ora'])).' '.htmlspecialchars($rs1['Breve']).' ['.$rs1['Tipo'].'] ['.htmlspecialchars($rs1['Mittente']);
if ($rs1['Destinatario'] != '') {
echo '>><a href="scheda.php?pg='.urlencode($rs1['Destinatario']).'">'.htmlspecialchars($rs1['Destinatario']).'</a>';
}
echo ']</b><br>'.$rs1['Testo'].'<br>';
}
mysql_free_result($Result1);
$rs1->close;
echo '</td></tr>';
#----- Controlla le ultime 10 missive -----
echo '<tr class=tScuro><td colspan=5>';
$MySql = 'SELECT * FROM Messaggi WHERE Mittente=''.addslashes($pg).'' ORDER BY ID DESC LIMIT 0,10';
$Result1 = mysql_query($MySql);
while ($rs1 = mysql_fetch_array($Result1)) {
echo '</b></i><b>'.strftime("%d/%m/%Y %H:%M", strtotime($rs1['Spedito'])).' ['.htmlspecialchars($rs1['Mittente']).'>><a href="scheda.php?pg='.urlencode($rs1['Destinatario']).'">'.htmlspecialchars($rs1['Destinatario']).']</a></b><br>';
echo str_replace("
", "<br>", substr($rs1['Testo'],0,200)).'<hr>';
}
mysql_free_result($Result1);
$rs1->close;
echo '</td></tr>';
}
if (($_SESSION['Admin_S']=='1') AND ($_SESSION['AdminExt_S']!='1') AND ($par_Flag_AdminExt=='1')) {
echo BottoneGestione('Apri Gestione Estesa', '', 'scheda.php?AdminExt=1&pg='.urlencode($pg));
}
?>
</table>
<? $rs->close; ?>
<script language="JavaScript">
function Conferma(){
if (confirm('Sei sicuro?'))
return true;
else
return false;
}
</script>
</body>
Grazie per l'attenzione
p.s.Se mi aiutate ne serei molto grato
Pagine → 1
08/07/2008 13:25:38
<?
if ($rs["Esilio"] == '2037-12-31 00:00:00') {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr bgcolor=red><td colspan=5><font color=white>Cacciato il '.formattadata($rs['DataEventoEsilio']).' per sempre da Kingdom Hearts Memories.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
} elseif ($rs["Esilio"] > date("Y-m-d H:i:s")) {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr class=tTitolo><td colspan=5><font class=Warning>Imprigionato il '.formattadata($rs['DataEventoEsilio']).'.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
}
I due errori evidenziati in grassetto..else ed if dovrebbero essere staccati poi non capisco serva il waring.
08/07/2008 13:29:24
cicciokr ha scritto: ti da qualche errore in particolare??
perchè il codice mi smebra corretto...
cmq non serviva che lo riportassi tutto.. bastava il pezzo dell'esilio.. xd
Non mi da errore solo che non mi arresta e non mi esilia...in generale quando un arresta o esilia sotto la scheda dovrebbe comparire arrestato segnte motivo etc oppure esiliato ..etc ..non compare indi non arresta ne esilia..
08/07/2008 13:29:46
kamato ha scritto:
<?
if ($rs["Esilio"] == '2037-12-31 00:00:00') {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr bgcolor=red><td colspan=5><font color=white>Cacciato il '.formattadata($rs['DataEventoEsilio']).' per sempre da Kingdom Hearts Memories.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
} elseif ($rs["Esilio"] > date("Y-m-d H:i:s")) {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr class=tTitolo><td colspan=5><font class=Warning>Imprigionato il '.formattadata($rs['DataEventoEsilio']).'.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
}
I due errori evidenziati in grassetto..else ed if dovrebbero essere staccati poi non capisco serva il waring.
Ok grazie provo
08/07/2008 13:31:41
Mi sembra di vedere che manca tutta la parte della pagina che riceve i dati dai form ed esegue la procedura dell'esilio.
Non so che versione del gdrcd tu stia usando ma il codice dovrebbe essere simile a questo: (posto la versione dell'extreme)
#----- inizio prigione ed esilio -----
$EsilioP = "";
If ((($_SESSION['Super_S'] == 1)||($_SESSION['Admin_S'] == 1)) && ($_POST['Esilia'] != '')) {
$Motivo = $_POST['Motivo_Esilio'];
$EsilioP = "'2037-12-31 00:00:00'";
if ($_POST['IP'] == 'on') {
$Msg = "<b>".htmlspecialchars($pg)." è stato esiliato + IP escluso!</b>";
$MySql = "SELECT * FROM LogEntrate WHERE Nome = '$pg' ORDER BY DataEvento DESC";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$IPEscluso = $rs["IP"];
$rs->close;
$MySql = "INSERT INTO BlackList (IP, Nota, Ora) VALUES ";
$MySql .= "('$IPEscluso', '$pg (escluso da $Login)', Now())";
$Result = mysql_query($MySql);
} else {
$Msg = "<b>".htmlspecialchars($pg)." è stato esiliato!</b>";
}
if ($_POST['Grazia'] == 'on') {
$EsilioP = "'2000-01-01 00:00:00'";
$Msg = "<b>".htmlspecialchars($pg)." è stato graziato!</b>";
}
}
If ((($_SESSION['Super_S'] == 1)||($_SESSION['Admin_S'] == 1)||($_SESSION['Master'] != 0)) && ($_POST['Arresta'] != '')) {
$Motivo = $_POST['Motivo_Arresto'];
$MySql = "SELECT Esilio From Personaggio WHERE Nome = '$pg'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if ($rs["Esilio"] == '2037-12-31 00:00:00') {
$Msg = "<b>".htmlspecialchars($pg)." è esiliato e non può essere imprigionato!</b>";
$MySql = "INSERT INTO Chat (Stanza, Mittente, Destinatario, Ora, Testo, Sesso, ImgGilda, DescGilda, ImgRazza, DescRazza, Tipo)";
$MySql .= "VALUES ('$Stanza', 'System Op', '$Login', NOW(), '$Msg', '$Sesso_S', '$ImgGilda_S', '$DescGilda_S', '$ImgRazza_S', '$DescRazza_S', 'S')";
$Result = mysql_query($MySql);
$EsilioP = "";
echo "<font color=red>$msg</font>";
} else {
$EsilioP = "DATE_ADD(NOW(), INTERVAL '$gg' DAY)";
$Msg = "<b>".htmlspecialchars($pg)." è stato imprigionato per $gg giorni!</b>";
}
}
if ($EsilioP != "") {
$MySql = "UPDATE Personaggio SET Esilio = $EsilioP";
$MySql .= ", DataEventoEsilio = NOW()";
$MySql .= ", Motivo = '$Motivo'";
$MySql .= ", AutoreEsilio = '$Login'";
$MySql .= " WHERE Nome = '$pg'";
echo $MySql;
$Result = mysql_query($MySql);
$MySql = "INSERT INTO Chat (Stanza, Mittente, Destinatario, Ora, Testo, Sesso, ImgGilda, DescGilda, ImgRazza, DescRazza, Tipo)";
$MySql .= "VALUES ('$Stanza', 'System Op', '$Login', NOW(), '$Msg', '$Sesso_S', '$ImgGilda_S', '$DescGilda_S', '$ImgRazza_S', '$DescRazza_S', 'S')";
$Result = mysql_query($MySql);
echo "<font color=red>$Msg</font>";
}
Il mio consiglio per procedere è questo: Metti un echo $MySql; nel punto dove te lo ho scritto e prova ad esiliare un pg (senza blocco IP) e controlla se la pagina ti restituisce il testo della query.
Se non te lo restituisce vuol dire che il problema sta a monte e ossia nel controllo dei permessi di prigione ed esilio.
Se invece ti restituisce il testo controlla la query copiando il codice e provando ad eseguire la query da dentro il phpmyadmin in maniera da vedere meglio se c'è qualche errore nella query magari dovuto al mancato passaggio di qualche variabile
08/07/2008 13:35:15
kamato ha scritto:
<?
if ($rs["Esilio"] == '2037-12-31 00:00:00') {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr bgcolor=red><td colspan=5><font color=white>Cacciato il '.formattadata($rs['DataEventoEsilio']).' per sempre da Kingdom Hearts Memories.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
} elseif ($rs["Esilio"] > date("Y-m-d H:i:s")) {
#gmdate("d M Y H:i:s", mktime (0,0,0,12,31,9999))) {
echo '<tr class=tTitolo><td colspan=5><font class=Warning>Imprigionato il '.formattadata($rs['DataEventoEsilio']).'.<br>Motivazione: '.htmlspecialchars($rs["Motivo"]).' ('.htmlspecialchars($rs["AutoreEsilio"]).')</font></td></tr>';
}
I due errori evidenziati in grassetto..else ed if dovrebbero essere staccati poi non capisco serva il waring.
Sull'else if hai ragione e deve essere staccato. Ma quel Warning è semplicemente la classe css.
08/07/2008 13:36:13 e modificato da kilua il 23/07/2008 22:32:41
dyrr ha scritto: Mi sembra di vedere che manca tutta la parte della pagina che riceve i dati dai form ed esegue la procedura dell'esilio.
Non so che versione del gdrcd tu stia usando ma il codice dovrebbe essere simile a questo: (posto la versione dell'extreme)
#----- inizio prigione ed esilio -----
$EsilioP = "";
If ((($_SESSION['Super_S'] == 1)||($_SESSION['Admin_S'] == 1)) && ($_POST['Esilia'] != '')) {
$Motivo = $_POST['Motivo_Esilio'];
$EsilioP = "'2037-12-31 00:00:00'";
if ($_POST['IP'] == 'on') {
$Msg = "<b>".htmlspecialchars($pg)." è stato esiliato + IP escluso!</b>";
$MySql = "SELECT * FROM LogEntrate WHERE Nome = '$pg' ORDER BY DataEvento DESC";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$IPEscluso = $rs["IP"];
$rs->close;
$MySql = "INSERT INTO BlackList (IP, Nota, Ora) VALUES ";
$MySql .= "('$IPEscluso', '$pg (escluso da $Login)', Now())";
$Result = mysql_query($MySql);
} else {
$Msg = "<b>".htmlspecialchars($pg)." è stato esiliato!</b>";
}
if ($_POST['Grazia'] == 'on') {
$EsilioP = "'2000-01-01 00:00:00'";
$Msg = "<b>".htmlspecialchars($pg)." è stato graziato!</b>";
}
}
If ((($_SESSION['Super_S'] == 1)||($_SESSION['Admin_S'] == 1)||($_SESSION['Master'] != 0)) && ($_POST['Arresta'] != '')) {
$Motivo = $_POST['Motivo_Arresto'];
$MySql = "SELECT Esilio From Personaggio WHERE Nome = '$pg'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if ($rs["Esilio"] == '2037-12-31 00:00:00') {
$Msg = "<b>".htmlspecialchars($pg)." è esiliato e non può essere imprigionato!</b>";
$MySql = "INSERT INTO Chat (Stanza, Mittente, Destinatario, Ora, Testo, Sesso, ImgGilda, DescGilda, ImgRazza, DescRazza, Tipo)";
$MySql .= "VALUES ('$Stanza', 'System Op', '$Login', NOW(), '$Msg', '$Sesso_S', '$ImgGilda_S', '$DescGilda_S', '$ImgRazza_S', '$DescRazza_S', 'S')";
$Result = mysql_query($MySql);
$EsilioP = "";
echo "<font color=red>$msg</font>";
} else {
$EsilioP = "DATE_ADD(NOW(), INTERVAL '$gg' DAY)";
$Msg = "<b>".htmlspecialchars($pg)." è stato imprigionato per $gg giorni!</b>";
}
}
if ($EsilioP != "") {
$MySql = "UPDATE Personaggio SET Esilio = $EsilioP";
$MySql .= ", DataEventoEsilio = NOW()";
$MySql .= ", Motivo = '$Motivo'";
$MySql .= ", AutoreEsilio = '$Login'";
$MySql .= " WHERE Nome = '$pg'";
echo $MySql;
$Result = mysql_query($MySql);
$MySql = "INSERT INTO Chat (Stanza, Mittente, Destinatario, Ora, Testo, Sesso, ImgGilda, DescGilda, ImgRazza, DescRazza, Tipo)";
$MySql .= "VALUES ('$Stanza', 'System Op', '$Login', NOW(), '$Msg', '$Sesso_S', '$ImgGilda_S', '$DescGilda_S', '$ImgRazza_S', '$DescRazza_S', 'S')";
$Result = mysql_query($MySql);
echo "<font color=red>$Msg</font>";
}
Il mio consiglio per procedere è questo: Metti un echo $MySql; nel punto dove te lo ho scritto e prova ad esiliare un pg (senza blocco IP) e controlla se la pagina ti restituisce il testo della query.
Se non te lo restituisce vuol dire che il problema sta a monte e ossia nel controllo dei permessi di prigione ed esilio.
Se invece ti restituisce il testo controlla la query copiando il codice e provando ad eseguire la query da dentro il phpmyadmin in maniera da vedere meglio se c'è qualche errore nella query magari dovuto al mancato passaggio di qualche variabile
Perfetto grazie provo
edit:RISOLTO
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Sea of Conquest ↗
Hero Wars ↗
Tiles Survive ↗
Enlisted ↗
CRSED: F.O.A.D. ↗