um PHP zu lernen und vorallem auch Contenido ein bisschen besser zu verstehen, habe ich ein Registrierungsformular inkl. Emailbestätigung an den User geschrieben. Ich weiss leider nicht, ob ich die Umsetzung elegant gelöst habe oder nicht

Was macht dieses Script?
Ein Benutzer kann sich auf der Seite registrieren und muss seinen Account über seine Emailadresse aktivieren.
Nun zur Installation:
1. Ladet euch folgende Datei runter:
http://www.m2designs.de/con_module/M2DLogin.rar
2. Öffnet die config.php und passt eure Daten an!
3. Ladet die Dateien auf euren Webspace in das Verzeichnis
cms/module/login (Ordner Login bei Bedarf anlegen)
4. Führt im PHPmyAdmin folgenden Befehl aus:
Code: Alles auswählen
ALTER TABLE `con_phplib_auth_user_md5` ADD `status` set( 'activ', 'waiting', 'locked' ) NOT NULL default 'waiting'
Der Input bleibt leer!
Output lautet wie folgt:
Code: Alles auswählen
<?php
include('modules/login/config.php');
$username = $_POST['reg_name'];
$password = $_POST['reg_pw2'];
$reg_pw = $_POST['reg_pw'];
$email = $_POST['reg_mail'];
$realname = $_POST['reg_name1'];
$form = $_GET['form'];
$miss = "";
echo'<form name="form1" method="post" action="front_content.php?form=1">
<table width="400" border="0" align="center" cellpadding="0" cellspacing="0" class="layoutbox">
<tr>
<td width="200"><font><strong>Registrierung bei '.$emailname.'</strong></font></td>
<td width="200"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td valign="top"><font>Benutzername*</font></td>
<td><input name="reg_name" type="text" class="input" id="reg_name" value="'.$reg_name.'">
</td>
</tr>
<tr>
<td valign="top"><font>Name*</font></td>
<td><input name="reg_name1" type="text" class="input" id="reg_name1" value="'.$reg_name1.'">
</td>
</tr>
<tr>
<td valign="top"><font>EMail*</font></td>
<td><input name="reg_mail" type="text" class="input" id="reg_mail" value="'.$reg_mail.'">
</td>
</tr>
<tr>
<td valign="top"><font>Passwort*</font></td>
<td><input name="reg_pw" type="password" class="input" id="reg_pw">
</td>
</tr>
<tr>
<td valign="top"><font>Passwort*<br>
wiederholen</font></td>
<td><input name="reg_pw2" type="password" class="input" id="reg_pw2">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Felder mit * müssen ausgefüllt werden! </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Anmelden"></td>
</tr>
</table>
</form>';
if ($form == 1)
{
include('modules/login/config.php');
//Eingabe Benutzername prüfen
if ($form == 1 AND empty($reg_name))
{
echo'<br><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><b>Sie müssen einen Benutzernamen angeben</b></font>';
$miss = $miss."<Li>Benutzername";
}
//Eingabe Name prüfen
if ($form == 1 AND empty($reg_name1))
{
echo'<br><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><b>Sie müssen einen Namen angeben</b></font>';
$miss = $miss."<Li>Name";
}
//Eingabe Email prüfen
if ($form == 1 AND empty($reg_mail))
{
echo'<br><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif"><b>Sie müssen eine E- Mail angeben</b></font>';
$miss = $miss."<LI>Mail";
}
//Eingabe Passwort prüfen
if ($form == 1 AND empty($reg_pw))
{
echo'<br><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Sie müssen ein Passwort angeben</font>';
$miss = $miss."<LI>pw";
}
//Eingabe Passwörter vergleichen prüfen
if ($form == 1 AND $reg_pw != $reg_pw2)
{
echo'<br><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Die Passwörter stimmen nicht überein. Bitte versuchen Sie es erneut</font>';
$miss = $miss."<LI>pw2";
}
$user_result = mysql_query("SELECT * FROM $user_tabelle WHERE username = '$username'", $mysql_con);
if (mysql_affected_rows($mysql_con) > 0)
{
$miss = $miss."<LI>Benutzername vorhanden";
echo'<div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Der angegeben Benutzername ist leider schon vorhanden</font></div>';
}
$user_result = mysql_query("SELECT * FROM $user_tabelle WHERE email = '$email'", $mysql_con);
if (mysql_affected_rows($mysql_con) > 0)
{
$miss = $miss."<LI>Email vorhanden";
echo'<div align="center"><font color="#FF0000" size="2" face="Arial, Helvetica, sans-serif">Die angegebene Email Adresse ist bereits schon vorhanden</font></div>';
}
$reg_date = date("U");
$reg_id = md5($username);
$password = md5($password);
$query = "INSERT into $user_tabelle (username, password, email, realname, reg_date)
values ('$username', '$password', '$email', '$realname', '$reg_date')";
if (empty($miss)) {
if (mysql_db_query ($contenido_database, $query, $mysql_con)) {
//Email an User
$subject = "Ihre Anmeldung bei $emailname";
$message ="
Hallo $username,
Um die Anmeldung bei $emailname abzuschliessen, musst du noch auf den untenstehenden Bestätigungslink klicken:
".$script_dir."/activate.php?code=".$reg_id."&name=".$username."
Viel Spass wünscht dein
$emailname Team
Bei Fragen, Anregungen oder Problemen steht wir Ihnen gerne unter: $mailadi";
$headers = "From: $emailname <$emailad>\r\n";
mail($email, $subject, $message, $headers);
print "Herzlichen Glückwunsch, $username<br><br>
<b>Ihre Anmeldung war erfolgreich.</b>
Prüfen Sie nun Ihren Emaileingang!<br>
<br>
<b> $email </b>
<br>
<br>
Öffnen Sie die Email und klicken auf den Bestätignungslink um Ihren Account zu aktivieren.<br><br>
Solltest Sie keine Emai erhalten haben, wende Sie sich bitte an einen <a href=\"mailto:$emailad\">Administrator</a>.<br>";
} else {
print ("Leider traten Probleme bei der Anmeldung auf. Bitte wenden sie sich an einen Admin");
}
}
}
?>
Code: Alles auswählen
.layoutbox {
border: 1px dashed #FF6600;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #333333;
background-color: #FFFFCC;
}
.input {
border: 1px solid #FF6600;
}
