Hallo,
ich habe ein Skript für meinen Kundenbereich geschrieben, mittels der ich automatisiert Mitteilungen an inaktive User senden kann oder deren Status man auf inaktiv setzen kann.
Leider habe ich ein wirklich ganz kleines Problem bei der Statusänderung.
Das Skript ändert den Status aller User auf 4, obwohl die Bedingungen richtig sind. Was habe ich falsch gemacht? Die stelle wo ich den Fehler vermute habe ich gekennzeichnet mit ***.
PHP-Code:
<?php
// FA PASS
include "shared/class/class.config.php";
$conf_pass= new Config("shared/config/pass_conf.php");
include $conf_pass->pfad_ums_class;
$fa_ums= new fa_ums();
$profil=true;
include "fa_pass.php";
?>
<html>
<head>
<title>Mitgliedschaft ablehnen - Eküpartner Kundenbereich</title>
</head>
<body>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Die Mitgliedschaft aller
Kunden, die sich seit 60 Tagen nicht eingeloggt haben UND sich seit Anmeldung
noch nie eingeloggt haben, in der Kundenverwaltung auf "indirekter Ablehnung" gesetzt!
Überprüfung der Kunden..
<?php
//Datenbankanbindung
$verbindung = mysql_connect($conf_pass->db_host,$conf_pass->db_user,$conf_pass->db_pass);
mysql_select_db($conf_pass->db_name,$verbindung);
$befehl1="SELECT * FROM $conf_pass->db_user_login WHERE last_login='0000-00-00 00:00:00'";
$befehl1ausfuehren = mysql_query($befehl1,$verbindung);
// Alle Kunden durchsuchen und überprüfen ob 1. 60 Tage inaktiv und 2. ob jemals angemeldet gewesen!
while ($objekt = mysql_fetch_array($befehl1ausfuehren)) {
if ($objekt[last_login] == "0000-00-00 00:00:00")
{
print "[b]Kunde - $objekt[nic]:[/b]
Anmeldung bzw. Freischaltung am $objekt[register]:
Letzte Anmeldung am $objekt[last_login]
";
// Datum der Registration splitten und zu Timestamp umwandeln, damit ich die Differenz zur aktuellen Zeit bilden kann
$user_lastvisit = $objekt[register];
$reg_timestamp = strtotime( $user_lastvisit );
$diff = round( (time() - $reg_timestamp) / 86400);
print "Damit ist der Kunde seit seiner Anmeldung bzw. Freischaltung am ".date("d",$reg_timestamp).".".date("m",$reg_timestamp).".".date("Y",$reg_timestamp)." bis heute ".$diff." Tage inaktiv gewesen!";
// Nach 60 Tagen inaktiv, Mitgliedschaft ablehnen bzw. Status auf 4 setzen
//größer oder gleich 60 und noch nie eingeloggt
if ($diff >= "60" and $objekt[last_login] == "0000-00-00 00:00:00")
{
if ($objekt[status] == 4)
{
print"
<font color=blue>Der Kunde wurde schon indirekt abgelehnt!</font>";
}
else {
$befehl2="UPDATE $conf_pass->db_user_login SET status=4,tmp=''"; // ***
$befehl2ausfuehren = mysql_query($befehl2,$verbindung);
print "
<font color=green>Die Mitgliedschaft des Kunden $objekt[nic] wurde deaktiviert!</font>
";
// Sende Nachricht an Admin und User...
}
}
// Wenn nicht, alles so belassen!
else {
print "
<font color=red>Die Mitgliedschaft des Kunden $objekt[nic] wurde NICHT deaktiviert, da er nicht 60 Tage seit Anmeldedatum inaktiv war!</font>
";}
}
}
?>
<font size="1">[i]Legende: 0000-00-00 00:00:00 bedeutet, dass der Kunde sich
noch
nie
angemeldet hat![/i]</font></font>
</body>
</html>