Jump to:

1970 Posts in 1275 Topics by 607 members

Form Questions

SilverStripe Forums » Form Questions » Registrations Activation

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1 2 3
Go to End
Author Topic: 873 Views
  • FireDevil
    Avatar
    Community Member
    12 Posts

    Re: Registrations Activation Link to this post

    EDIT: Man bin ich blöd ich kann keine Meldung bekommen wenn meine Url Falsch ist meine locale URL ist ja nur http://localhost,
    habe aber in meinem E-mail versand http://localhost.com drin stehen

    habe das .com weg gemacht und bekomme diese aussage :
    Array ( => /silverstripe2.4/Activate [email= => [email=demo@localhost.com]demo@localhost.com] => [email=demo@localhost.com]demo@localhost.com[/email] [Code] => 4150e5cd33b8a93adf2bc469982fff556c220706 )

  • Devlin
    Avatar
    Community Member
    186 Posts

    Re: Registrations Activation Link to this post

    Na dann is ja alles ok...

    Wie gesagt in der ActivateForm() Methode gibt's so einige unbekannte Variablen.

    Und das Director::redirectBack() würde ich durch ein Director::redirect($URL) mit einer festen Ziel-URL ersetzen, da wenn der Link aus einer E-Mail kommt, man nicht sicher sein kann ob eine vorherige Seite existiert.

  • FireDevil
    Avatar
    Community Member
    12 Posts

    Re: Registrations Activation Link to this post

    Jo soweit ist jetzt alles klar nur will ich keine feste URL aus dem ganz einfachen grund wenn jemand versucht den link zu verändern komt ja bei aufruf ne fehlermeldung ich bin noch nicht dahinter gekommen wie ich alle meine Links auf die startseite leiten kann und dort meine meldung kommt.

  • Devlin
    Avatar
    Community Member
    186 Posts

    Re: Registrations Activation Link to this post

    Das mit der hardgecoded URL kannst du umgehen, wenn du Director::absoluteBaseURL() statt http://localhost/ schreibst. Dann brauchst du dich auf'm Produktivserver auch nicht mehr darum kümmern.

    ich bin noch nicht dahinter gekommen wie ich alle meine Links auf die startseite leiten kann und dort meine meldung kommt

    Na das gleiche System nur nicht auf einer Unterseite sonder direkt in die Page Klasse. Dann entweder die Methode wieder über das Template aufrufen oder über den Weg den ich vorgeschlagen habe mit dem Methodennamen in der URL.

    http://doc.silverstripe.org/framework/en/topics/controller

  • FireDevil
    Avatar
    Community Member
    12 Posts

    Re: Registrations Activation Link to this post

    Hallo Devlin,

    muss dich wohl leider nochmal stören, ich hab mittlerweile rausgefunden wie ich daten eintragen kann doch wie überschreibe ( update ) ich sie jetzt.

    Ich hab es so probiert

    $Code = 0;
    $Status = 'aktiv';
    $Member = new Member();
    $Code->saveInto($Member);
    $Status->saveInto($Member);
    $Member->write();

    Doch da bekomm ich nur eine Fehlermeldung das die funktion saveInto kein Object sei kannst du mir vielleicht nochmal auf die sprünge helfen.

    Vielen Dank

  • Devlin
    Avatar
    Community Member
    186 Posts

    Re: Registrations Activation Link to this post

    die funktion saveInto kein Object sei
    Die Variable $Code hat keine Methode saveInto ($Code->saveInto()), da du ihr den Wert 0 zugewiesen hast ($Code = 0).

    SilverStripe ist streng Objektorientiert. Du solltest auf jedenfall die Grundlagen drauf haben:
    http://de3.php.net/manual/de/language.oop5.basic.php

    So ungefähr sollte es ausschauen, wenn du einem bestehenden Member eine Variable übergeben möchtest.

    // get member
    $email = Convert::raw2sql($_GET['Email']);
    $member = DataObject::get_one($class = 'Member', $where = "Email = '$email'");

    if( !empty($member) ) {
    // update data
    $member->Code = 0;
    $member->Status = 'aktiv';

    // write data
    $member->write();
    }

    http://doc.silverstripe.org/framework/en/2.4/topics/datamodel#data-handling
    http://doc.silverstripe.org/framework/en/2.4/reference/dataobjectdecorator

  • FireDevil
    Avatar
    Community Member
    12 Posts

    Re: Registrations Activation Link to this post

    Hallo Devlin,

    Jo werde mich wohl doch noch etwas weiter bilden müssen da merkt man mal man kann nicht alles wissen ;-)

    habe jetzt mal deinen Code eingebaut und einge sachen durch getestet aber es geht dennoch nicht
    Hier nochmal mein Code Komplett:

    function ActivateForm() {

    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.';
    } elseif($_GET['Email'] = DataObject::get_one('Member', 'Email')) {
    return 'Fehler: E-mail Adresse nicht vorhanden.';
    } elseif(!$_GET['Code'] = DataObject::get_one('Member', 'Code')) {
    return 'Fehler: Code exestiert nicht.';
    } else {
    // get member
    $email = Convert::raw2sql($_GET['Email']);
    $member = DataObject::get_one($class = 'Member', $where = "Email = '$email'");

    if(!empty($member)) {
    // update data
    $member->Code = 0;
    $member->Status = 'aktiv';
    // write data
    $member->write();
    }
    }
    }

    wenn ich die URL dann abschicke läuft alles ganz normal durch, bekomme keinerlei Fehler Meldung und wenn ich die datenbank überprüfe wurde nichts geändert vielleicht weißt du woran es liegen könnte?

    Vielen Dank

    PS: Was mich mal interessieren würde warum eigentlich Convert::raw2sql bei den E-mail's

  • Devlin
    Avatar
    Community Member
    186 Posts

    Re: Registrations Activation Link to this post

    Tut mir leid, aber das ist dein Job das herauszufinden.

    Was mich mal interessieren würde warum eigentlich Convert::raw2sql bei den E-mail's

    "All Input is Evil"

    873 Views
Page: 1 2 3
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.