problema refresh lista2
problema refresh lista2 postato il 10/10/2008 16:06:25 nel forum programmazione, open source e hosting
Premessa: la solita dell'altra volta XD Sono un autodidatta e sto cercando di creare una land il più possibile da solo, prendendo tutti gli aiuti possibili che trovo^^
quello che segue è il codice della mia pagina lista2.php, ovviamente GdrCD e ovviamente non troppo modificata, ancora [ in quanto vorrei modificarel e tabelle e farle a modo mio, ma in seguito alla risoluzione di questo problema]
Problema: come si intuisce dal titolo, ho un problema che evidentemente già altre persone hanno riscontrato e messo in chiaro su altri topic, ma al quale io non ho trovato soluzione. Ho trovato nel forum un topic riguardante questo stesso problema in cui Lestat parla dell'esistenza di un altro topic che conterrebbe la soluzione, ma non avendolo trovato, ripropongo ora il problema chiedendo il vostro aiuto.
In pratica, se un pg rimane intattivo per un certo tempo, scompare dalla lista, pur rimanendo collegato al gioco. Se poi si rende attivo, magicamente ricompare nella lista.
Ho letto che bisogna inserire in codice di refresh nell'head della pagina e ho provato come troverete sotto, ma al 1000000% ho sbagliato XD
qualcuno può dirmi dove ho sbagliato?
Grazie in anticipo^^
<? session_start();
include ("inc/parametri.inc.php");
include ("inc/controllo.php");
include ("inc/open2.php");
include ('inc/header.html.inc.php');
?>
<head><meta http-equiv="refresh" content="5;url="/></head>
<?
// codice da inserire nella parte alta della pagina ll'interno dell'head
if(isset($_POST['op']) && $_POST['op'] == 'Disponibile'){
$Dispo = $_POST['Disponibile'];
$MySql = "UPDATE Personaggio SET Dispo = '$Dispo' WHERE Nome = '".pars($Login)."'";
mysql_query($MySql) or die(mysql_error());
}
?>
<title>Lista Personaggi</title>
<body>
<?
$cont = 0;
if ($_GET['Mod'] == '1') {
$Cond = " RIGHT JOIN Gilda ON Gilda.IDGilda = Presenti.IDGilda AND (Gilda.Prigione=1 OR Gilda.Esilio=1) ";
$TitoloPresenti = Moderatori;
} elseif ($_GET['Mod'] == '2') {
$Cond = " RIGHT JOIN Gilda ON Gilda.IDGilda = Presenti.IDGilda AND Presenti.Master=1 ";
$TitoloPresenti = Master;
} elseif ($_GET['Mod'] == '3') {
$Cond = " RIGHT JOIN Gilda ON Gilda.IDGilda = Presenti.IDGilda AND (Presenti.IDGilda >= $IDGilda_S - ".($IDGilda_S % 100).") AND (Presenti.IDGilda < 100 + $IDGilda_S - ".($IDGilda_S % 100).") ";
$TitoloPresenti = Corporati;
} elseif ($_GET['Mod'] == '4') {
$Cond = " RIGHT JOIN Gilda ON Gilda.IDGilda = Presenti.IDGilda AND (IDRazza >= $IDRazza_S - ".($IDRazza_S % 10).") AND (IDRazza < 10 + $IDRazza_S - ".($IDRazza_S % 10).") AND ((IDRazza % 1000) != '0') ";
$TitoloPresenti = Fratelli;
} else {
$Cond = "";
$TitoloPresenti = "personaggi";
}
$MySql = "SELECT count(Nome) AS Numero FROM Presenti $Cond WHERE OraUscita = '2037-12-31 00:00:00'";
echo "<!--$MySql-->";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$cont = $rs["Numero"];
$rs->close;
mysql_free_result($Result); ?>
<center><font class=titolo>Elenco: <?= $cont ?> <?= htmlspecialchars($TitoloPresenti) ?> presenti<br><br>
<div align=left><table width="100%" border=0 cellpadding=1 cellspacing=0>
<?
$MySql = "SELECT Presenti.* From Presenti $Cond WHERE OraUscita = '2037-12-31 00:00:00' ORDER BY Is_Invisibile, StanzaApparente, Nome";
$Result = mysql_query($MySql);
$OldNomeLuogo = "";
while ($rs = mysql_fetch_array($Result)) {
$Stanza1 = 0 + $rs["StanzaApparente"];
if (($Stanza1 > 0) && ($Stanza1 != "")) {
if ($rs['Is_Invisibile'] == 1) {
$NomeLuogo = "Invisibile";
} else {
$MySql = "SELECT Breve FROM Mappa WHERE ID = ".$Stanza1;
$Result1 = mysql_query($MySql);
if ($rsA = mysql_fetch_array($Result1)) {
$NomeLuogo = $rsA["Breve"];
} else {
$NomeLuogo = "";
}
$rsA->close;
mysql_free_result($Result1);
}
};
$pg = trim($rs["Nome"]);
$queryM = "SELECT Dispo FROM Personaggio WHERE Nome = '$pg'";
$Pap = mysql_query($queryM);
$p = mysql_fetch_array($Pap);
$Dispo = 0 + $p['Dispo'];
# If (strstr($rs["Stanza"], "albergo") !== false) {$NomeLuogo = "Albergo";};
If ($rs["Stanza"]."" == "") {$NomeLuogo = "In Giro";};
if ($rs['Is_Disponibile'] == 1) {
$DISP = "Non Disponibile";
} else {
$DISP = "Disponibile";
};
if ($NomeLuogo != $OldNomeLuogo) {
echo "</table><table width="100%" border=0 cellpadding=1 cellspacing=0>";
echo "<tr><td width=200 valign=top><b><font color=#663300><a href='main.php?Dir=".$Stanza1."' target='_top'>".htmlspecialchars($NomeLuogo)."</a></font></b></td>";
} else {
echo "<tr><td width=200></td>";
};
$OldNomeLuogo = $NomeLuogo;
$Img = trim($rs["ImgGilda"]);
if ($Img == "") {$Img = "spacer.gif";};
echo "<td align=left>";
echo "<a href='scheda.php?pg=".urlencode($pg)."' target='palestra'>";
echo "<img border=0 src="img/razze/".strtolower($rs["Sesso"])."".strtolower($rs["IDRazza"]).".png"> ";
echo "<img border=0 src="img/stemmi/".$Img.""> ";
echo htmlspecialchars($pg);
echo "</a>";
if ($rs['Is_Disponibile'] == 1) {
echo" <img border=0 src="img/disponibile.png" title="Disponibile a giocare"></td>";
};
echo "</tr>
";
}
$rs->close;
mysql_free_result($Result);
?></table></div><br><br>
<table border=0 width="100%">
<tr>
<td align=center valign=top width="15%"><a href="lista2.php?Mod=1" target=palestra> :: Moderatori :: </a></td>
<td align=center valign=top width="15%"><a href="lista2.php?Mod=2" target=palestra> :: Master :: </a></td>
<td align=center valign=top width="15%"><a href="lista2.php?Mod=3" target=palestra> :: Gilda :: </a></td>
<td align=center valign=top width="15%"><a href="lista2.php?Mod=4" target=palestra> :: Razza :: </a></td>
</tr>
</table>
</body>
</html>
Pagine → 1
10/10/2008 16:40:27
non ho capito bene qual'è il problema...
10/10/2008 17:25:24
Il Controllo avviene in cambiastanza.php
assicurati che i paramentri siano settati bene, esempio:
<?
if (!isset($cambiastanzainc)) {
function cambiastanza($stf, $pgf) {
$stf = 0 + $stf;
if ($stf == 0) {
$stf=1;
};
if ($pgf != '') {#($HTTP_SESSION_VARS['Login'] == $pgf) and ($pgf != ''))
$_SESSION['Stanza'] = $stf;
$stApparente = $stf;
$MySql = "SELECT StanzaApparente FROM Mappa WHERE ID = $stf";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if (mysql_num_rows($Result) != 1) {
$stApparente = $rs["StanzaApparente"];
}
$rs->close;
mysql_free_result($Result);
$MySql = "SELECT * FROM Presenti WHERE Nome = '".pars($pgf)."'";
$Result = mysql_query($MySql);
if (mysql_num_rows($Result) == 0) {
$MySql = "INSERT INTO Presenti (Nome, Stanza, StanzaApparente, OraEntrata, OraUscita, UltimoRefresh)";
$MySql .= " VALUES ('".pars($pgf)."', $stf, $stApparente, NOW(), '2037-12-31 00:00:00', NOW())";
mysql_query($MySql);
} else {
$MySql = "UPDATE Presenti SET Stanza = $stf, StanzaApparente = $stApparente, UltimoRefresh = NOW(), OraUscita = '2037-12-31 00:00:00' WHERE Nome = '".pars($pgf)."'";
mysql_query($MySql);
};
};
$MySql = "UPDATE Presenti";
$MySql .= " SET OraUscita = NOW(), Stanza=0, StanzaApparente=0";
$MySql .= " WHERE DATE_ADD(UltimoRefresh, INTERVAL 6 MINUTE) < NOW()";
$MySql .= " AND OraUscita = '2037-12-31 00:00:00'";
mysql_query($MySql);
$MySql="DELETE From Presenti";
$MySql .= " WHERE (DATE_ADD(OraUscita, INTERVAL 12 MINUTE) < NOW()";
$MySql .= " AND NOT(OraUscita = '2037-12-31 00:00:00')";
$MySql .= ") OR Nome = ''";
mysql_query($MySql);
};
} ?>
10/10/2008 20:23:02
lestat è tutto come mi hai scritto tu !
e il problema persiste
e non ditemi di consultare il medico per favore XD
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!
RAID Shadow Legends ↗
Foundation Galactic Frontier ↗
Exclusive Villa GdR ↗
State of Survival ↗