Problem bei Registrierungsformular

Hier können Sie Fragen bezüglich der Kundenverwaltung stellen.
sif

Problem bei Registrierungsformular

Beitragvon sif » Do 4. Aug 2005, 11:07

Hallo,

ich habe ein Registrierungsformular erstellt. Funktioniert alles wunderbar, abgesehen von einem sehr unschönen Effekt.
Ich habe im Formular das Feld Passwort ausgeblendet, und verschicke auf der Folgeseite der Registrierungsseite ein zufällig generiertes Passwort an die angegebene Email-Adresse. Funktioniert soweit alles sauber. Nur wenn man nun beim Registrieren einen bereits vorhandenen Benutzernamen eingibt, dann erscheint zwar die Fehlermeldung von WE, aber es wird trotzdem noch ein E-Mail an die angegebene Adresse verschickt.
Das in der Email angegebene PW funktioniert zwar glücklicherweise nicht, beim bestehenden Account werden keine Daten überschrieben. Aber trotzdem würde ich gerne verhindern, dass eine E-Mail versendet wird, wenn man einen bereits existierenden Benutzernamen eingibt.

Wie könnte ich das verhindern?

Die Seite, die durch das Registrierungsformular aufgerufen wird, sieht so aus:
(Um das Email zu verschicken, habe ich den PHPMailer verwendet.)

Code: Alles auswählen

<we:sessionStart/>
<we:saveRegisteredUser />

<?php
    // zufälliges Passwort mit 6 Zeichen generieren
    $webuser['Password'] = substr(uniqid(rand(),1),0,6);   
   
    $sql = sprintf("UPDATE tblWebUser SET Password='%s' WHERE ID=%s",
                     $webuser['Password'], $webuser['ID']);
    $rs = mysql_query($sql);
    if (!$rs) {
        echo '<p class="alert">Datenbankfehler beim Eintragen des Benutzers.</p>';
    } else if (!mysql_affected_rows()) {
        echo '<p class="alert">Das Passwort konnte nicht gespeichert werden.</p>';
    }

// Session killen, damit der Benutzer nicht eingeloggt ist
    session_destroy();

// Email Parameter
  $Username = $webuser["Username"];
  $Vorname = $webuser["Forename"];
  $Nachname = $webuser["Surname"];
  $Password = $webuser ["Password"];
  $Email = $webuser ["Kontakt_Email"];

$Mailtext = "Guten Tag ".$Vorname." ".$Nachname." 
n
Sie haben sich heute in unserem Mitgliedsbereich angemeldet. Mit dieser Email erhalten Sie nochmals Ihre UserID sowie Ihr Passwort. Nach dem ersten Login können Sie Ihr Passwort ändern, sowie Ihr Profil nochmals überarbeiten. 
n
Ihre Login Daten:
----------------------------------- 
User ID: ".$Username." 
Passwort: ".$Password." 
----------------------------------- 
n
Sie können sich nun hier einloggen: http://www.elektrocad.ch unter der Rubrik "Downloads"

Mit freundlichen Grüssen 
Ihr ElektroCAD-Team";

  
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();            // set mailer to use SMTP
$mail->Host = "localhost";  // specify main and backup server
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "xxxxx";  // SMTP username
$mail->Password = "xxxxx"; // SMTP password

$mail->From = "info@msia.ch";
$mail->FromName = "ELEKTROCAD Registrierung";
$mail->AddAddress($Email);
$mail->AddReplyTo("info@msia.ch", "ELEKTROCAD 8.0");

$mail->WordWrap = 50;   // set word wrap to 50 characters
$mail->IsHTML(false);   // set email format to HTML

$mail->Subject = "Registrierung bei ELEKTROCAD.ch";
$mail->Body    = $Mailtext;

if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}
   
?>

Ralf Pospiech

Beitragvon Ralf Pospiech » Do 4. Aug 2005, 14:13

Hallo,

ich denke dabei kann man sich zu nutze machen, dass der user eigentlich eingeloggt ist wenn man die session nicht manuell killt. Also würde ich die Session zunächst nicht killen, bei <we:ifRegisteredUser> würde ich die Mail versenden und anschliessend die session killen im <we:else> Zweig würde ich nur die session killen.

sif

Beitragvon sif » Do 4. Aug 2005, 14:49

Danke! Es funktioniert. :-)


Zurück zu „Kundenverwaltung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast