php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.03.2010, 20:15  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 35
Schmuse befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Irrtümlich ausgeführter ELSE

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 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'], 82), (substr($logit['datum'], 102)+5), substr($logit['datum'], 122), substr($logit['datum'], 42), substr($logit['datum'], 62), substr($logit['datum'], 04)));
  
$logit['datum'] = date('YmdHis'mktime(substr($logit['datum'], 82), (substr($logit['datum'], 102)+5), substr($logit['datum'], 122), substr($logit['datum'], 42), substr($logit['datum'], 62), substr($logit['datum'], 04)));
 }
 
$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
Schmuse ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.03.2010, 20:18  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 35
Schmuse befindet sich auf einem aufstrebenden Ast
Standard

Achja - die SID ist bei meinen Versuchen 670 oder ... also definitiv > 0. Außerdem habe ich die $sid mit echo VOR den unteren ifs ausgegeben um zu überprüfen, ob sie nicht irgendwo gelöscht wurde
Schmuse ist offline  
Alt 13.03.2010, 20:50  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hast du mal dein error_reporting hochgeschraubt?

Eventuell sind die geschweiften Klammern falsch gesetzt, das solltest du mal ueberpruefen. Btw. kann es nicht schaden, saemtliche Klammern auch zu setzen.
PHP-Code:
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
 { 
in

PHP-Code:
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 {
  
// ...

aendern und so weiter.
Asipak ist offline  
Alt 13.03.2010, 22:11  
Benutzer
 
Registriert seit: 13.10.2008
Beiträge: 35
Schmuse befindet sich auf einem aufstrebenden Ast
Standard

achherje ich habe meinen Fehler gefunden.
Das ganze wurde in meinem Framework eingebettet und das wird in einem iframe nochmal aufgerufen -> sid ist dabei 0.

Danke, die errors haben mit geholfen das rauszufinden.
Schmuse ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
http_class verwenden hans213 PHP Tipps 2009 27 15.01.2010 03:07
Login-Script in Ordnung? Silent PHP Tipps 2009 73 26.11.2009 01:02
JS-Kalender funktioniert nicht im IE8 ToxicToast JavaScript, Ajax und mehr 4 18.11.2009 16:26
variable mit onclick an php drombusch PHP Tipps 2009 8 30.08.2009 14:45
Vorlagen Manko10 Wiki Diskussionsforum 22 08.10.2008 15:15
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
Problem und Frage zu Listenfeldauswertung .... bp158 PHP Tipps 2006 2 10.07.2006 22:37
Fehler: 2mal else hintereinander thokon89 PHP Tipps 2006 4 03.07.2006 02:23
Große probleme mit PHP PHP Tipps 2005-2 55 29.10.2005 22:25
IF ELSEIF ELSEIF ELSE mit While Schleife PHP Tipps 2005 9 04.03.2005 23:27
If/ else if/ else bedingung richtig trotzdem falsch?!? seejay PHP Tipps 2005 8 09.02.2005 12:59
if else im else von if else *~* PHP Tipps 2004 3 20.09.2004 20:47
[Erledigt] kompilierte C datei über Apache aufrufen! Server, Hosting und Workstations 6 02.09.2004 23:49
probleme mit if und else PHP Tipps 2004 3 19.08.2004 02:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php \im else block\, php zwei else

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum