Saubere Kundenregistrierung

Hier können Sie Fragen bezüglich der Kundenverwaltung stellen.
Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Saubere Kundenregistrierung

Beitragvon kay » Do 11. Dez 2008, 10:33

Hallo wertes Forum,
hat jemand eine saubere Lösung für eine Kundenregistrierung mit Formularüberprüfung, Captcha, Feedbackmail, Freischaltung durch den Admin und hab ich was vergessen?

Das ist mein Ansatz der leider an der Formularprüfung scheitert.

Das ist die Anmeldeseite

Code: Alles auswählen

<we:registerSwitch/>
<h3 class="toggler">Online-Buchung</h3>
<div class="element">

	<div class="anmeldung_content">

<div class="label"></div>
			<div class="label_2">Hier können Sie verbindlich Ihre Seite(n)  buchen. Bitte füllen Sie möglichst alle Felder aus. Pflichtfelder sind mit einem Sternchen gekennzeichnet.</div>
<we:checkForm match="book" type="id" mandatory="Anrede_Anrede,Forename,Surname,Branche,Kontakt_Strasse,Kontakt_PLZ,Kontakt_Ort,Kontakt_Telefon,Kontakt_Email,Bestellung_Buchung" onError="dealFormError" email="email">Bitte Prüfen Sie Ihr Formular</we:checkForm>
		<we:form id="21" pass_id="book" required="Anrede_Anrede,Forename,Surname,Branche,Kontakt_Strasse,Kontakt_PLZ,Kontakt_Ort,Kontakt_Telefon,Kontakt_Email,Bestellung_Buchung" xml="true">

			<we:sessionField type="hidden" name="Gruppe" value="Kunden" />
			<we:sessionField name="ID" type="hidden"/>

			<div class="label">Benutzername*</div>
			<div class="label_2">
				<we:ifRegisteredUser>
					<we:sessionField name="Username" type="print"/>
					<we:else/>
					<we:sessionField name="Username" type="textinput" size="30" xml="true"/>
				</we:ifRegisteredUser>
			</div>
			<div class="label">Kennwort*</div>
			<div class="label_2"><we:sessionField name="Password" type="password"/>(min. 6 Zeichen)</div>
			<div class="label">Anrede*</div>
			<div class="label_2"><we:sessionField name="Anrede_Anrede" type="textinput" size="1" choice="on" options="Herr,Frau"/></div>
			<div class="label">Titel</div>
			<div class="label_2">
				<we:sessionField name="Anrede_Titel" type="textinput" size="1" choice="on" options="Dr.,Prof.,Prof. Dr."/>
			</div>
			<div class="label">Vorname*</div>
			<div class="label_2"><we:sessionField name="Forename" type="textinput" size="30" xml="true"/></div>
			<div class="label">Nachname*</div>
			<div class="label_2"><we:sessionField name="Surname" type="textinput" size="30" xml="true"/></div>
			<div class="label">Firma</div>
			<div class="label_2"><we:sessionField name="Kontakt_Firma" type="textinput" size="30" xml="true"/></div>
			<div class="label">Branche*</div>
			<div class="label_2">
				<we:sessionField name="Branche" type="textinput" choice="on" size="1" options="Architektur,Bekleidungsdesign,Film,Fotografie,Illustration,Industriedesign,Interfacedesign,Kommunikationsdesign,Screendesign,Werbung,Sonstige " />
			</div>
			<div class="label">Straße*</div>
			<div class="label_2"><we:sessionField name="Kontakt_Strasse" type="textinput" size="30" xml="true"/></div>
			<div class="label">PLZ*</div>
			<div class="label_2"><we:sessionField name="Kontakt_PLZ" type="textinput" size="30" xml="true"/></div>
			<div class="label">Ort*</div>
			<div class="label_2"><we:sessionField name="Kontakt_Ort" type="textinput" size="30" xml="true"/></div>
			<div class="label">Telefon*</div>
			<div class="label_2"><we:sessionField name="Kontakt_Telefon" type="textinput" size="30" xml="true"/></div>
			<div class="label">Fax</div>
			<div class="label_2"><we:sessionField name="Kontakt_Fax" type="textinput" size="30" xml="true"/></div>
			<div class="label">Email*</div>
			<div class="label_2"><we:sessionField name="Kontakt_Email" type="textinput" size="30" xml="true"/></div>
			<div class="label">Homepage</div>
			<div class="label_2"><we:sessionField name="Kontakt_Homepage" type="textinput" size="30" xml="true"/></div>
		<div class="label"></div><div class="label_2">Bitte wählen Sie hier die von Ihnen gewünschte Seitenzahl zur Buchung aus:</div>

			<div class="label">*</div>
			<div class="label_2">
				<p><we:sessionField type="radio" name="Bestellung_Buchung" value="Free1" /> 1 Doppelseite Freelancer für 245 € (Frühbucherpreis 196 €)</p>
				<p><we:sessionField type="radio" name="Bestellung_Buchung" value="Free2" /> 2 Doppelseiten Freelancer für 445 € (Frühbucherpreis 356 €)</p>
				<p><we:sessionField type="radio" name="Bestellung_Buchung" value="Free3" /> 3 Doppelseiten Freelancer für 645 € (Frühbucherpreis 516 €)</p>
				<p><we:sessionField type="radio" name="Bestellung_Buchung" value="Unter1" /> 1 Doppelseite Unternehmen für 545 € (Frühbucherpreis 436 €)</p>
				<p><we:sessionField type="radio" name="Bestellung_Buchung" value="Unter2" /> 2 Doppelseiten Unternehmen für 875 € (Frühbucherpreis 700 €)</p>
				<p><we:sessionField type="radio" name="Bestellung_Buchung" value="Unter3" /> 3 Doppelseiten Unternehmen für 1205 € (Frühbucherpreis 964 €)</p>
			</div>
