Hallo Devlin,
Ich Danke dir recht Herzlich für deinen ganzen Ratschläge und habe es endlich komplett zum Laufen gebracht, hier mal mein kompletter Code:
function ActivateForm() {
// Prüfung der Datenübergabe
if(!isset($_GET['Email'])) {
return 'Fehler: Unvollständige Daten übergeben - E-mail fehlt.';
} elseif(!isset($_GET['Code'])) {
return 'Fehler: Unvollständige Daten übergeben - Code fehlt.';
} else {
// Auslesen der Daten
$Email = Convert::raw2sql($_GET['Email']);
$member = DataObject::get_one($class='Member', $where="Email='$Email'");
// Prüfung der Daten in der Datenbanktabelle ( Member )
if($_GET['Email'] != $member->Email) {
return 'Fehler: Email exestiert nicht.';
} elseif($_GET['Code'] != $member->Code) {
return 'Fehler: Code exestiert nicht.';
} else {
// Prüfung der Datenübereinstimmung
if($_GET['Email'] != $member->Email AND $_GET['Code'] != $member->Code) {
return 'Fehler: Email oder Code nicht korrekt.';
} else {
// Daten überschreiben
if($member) {
// update data
$member->Code = 0;
$member->Status = 'aktiv';
// write data
$member->write();
return 'Erfolgreich: Sie können sich nun Einloggen';
} else {
return 'Fehler: Aktivierung Fehlgeschlagen, bitte wenden sie sich an den <a href="support">Support</a>';
}
}
}
}
}
Das ganze hat nur einen Hacken ich habe das ganze ja dann ausreichend durch getestet und stoße auf einen kleinen Fehler und bekomm dabei die Krise.
Hier mal die zeile um die es geht:
if($_GET['Email'] != $member->Email) {
return 'Fehler: Email exestiert nicht.';
}
wenn ich das mit einer Email durchlaufe die exestiert geht alles wunderbar dann habe ich mal eine Email benutzt die es nicht gibt und bekomme dieses Fehler:
[Notice] Trying to get property of non-object
GET /silverstripe2.4/Activate?Email=demo@localhost.de&Code=4150e5cd33b8a93adf2bc469982fff556c220706
Line 38 in D:\Homepages\xampp\htdocs\Projekte\silverstripe2.4\mysite\code\ActivatePage.php
Ich habe vieles durch probiert und begreife es einfach nicht wieso da ein Fehler entsteht vielleicht kannst du mir ja nochmal auf die Sprünge helfen bitte.
Vielen Dank
PS: Vielleicht hast ja auch so noch ein paar Verbesserungs vorschläge ;-)