Wo ist der Fehler?

Eiskaffe

Mitglied
Hallo Damen und Herren,

wo ist der Fehler?:

PHP:
Diese Datei wurde includet, habs nur dazu gepostet damit Ihr so ne Ahnung habt wie ich was gemacht habe.
///////////////////////////////////////////////////////////////////////////
function sitzungsPruefung($benutzer_id)
{
	$sql = "SELECT
				*
			FROM
				global_benutzer
			WHERE
				id = '" . $benutzer_id . "'";
				
	$query = mysql_query($sql);
	
	$result = mysql_fetch_assoc($query);
	
	return $result;
}
///////////////////////////////////////////////////////////////////////////

$sitzungsPruefung = sitzungsPruefung($_SESSION['benutzer_id']);
$aktuelleAccountDbZeit = $sitzungsPruefung['sitzungs_zeit'];

$uhrzeit = time() - 900;
$aktuelleZeit = date('Y-m-d H:i:s', $uhrzeit);

if($aktuelleAccountDbZeit >= $aktuelleZeit)
{
      echo 'test1';
}

if($aktuelleAccountDbZeit < $aktuelleZeit)
{
      echo 'test2';
}

Wieso wird test2 ausgelöst egal was passiert? Auch wenn ich die 2 Varianten ausprobiert habe!

PS: Ich weiß das ich imoment viele Fragen poste, aber ich möchte gerne soviel wie möglich lernen, ich hoffe Ihr versteht das.

Mit freundlichen Grüßen
David Koch
 
Hi,

welchen Wert enthält aktuelleAccountDbZeit?

Du formatierst die $aktuelleZeit als String, so kannst du keinen Vergleich anstellen, je nachdem wie aktuelleAccountDbZeit formatiert ist.
 
Zur zeit hat $aktuelleDbZeit den datum 2013-08-07 18:48:22 also (Y-m-d H:i:s) in der Datenbank ist das ein DATETIME also mein vorgehen ist so: Suche mir alles aus von global_benutzer wo id = $_SESSION['benutzer_id'] also sucht er mir alles von diesen benutzer raus auch die sitzungszeit und er soll prüfen wie lange es her ist: wenn $DBzeit >= $aktuelleZeit dan soll er dies machen und dan kommt noch ne prüfung wenn $DBzeit < $aktuellezeit dan soll er dies machen weist du wie ich das meine?
 
Zur zeit hat $aktuelleDbZeit den datum 2013-08-07 18:48:22 also (Y-m-d H:i:s) in der Datenbank ist das ein DATETIME also mein vorgehen ist so: Suche mir alles aus von global_benutzer wo id = $_SESSION['benutzer_id'] also sucht er mir alles von diesen benutzer raus auch die sitzungszeit und er soll prüfen wie lange es her ist: wenn $DBzeit >= $aktuelleZeit dan soll er dies machen und dan kommt noch ne prüfung wenn $DBzeit < $aktuellezeit dan soll er dies machen weist du wie ich das meine?

Jaja schon ;) Dein Code gehört zu den leserlicheren Fundstücken in Foren.

Das Problem wird der Vergleich sein. PHP sieht nur zwei Strings und keine Datumsangaben!

Probier folgendes:
PHP:
$aktuelleZeit = time() - 900; 
// diese Zeile löschen: $aktuelleZeit = date('Y-m-d H:i:s', $uhrzeit); 

$accDbTime = strtotime($aktuelleAccountDbZeit);

if($accDbTime >= $aktuelleZeit) 
{ 
      echo 'test1'; 
} 

else // brauchst keine zweite If-Bedingung!
{ 
      echo 'test2'; 
}
 
Boah DANKE******!! vielen Dank ich hab nicht viel mit timestamp gemacht und komme in der sache sehr schnell durcheinander danke ****** Und ja ich weiß das ich keine 2 if bedingung brauche, nur ich habe schon soviel ausprobiert das ich es vergessen habe ein else draus zu machen :D danke nochmals! :P

mfg
David Koch
 
Zurück