Link in Bestätigungsmail

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Link in Bestätigungsmail

    Hallo,
    so eine Bestätigungsmail ist im Grunde nichts Besonderes, wenn man mit schlichtem PHP arbeitet. Aber in Verbindung mit AJAX ist das aus meiner Erfahrung nicht ganz so einfach, weil mit HTML-, JavaScript- und PHP-Formularen parallel kommuniziert wird.

    Es wird dynamisch eine Bestätigungsmail generiert und an den Email-Inhaber versandt. Beim Klick auf einen Link, der sich in der Bestätigungsmail befindet, öffnet sich wie vorgesehen die entsprechende Seite - Soweit ist alles in Ordnung. Nun möchte ich aber eine Variable dieses Links auslesen. Der Link stellt sich in Etwa so dar: meine-domain.de/index.html?sid=123456789, dabei soll 'sid' mittels PHP-Script weiterverarbeitet werden. Mittels PHP kann ich durch $_GET['sid'] mir den Inhalt von 'sid' holen. Aber mit einem HTML-Formular wird das so nichts. Mit JavaScript könnte ich 'sid' wiederum an das entsprechende PHP-Script übergeben...

    Vielleicht hat jemand von Euch eine Idee, einen Denkanstoß für mich. Copy & Paste ist nix für mich. Ich möchte es auch verstehen.
  • @BennyBunny: Danke für die schnelle Antwort!

    Das ist ja ein richtiger Script-Mix. Leider funktioniert es nach der entsprechenden Anpassung leider nicht, da ich mich in einem HTML- und nicht in einem PHP-Script befinde. Die von Dir gebrauchte Syntax ist mir bekannt, aber leider... Dann hätte ich ja genauso schreiben können: <input type='hidden' name='sid' value='<?PHP echo $_GET['sid'] ?>'> ..Im Textfeld steht dann.. <?PHP echo $_GET[\"sid\"] ?>

    Hier noch einmal einige kurze Hinweise: Ich trenne HTML, JavaScript und PHP voneinander - es sind also 3 Scripte. Das HTML bildet die Grundlage für die Struktur und die Formularfelder. Das PHP übernimmt die Abfragen von der Datenbank und bindet externe Scripte ein. Und das Javascript übernimmt die Kommunikation zwischen beiden und ändert ggf. Formatierungen.
  • Natürlich bekomme ich die Werte in der Regel nicht ohne PHP da rein. Mit HTML, JavaScript und PHP komme ich auch einigermaßen klar. Was für mich neu ist, ist AJAX und die Kommunikation der 3 'Sprachen' untereinander.

    Ich habe auch im Vorfeld schon viel probiert mit dem Wert auslesen, aber bislang ohne Ergebnis. Was hat es mit der Template-Engine auf sich bzw. wie kann man das professionell lösen? Im Grunde ist es ja nur eine kleine Sache - aber die hat es in sich.
  • warum machst du dir solchen Aufwand um auf PHP zu verzichten?
    Wenn du ausschließlich mit AJAX arbeitest, dann werden die Benutzer ohne JavaScript ohne Grund ausgeschlossen.
    Ich sehe zumindest noch keinen Grund warum du den $_GET Parameter nicht mit PHP aufnimmst.

    Über JavaScript geht es natürlich auch Sieh dir dazu window.location.pathname an - aber das macht meiner Meinung nach keinen Sinn.
  • Nein, davon war ja auch nie die Rede.. dass ich auf PHP verzichten will. Es ist nur halt nicht möglich, in einem HTML-Dokument mit PHP zu arbeiten. Umgekehrt klappt es aber - in einem PHP-Script kann man prima mit HTML arbeiten.

    Übrigens funktioniert es jetzt endlich... mit der JavaScript-Funktion window.location.href. Mittels PHP-Funktionen extrahiere ich dann den benötigten Wert zuverlässig heraus.

    @d0nut: Mit Deinem Hinweis bezüglich der Aktivierung von JavaScript und den möglichen Risiken habe ich mich schon beschäftigt. Da aber über 90% der User JavaScript bewusst oder unbewusst aktiviert haben, stellt das für mich kein Problem dar. Und der Rest wird darauf aufmerksam gemacht, dass JavaScript deaktiviert ist. Wenn diese Leute daran interessiert sind, meine zukünftige Plattform zu nutzen wird ihnen nichts anderes übrigbleiben, als JavaScript zu aktivieren.

    Vielen Dank noch einmal an BennyBunny und d0nut für die hilfreichen Tipps!!
  • Hi,

    du solltest mit "sid" aufpassen, da dies meist die registrierte variable von php für die session ID ist.
    Wenn du denn noch trans_id in der php.ini angeschaltet hast, dann würdest du anfangen deine variable zu überschreiben.
    Das erstmal nebenbei.

    Dann ist es natürlich schön, dass du deinen code und deine template trennst. Aber du bist jetzt andem Punkt angekommen wo es schwierierig oder gar unmöglich wird, diese Trennung einzuhalten.

    Und dafür gibt es bei den Template Engines (z.B smarty.net), die Hilfs- bzw. Templatefunktionen.

    Damit hast du die Möglichkeit innerhalb eines Templates mittels der Smarty Synatx sofort auf Get Variablen zuzugreifen.

    Quellcode

    1. value="{$smarty.get.var}"


    oder gar eine forech Schleife zu durchlaufen:

    Quellcode

    1. {foreach from=$var item=v}
    2. <input type="text" value="{$v.name}" />
    3. {/foreach}



    Mit eigenem Engagement wird es schwierig diese Komplexität, welche dir die fertige Template Bibiliotheken geben, nachzustellen.
  • @vince: Danke für Deine Infos! Die Variable 'sid' habe ich vorsorglich auf Dein Anraten hin schon geändert.

    Auch nach etwa 2-wöchiger Arbeit an meinem aktuellen Projekt (genauso lange beschäftige ich mich auch mit AJAX) ist es mir immer noch ohne Probleme möglich, HTML, JavaScript und PHP zu trennen.
    Mit Template-Engines wie Smarty habe ich mich noch nicht beschäftigt, da für mich bislang noch keine Notwendigkeit bestand. Ich möchte den Einsatz von Smarty & Co. für mein Projekt über kurz oder lang aber nicht ausschließen. Um ehrlich zu sein, kenne ich die Möglichkeiten von Template-Engines noch nicht. Ich werde mich aber mal informieren.