<div class="label"></div>
<div class="label_2">Bitte geben Sie aus Sicherheitsgründen den in der Grafik dargestellten Code in das Feld "Code-Eingabe" ein.</div>

			<div class="label">Code</div>
			<div class="label_2">
				<we:captcha width="100" height="30" maxlength="5" subset="num" fontcolor="#c8c8c8" fontsize="20" bgcolor="#333" style="outlinecircle" stylecolor="#a4a4a4" angle="10" align="center" valign="middle" type="gif" />
			</div>
			<div class="label">Code-Eingabe*</div>
			<div class="label_2"><input type="text" name="code" tabindex="15"/></div>
			<div class="label"> </div>
			<div class="label_2">
				<INPUT type="submit" value="<we:ifNotRegisteredUser>Buchung abschicken<we:else/>Daten ändern</we:ifNotRegisteredUser>">
			</div>
		</we:form>
	</div>
</div>
und das die O.K-Seite

Code: Alles auswählen

<we:sessionStart/>
<we:ifCaptcha name="code">
<we:saveRegisteredUser userexists="Der Benutzer existiert bereist, bitte wählen Sie einen anderen Benutzernamen" userempty="Bitte geben Sie einen Benutzernamen an."/>

<?php
$out = "Lieber Kay, rn";
$out .= "rn";
$out .= "Es hat sich ein neuer Kunde " . $s[Username]. " angemeldet.rn";
$out .= "rn";
$out .= "Klicke auf folgenden Link um den Kunden Freizuschalten.rn";
$out .= "http://www.xxx.de/register.php?Username=" . $s[Username]. "rn";
$out .= "rn";
$out .= "Vorname: " . $s[Forename]. "rn";
$out .= "Nachname: " . $s[Surname]. "rn";
$out .= "Firma: " . $s[Kontakt_Firma]. "rn";
$out .= "Branche: " . $s[Branche]. "rn";
$out .= "Strasse: " . $s[Kontakt_Strasse]. "rn";
$out .= "PLZ: " . $s[Kontakt_PLZ]. "rn";
$out .= "Ort: " . $s[Kontakt_Ort]. "rn";
$out .= "Telefon: " . $s[Kontakt_Telefon]. "rn";
$out .= "Mobil: " . $s[Kontakt_Tel2]. "rn";
$out .= "Fax: " . $s[Kontakt_Fax]. "rn";
$out .= "Email: " . $s[Kontakt_Email]. "rn";
$out .= "Homepage: " . $s[Kontakt_Homepage]. "rn";
$out .= "Bestellung: " . $s[estellung_Buchung]. "rn";
$header = "From:xxx <info@xxx.de>rn";
$header .= "MIME-Version: 1.0rn";
$header .= "Content-Transfer-Encoding: 8bitrn";
mail("info@xxx.de", "Neuer Kunde",$out,"$header");
?>

<?php
$out = "Lieber Kunde, rn";
$out .= "rn";
$out .= "Ihre Bestellung werden wir so schell es geht Bearbeiten. rn";
$out .= "Wenn es so weit ist bekommen Sie eine Email von uns. rn";
$out .= "Mit freundlichem Gruß rn";
$out .= "Ihr Kay rn";
$header = "From:xxx <info@xxx.de>rn";
$header .= "MIME-Version: 1.0rn";
$header .= "Content-Transfer-Encoding: 8bitrn";
mail("$s[Kontakt_Email]", "Bestell Info",$out,"$header");
?>
<div id="accordion">
<h3 class="toggler">Kundenregistrierung</h3>
	<div class="element">
<div class="label">Benutzername:</div><div class="label_2"><we:sessionField name="Username" type="print"/></div>
<div class="label">Kennwort:</div><div class="label_2"><we:sessionField name="Password" type="print"/></div>
<div class="label">Anrede:</div><div class="label_2"><we:sessionField name="Anrede_Anrede" type="print"/></div>
<div class="label">Titel:</div><div class="label_2"><we:sessionField name="Anrede_Titel" type="print"/></div>
<div class="label">Vorname:</div><div class="label_2"><we:sessionField name="Forename" type="print"/></div>
<div class="label">Nachname:</div><div class="label_2"><we:sessionField name="Surname" type="print"/></div>
<div class="label">Firma:</div><div class="label_2"><we:sessionField name="Kontakt_Firma" type="print"/></div>
<div class="label">Branche:</div><div class="label_2"><we:sessionField name="Branche" type="print"/></div>
<div class="label">Strasse:</div><div class="label_2"><we:sessionField name="Kontakt_Strasse" type="print"/></div>
<div class="label">PLZ:</div><div class="label_2"><we:sessionField name="Kontakt_PLZ" type="print"/></div>
<div class="label">Ort:</div><div class="label_2"><we:sessionField name="Kontakt_Ort" type="print"/></div>
<div class="label">Telefon:</div><div class="label_2"><we:sessionField name="Kontakt_Telefon" type="print"/></div>
<div class="label">Fax:</div><div class="label_2"><we:sessionField name="Kontakt_Fax" type="print"/></div>
<div class="label">Email:</div><div class="label_2"><we:sessionField name="Kontakt_Email" type="print"/></div>
<div class="label">Homepage:</div><div class="label_2"><we:sessionField name="Kontakt_Homepage" type="print"/></div>
<div class="label">Bestellung:</div><div class="label_2"><we:sessionField name="Bestellung_Buchung" type="print"/></div>
<div class="label"></div><div class="label_2"><a href="http://xxx.de/test.php" title="Zurück zur Startseite">Zurück zur Startseite</a></div>		
</div></div>
<we:else />
<div id="accordion">
<h3 class="toggler">Fehler</h3>
	<div class="element">
Sie habe den falschen Code eigegeben
		<input onclick="history.back()" type="button" value="zurück">
</div></div></we:ifCaptcha>

Ich bin für jede Hilfe Dankbar
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Beitragvon Liquid » Do 11. Dez 2008, 12:27

Hey Kay,

hab den Code jetzt nur mal überflogen, aber ein paar Problem sind mir augefallen.

Code: Alles auswählen

<we:checkForm match="book" type="id" ...>
<we:form id="21" pass_id="book" ...>
Muss entweder

Code: Alles auswählen

<we:checkForm match="21" type="id" ...>
<we:form id="21" pass_id="book" ...>
oder

Code: Alles auswählen

<we:checkForm match="book" type="name" ...>
<we:form id="21" [COLOR="Red"]name="book"[/COLOR] pass_id="book" ...>
Checkform type=id bezieht sich auf die id des Forms (21) pass_id gibt glaub ich die CSS ID des Forms an, ansonsten musst du im Form mit name="book" arbeiten und das checkform darafu beziehen.

Ein weiteres Problem könnten die Feldnamen sein, wie du ja auch schon gesehen hast ändern sich die Sessionfields in der Ausgabe in s[Feldname] ggf. würde ich diese Feldnamen mal noch in we:checkform testen.

Das nur was mir auf Anhieb aufgefallen ist, kannst ja nochmal Meldung machen wenn du das mit dem Form u Checkform oben geändert hast, weil das mit Sicherheit nicht stimmt.
Gruß Liquid

Benutzeravatar
kay
Senior Member
Beiträge: 356
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Beitragvon kay » Do 11. Dez 2008, 15:43

@@Liquid

Danke für den Tip mit der ID

Ich habe bei dieser Lösung ein eher grundsätzliches Problem.

Die Fehler werden immer erst auf der zweiten Seite gemeldet und jedes mal wird eine Mail Versand.

Gibt es vielleicht eine Möglichkeit den gesamten Prozess nur auf einer Seite Laufen zu lassen?
Liebe Grüße
Kay-Rafael Stemmer
http://leitbild.biz

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Beitragvon Liquid » Fr 12. Dez 2008, 13:20

Theoretisch geht das auch alles auf einer Seite, ist allerdings bissle kniffliger.
Problem ist das Captcha Tag, wenn du es auf einer Seite verwendest kommt dann beim Aufruf immer erstmal die "Sie habe den falschen Code eigegeben".

