Hallo Leute,
ich habe folgendes Problem:
Obwohl meine IF-Anweisung TRUE ist - und auch der gesamte IF-Block ausgeführt wird, wird der DELETE im else Block AUCH ausgeführt.
Es geht dort um den Ausschnitt eines Rätselprogramms.
Die Benutzer springen auf der Seite umher und wenn sie auf eine $sid ($_REQUEST['sid']) stoßen und noch Rätsel offen sind, soll ein Countdown von 5 Minuten erscheinen.
Um beim nächsten Klick zu überprüfen, ob die Zeit abgelaufen ist, wird ein Log mit UID, SID und Datum (YYYYMMDDHHMMSS) gespeichert.
Beim Wechsel der sid wird das Log geändert und wieder bei 5 mins angefangen.
PHP-Code:
if ($uebrig > 0 AND $sid)
{
/***********************************************************************/
/* Wenn kein Log existiert, einschreiben */
/***********************************************************************/
$logit = dbassoc(dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_osterlogs WHERE uid=".USERUID));
if (!$logit)
dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_osterlogs (uid, sid, datum) VALUES (".USERUID.", ".$sid.", '".date("YmdHis")."')");
elseif ($logit['sid'] != $sid)
dbquery("UPDATE ".TABLEPREFIX."fanfiction_osterlogs SET sid = ".$sid.", datum = '".date("YmdHis")."' WHERE uid = ".USERUID);
else
{
$javalog = date('m/d/Y H:i:s', mktime(substr($logit['datum'], 8, 2), (substr($logit['datum'], 10, 2)+5), substr($logit['datum'], 12, 2), substr($logit['datum'], 4, 2), substr($logit['datum'], 6, 2), substr($logit['datum'], 0, 4)));
$logit['datum'] = date('YmdHis', mktime(substr($logit['datum'], 8, 2), (substr($logit['datum'], 10, 2)+5), substr($logit['datum'], 12, 2), substr($logit['datum'], 4, 2), substr($logit['datum'], 6, 2), substr($logit['datum'], 0, 4)));
}
$content .= '<span id="easterdown"></span>
<script language="JavaScript" type="text/javascript">
TDate = "'.($javalog ? $javalog : date('m/d/Y H:i:s', mktime(date('H'), (date('i')+5), date('s'), date('m'), date('d'), date('Y')))).'";
function EasterBack()
{
var dateTarget = new Date(TDate);
var dateNow = new Date();
var dateDiff = new Date(dateTarget - dateNow);
secs = Math.floor(dateDiff.valueOf()/1000);
if (secs > 0)
{
days = Math.floor(secs / (60 * 60 * 24));
secs %= (60 * 60 * 24);
hours = Math.floor(secs / (60 * 60));
secs %= (60 * 60);
minutes = Math.floor(secs / 60);
secs %= 60;
seconds = secs;
DisplayStr = "{minutes} : {seconds}";
DisplayStr = DisplayStr.replace(/{minutes}/g, minutes);
DisplayStr = DisplayStr.replace(/{seconds}/g, seconds);
document.getElementById("easterdown").innerHTML = DisplayStr;
setTimeout("EasterBack()", 1000);
}
else
{
document.getElementById("easterdown").innerHTML = "';
$rae = dbassoc(dbquery("SELECT os.*, of.uid FROM ".TABLEPREFIX."fanfiction_osterstory os LEFT JOIN ".TABLEPREFIX."fanfiction_osterstoryfound of ON os.year = of.year AND os.day = of.day WHERE os.year = ".date('Y')." AND os.day <= $today AND sid = ".$sid." ORDER BY os.day"));
if (!$rae OR $rae['uid'])
$content .= "<b>"._MISS."</b><br><img src=blocks/countdown/bxbostern/niete.png>";
else
$content .= "<b>"._GRATZ."</b><br><img src=blocks/countdown/bxbostern/".(file_exists("blocks/countdown/bxbostern/".date('Y')."egg".$rae['day']."gr.png") ? date('Y')."egg".$rae['day']."gr.png" : "egg".$rae['day']."gr.png").">";
$content .= '";
}
}
EasterBack();
</script>
';
}
else
{
dbquery("DELETE FROM ".TABLEPREFIX."fanfiction_osterlogs WHERE uid = ".USERUID);
}
if habe es auch schon mit
PHP-Code:
if (!$sid)
{
dbquery("DELETE FROM ".TABLEPREFIX."fanfiction_osterlogs WHERE uid = ".USERUID);
}
ODER
PHP-Code:
if ($sid > 0)
{
dbquery("DELETE FROM ".TABLEPREFIX."fanfiction_osterlogs WHERE uid = ".USERUID);
}
Und auch eine echo Ausgabe in den Block eingebaut - Ergebnis:
Der echo wird NICHT ausgegeben, aber der Delete ausgeführt - kommentiere ich den Befehl aus, funktioniert mein Programm - bis auf, daß das Log gelöscht wird.
Ich bin echt RATLOS.
Ich hoffe ihr könnt mir bei diesem Phänomen helfen. Achja - verschieben (weiter nach unten (oder auch nach oben)) funktioniert auch nicht - hab die Zeilen auch schon gelöscht und nochmal neu programmiert - tipfehler - nix nix nix.
mfg schmuse