Autor
|
Thread
|
26.05.2007 14:22 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Danke!
Sollte eigentlich klappen. Mal sehen ob es in 24h es auch wirklich wieder zurückstellt.
|
|
|
31.05.2007 19:08 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
So hab das jetzt mal getestet, aber irgendwo scheint sich wieder ein Fehler in meinem Skript zu verstecken. Das heisst, es gibt zwar keine Fehlermeldung oder so etwas, aber PW_ID und Zeit werden nicht auf Null zurückgestellt, wenn die 24h vorbei sind, sondern den im anderen Skript generierten timestamp bleibt.
Hier mein Code:
PHP:
<? $sql ="SELECT
Zeit
FROM
user
WHERE
PW_ID != NULL
";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$aktuelle_Zeit = ($row['Zeit'] + 86400);
if ($row['Zeit'] > $aktuelle_Zeit) {
$sql = "UPDATE
user
SET
PW_ID = NULL,
Zeit = NULL
WHERE
Zeit = '".db_security($row['Zeit'])."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
} ?>
|
|
|
01.06.2007 11:48 Uhr
|
|
Negura
|
Forenposter
|
|
registriert
|
06.12.2006
|
wohnt in
|
|
Beiträge
|
57
|
|
ich hab mir dein code nicht genau angeguckt, aber das macht kein sinn oder? 
PHP:
<?
if ($row['Zeit'] > $aktuelle_Zeit)
?>
vielleicht so...
PHP:
<?
if (time() > $aktuelle_Zeit)
?>
anderseits speicherst du ja scheinbar nur den normalen, nicht bearbeiteten timestamp, dann übersehe einfach mal oben stehenden code.
prüfe einfach mal ob bei
PHP:
<?
$aktuelle_Zeit = ($row['Zeit'] + 86400);
?>
$aktuelle_Zeit auch wirklich das richtige berechnet wird, kann sein das du es so schreiben musst.
PHP:
<?
$aktuelle_Zeit = $row['Zeit'];
$aktuelle_Zeit += 86400;
?>
Sorry, wie gesagt, code nicht richtig angeguckt.
Gruß Negura
|
|
|
01.06.2007 15:28 Uhr
|
RE:
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Zitat:Negura
ich hab mir dein code nicht genau angeguckt, aber das macht kein sinn oder?
PHP:
<?
if ($row['Zeit'] > $aktuelle_Zeit)
?>
vielleicht so...
PHP:
<?
if (time() > $aktuelle_Zeit)
?>
Hab jetzt das mit $aktuelle_Zeit geändert, ändert aber immernoch nichts...
Den Code von mir ist schon logisch den in $row['Zeit'] steht der timestamp drin, bei dem der User ein neues Passwort angefordert hat. Mit der if Abfrage prüfts ja dann ob der grösser ist als den nach 24h und wenn ja, dann sollte es ja auf Null zurückstellen.
Was könnt es sonst noch sein?
|
|
|
01.06.2007 19:41 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hey, ich finde du gehst da eh zu kompliziert ran, ein einfaches update reicht doch:
PHP:
<?php
$sql = "UPDATE
user
SET
PW_ID = NULL,
Zeit = NULL
WHERE
Zeit + ".(60*60*24)." < ".time()."
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
?>
Dadurch wird jede PW_ID auf NULL gesetzt, die vor mehr als einem Tag (60*60*24 Sekunden) erstellt wurde.
|
|
|