Eine Möglichkeit wäre evt. dass du erst mit PHP überprüfst ob das Formular übermittelt wurde und dann den Rest des Scripts ablaufen lässt.
Code: Alles auswählen
<?php
if(isset($_REQUEST['ein_Pflichtfeld'])){
?>
<we:ifCaptcha name="code">
<we:saveRegisteredUser userexists="Der Benutzer existiert bereist, bitte wählen Sie einen anderen Benutzernamen" userempty="Bitte geben Sie einen Benutzernamen an."/>

<?php
$out = "Lieber Kay, rn";
$out .= "rn";
$out .= "Es hat sich ein neuer Kunde " . $s[Username]. " angemeldet.rn";
$out .= "rn";
$out .= "Klicke auf folgenden Link um den Kunden Freizuschalten.rn";
$out .= "http://www.xxx.de/register.php?Username=" . $s[Username]. "rn";
$out .= "rn";
$out .= "Vorname: " . $s[Forename]. "rn";
$out .= "Nachname: " . $s[Surname]. "rn";
$out .= "Firma: " . $s[Kontakt_Firma]. "rn";
$out .= "Branche: " . $s[Branche]. "rn";
$out .= "Strasse: " . $s[Kontakt_Strasse]. "rn";
$out .= "PLZ: " . $s[Kontakt_PLZ]. "rn";
$out .= "Ort: " . $s[Kontakt_Ort]. "rn";
$out .= "Telefon: " . $s[Kontakt_Telefon]. "rn";
$out .= "Mobil: " . $s[Kontakt_Tel2]. "rn";
$out .= "Fax: " . $s[Kontakt_Fax]. "rn";
$out .= "Email: " . $s[Kontakt_Email]. "rn";
$out .= "Homepage: " . $s[Kontakt_Homepage]. "rn";
$out .= "Bestellung: " . $s[estellung_Buchung]. "rn";
$header = "From:xxx <info@xxx.de>rn";
$header .= "MIME-Version: 1.0rn";
$header .= "Content-Transfer-Encoding: 8bitrn";
mail("info@xxx.de", "Neuer Kunde",$out,"$header");
?>

<?php
$out = "Lieber Kunde, rn";
$out .= "rn";
$out .= "Ihre Bestellung werden wir so schell es geht Bearbeiten. rn";
$out .= "Wenn es so weit ist bekommen Sie eine Email von uns. rn";
$out .= "Mit freundlichem Gruß rn";
$out .= "Ihr Kay rn";
$header = "From:xxx <info@xxx.de>rn";
$header .= "MIME-Version: 1.0rn";
$header .= "Content-Transfer-Encoding: 8bitrn";
mail("$s[Kontakt_Email]", "Bestell Info",$out,"$header");
?>
<div id="accordion">
<h3 class="toggler">Kundenregistrierung</h3>
<div class="element">
<div class="label">Benutzername:</div><div class="label_2"><we:sessionField name="Username" type="print"/></div>
<div class="label">Kennwort:</div><div class="label_2"><we:sessionField name="Password" type="print"/></div>
<div class="label">Anrede:</div><div class="label_2"><we:sessionField name="Anrede_Anrede" type="print"/></div>
<div class="label">Titel:</div><div class="label_2"><we:sessionField name="Anrede_Titel" type="print"/></div>
<div class="label">Vorname:</div><div class="label_2"><we:sessionField name="Forename" type="print"/></div>
<div class="label">Nachname:</div><div class="label_2"><we:sessionField name="Surname" type="print"/></div>
<div class="label">Firma:</div><div class="label_2"><we:sessionField name="Kontakt_Firma" type="print"/></div>
<div class="label">Branche:</div><div class="label_2"><we:sessionField name="Branche" type="print"/></div>
<div class="label">Strasse:</div><div class="label_2"><we:sessionField name="Kontakt_Strasse" type="print"/></div>
<div class="label">PLZ:</div><div class="label_2"><we:sessionField name="Kontakt_PLZ" type="print"/></div>
<div class="label">Ort:</div><div class="label_2"><we:sessionField name="Kontakt_Ort" type="print"/></div>
<div class="label">Telefon:</div><div class="label_2"><we:sessionField name="Kontakt_Telefon" type="print"/></div>
<div class="label">Fax:</div><div class="label_2"><we:sessionField name="Kontakt_Fax" type="print"/></div>
<div class="label">Email:</div><div class="label_2"><we:sessionField name="Kontakt_Email" type="print"/></div>
<div class="label">Homepage:</div><div class="label_2"><we:sessionField name="Kontakt_Homepage" type="print"/></div>
<div class="label">Bestellung:</div><div class="label_2"><we:sessionField name="Bestellung_Buchung" type="print"/></div>
<div class="label"></div><div class="label_2"><a href="http://xxx.de/test.php" title="Zurück zur Startseite">Zurück zur Startseite</a></div>
</div></div>
<we:else />
<div id="accordion">
<h3 class="toggler">Fehler</h3>
<div class="element">
Sie habe den falschen Code eigegeben
<input onclick="history.back()" type="button" value="zurück">
</div></div></we:ifCaptcha>
<?php
}
?>
Gruß Liquid

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Beitragvon Liquid » Mo 15. Dez 2008, 13:17

Hi Kay,

da ich die Registrierung auch grad für ein Projekt brauche hab ich die Geschichte jetzt mal mit deinem Code getestet und es funktioniert auch soweit.

Das einzige was im Moment nicht korrekt funktioniert ist das we:checkform weil es nur sagt dass was nicht stimmt, aber nicht was. Kann aber auch sein dass es daran liegt dass ich gleich drei Dinge auf einmal prüfe (Pflichtfelder,Passwort und Email)

Anbei nochmal der Code wie er bei mir aussieht:
Zum prüfen ob das Formular gesendet wurde habe ich einen hidden Input eingefügt.

Code: Alles auswählen

<we:registerSwitch/>
<h1>MyDaySie Registrierung</h1>
<?php
    if(!isset($_REQUEST['send'])){
?>
<we:checkForm match="registrierung" type="name" mandatory="s[Kontakt_Email]" password="s[Password],s[Password2],6" email="s[Kontakt_Email]">Bitte Prüfen Sie Ihr Formular</we:checkForm>
<we:form id="self" name="registrierung"  xml="true">
<fieldset>
    <we:sessionField type="hidden" name="Gruppe" value="Endkunde" />
    <we:sessionField name="ID" type="hidden"/>
    <legend>Login Daten</legend>
        <p>
            <label>Benutzername*</label>    
            <we:sessionField name="Username" type="textinput" size="30" xml="true"/>
        </p>
        <p>
            <label>Kennwort* (min. 6 Zeichen)</label>
            <we:sessionField name="Password" type="password"/>
        </p>
        <p>
            <label>Kennwort Bestätigung</label>
            <we:sessionField name="Password2" type="password"/>
        </p>
    </fieldset>
    <fieldset>
    <legend>Persönliche Daten</legend>
        <p>
            <label>Anrede</label>
            <we:sessionField name="Anrede_Anrede" type="textinput" size="1" choice="on" options="Herr,Frau"/>
        </p>        
        <p>
            <label>Vorname</label>
            <we:sessionField name="Forename" type="textinput" size="30" xml="true"/>
        </p>
        <p>
            <label>Nachname</label>
            <we:sessionField name="Surname" type="textinput" size="30" xml="true"/>
        </p>
        <p>
            <label>Ort</label>
            <we:sessionField name="Kontakt_Ort" type="textinput" size="30" xml="true"/>
        </p>
        <p>
            <label>Email*</label>
            <we:sessionField name="Kontakt_Email" type="textinput" size="30" xml="true"/>
        </p>
    </fieldset>    
    <fieldset>
    <legend>Sicherheitsabfrage</legend>
    <p>Bitte geben Sie aus Sicherheitsgründen den in der Grafik dargestellten Code in das Feld "Code-Eingabe" ein.</p>
        <p>
            <label>Code</label>
            <we:captcha width="100" height="30" maxlength="5" subset="num" fontcolor="#c8c8c8" fontsize="20" bgcolor="#333" style="outlinecircle" stylecolor="#a4a4a4" angle="10" align="center" valign="middle" type="gif" />
        </p>
        <p>
            <label >Code-Eingabe*</label>
            <input type="text" name="code" tabindex="15"/>
        </p>
        [COLOR="Red"]<input name="send" value="1" type="hidden" />[/COLOR]
    </fieldset>    
    <INPUT type="submit" value="Registrieren">    
</we:form>
<?php
    }else{
?>
<we:ifCaptcha name="code">
	<we:saveRegisteredUser userexists="Der Benutzer existiert bereist, bitte wählen Sie einen anderen Benutzernamen" userempty="Bitte geben Sie einen Benutzernamen an."/>
	Registrierung erfolgreich
<we:else />
    <h3>Fehler</h3>
    Sie habe den falschen Code eigegeben
    <input onclick="history.back()" type="button" value="zurück">
</we:ifCaptcha>
<?php
    }
?>

Gruß Liquid

Jazzid
Member
Beiträge: 95
Registriert: Mi 1. Feb 2006, 21:30
Wohnort: Karlsruhe

Beitragvon Jazzid » Do 26. Feb 2009, 12:11

Ich bin auch gerade an ähnlichem basteln.
Du hast in deinem Code stehen, dass der Redakteur auf einen Link klicken soll um den neuen Kunden freizuschalten.
Wie sieht diese Seite aus? Wie ist das gelöst, so dass sich nicht jeder selbst freischalten kann!??
we:rocks...


Zurück zu „Kundenverwaltung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste