Hmailserver Registerscript

Hallo liebe HaBo Community,

ich hab mal eine Frage bezüglich auf den Hmailserver.

Und zwar möchte ich wissen ob es ein phpscript gibt bei dem sich User direkt über eine PHP seite auf dem Mailserver registrieren können, da die komplette Userverwaltung bei diesem Server Mysql basierend ist. Kennt sich da vlt. jemand aus?

Gruß Stroker
 
Hi,

Ich hab dir da mal was zusammen gebastelt.

PHP:
<?php
$domain_id = 1;
$rechte = 0;#1 = Admin
$adresse = "test@domain.de";
$passwort = "";#PW als MD5 Summe
$postfach_groesse = "5";#Größe des Postfaches in MB

$eintrag = "INSERT INTO hm_accounts
(accountdomainid, accountadminlevel, accountaddress, accountpassword, 	accountactive, accountisad, accountmaxsize, accountvacationmessageon, accountpwencryption, accountforwardenabled, accountforwardkeeporiginal, accountenablesignature)

VALUES
('$domain_id', '$rechte', '$adresse', '$passwort', '1', '0', '$postfach_groesse', '0', '2', '0', '0', '0')";

$eintragen = mysql_query($eintrag);
?>

Wenn du das Inviduell angepasst heben möchtes, melde dich bei mir in ICQ.

Meine ICQ Nummer lautet: 237 791 104


EDIT:

Komplette Skript (entsprechend der Vorstellungen von Stroker

Der Hmailserver DB muss folgende Tabelle hinzugefügt werden.

Code:
CREATE TABLE `hm_spam` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `ip` varchar(255) collate latin1_general_ci NOT NULL,
  `timestamp` varchar(255) collate latin1_general_ci NOT NULL,
  `email` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

PHP Skript:

PHP:
<?php
#Autor:BA2

#SQL Verbindung Aufbauen
$verbindung = mysql_connect ("localhost", "************", "*****************")
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
mysql_select_db("hmailserver") or die ("Die Datenbank existiert nicht.");
#Ende SQL Verbindung Aufbauen

#Variabeln
#Schritt abfragen
$step = $_GET["step"];if(!isset($step)){$step = 1;}
#IP des Users
$user_ip = $_SERVER['REMOTE_ADDR'];
#Timestamp
$timestamp = time();

#E-Mail Einstellungen
#Postfachgroesse in MB
$postfachgroesse = 20;

#Welche Domain?
#1 = domain1.tld
#2 = domain2.tld
$domain = 1;
$domain_anhang = "@domain1.tld";

#Ende Variabeln

#Ueberpruefung ob User bereits ein Account mit der IP angelegt hat
$reg_i = 0;
$abfrage = "SELECT * FROM hm_spam where ip like '$user_ip'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   $step = 2;
   }
#Ende Ueberpruefung ob User bereits ein Account mit der IP angelegt hat

#Schritt 1 Anmelde Formular
if ($step == 1)
{
echo "
<form method=\"POST\" action=\"?step=3\">\n
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"282\">\n
  <tr>\n
    <td width=\"103\"><b>Username:</b></td>\n
    <td width=\"179\"><input type=\"text\" name=\"name\" size=\"20\"></td>\n
  </tr>\n
  <tr>\n
    <td width=\"103\"> </td>\n
    <td width=\"179\"> </td>\n
  </tr>\n
  <tr>\n
    <td width=\"103\"><b>Passwort:</b></td>\n
    <td width=\"179\"><input type=\"password\" name=\"pw1\" size=\"20\"></td>\n
  </tr>\n
  <tr>\n
    <td width=\"103\"><b>Passwort Wiederholen:</b></td>\n
    <td width=\"179\"><input type=\"password\" name=\"pw2\" size=\"20\"></td>\n
  </tr>\n
  <tr>\n
    <td width=\"103\"> </td>\n
    <td width=\"179\"> </td>\n
  </tr>\n
  <tr>\n
    <td width=\"103\"><b>Deine IP:</b></td>\n
    <td width=\"179\"><font color=\"#FF0000\"><b>$user_ip</b></font></td>\n
  </tr>\n
</table><br />\n
<input type=\"submit\" value=\"Abschicken\" name=\"B1\"\n
</form>\n
";
}
#Ende Schritt 1

#User hat bereits ein Account
if ($step == 2)
{
echo "Unter der IP ".$user_ip." wurde bereits ein Account angelegt.";
}
#EndeUser hat bereits ein Account

#Daten Ueberpruefen und Speichern
if ($step == 3)
{
#Post Werte
$eingabe_user = $_POST["name"];
$eingabe_pw1 = $_POST["pw1"];
$eingabe_pw2 = $_POST["pw2"];
#Post werte anpassen
$email_name = "".$eingabe_user."".$domain_anhang."";
$email_passwort = md5($eingabe_pw1);

#Post werte of gleichheit ueberpruefen
if ($eingabe_user == "")
{
echo "Bitte einen Namen eingeben.<a href = \"?step=1\">Zurücl</a><br />";
}
else
{
if ($eingabe_pw1 != $eingabe_pw2 OR $eingabe_pw1 == "" OR $eingabe_pw2 == "")
{
echo "Die eingegebenen Passwörter stimmen nicht überein.<a href = \"?step=1\">Zurücl</a><br />";
}
else
{
#Ueberpruefen ob name bereits vorhanden
$email_vorhanden = 0;
$abfrage = "SELECT * FROM hm_accounts where accountaddress like '$email_name' limit 1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo "Die E-Mail Adresse <b>".$email_name."</b> ist bereits vorhanden.";
   $email_vorhanden = 1;
   }
#ENDE Ueberpruefen ob name bereits vorhanden

#Speciern
if ($email_vorhanden == 0)
{
#IP des Users SPeichern
$eintrag = "INSERT INTO hm_spam (ip, timestamp, email) VALUES ('$user_ip', '$timestamp', '$email_name')";
$eintragen = mysql_query($eintrag);

#Ueberpruefen Ob Eintrag erfolgreich war
if ($eintragen != TRUE)
{
echo "Fehler beim Speichern in der Tabelle hm_spam.";
}
#Ende Ueberpruefen Ob Eintrag erfolgreich war
#Ende IP des Users Speichern

#E-mail Account speichern
$eintrag = "INSERT INTO hm_accounts (accountdomainid, accountadminlevel, accountaddress, accountpassword, accountactive, accountisad, accountmaxsize, accountvacationmessageon, accountpwencryption, accountforwardenabled, accountforwardkeeporiginal, accountenablesignature, accountvacationexpires) VALUES ('$domain' , '0', '$email_name', '$email_passwort', '1', '0', '$postfachgroesse', '0', '2', '0', '0', '0', '0')";
$eintragen = mysql_query($eintrag);
#Ueberpruefen Ob Eintrag erfolgreich war
if ($eintragen != TRUE)
{
echo "Fehler beim Speichern in der Tabelle hm_accounts.";
}
else
{
echo "Die E-Mail adresse <b>".$email_name."</b> wurde erfolgreich angelegt.";
}
#Ende E-mail Account speichern
}
}
#Ende Speichern
}
}
#Ende Daten Ueberpruefen und Speichern
?>

mfg ba2
 
Nochmal vielen vielen Dank für die tolle Arbeit und Unterstützung von ba2 ist echt ein hilfsbereiter und super netter Kerl :)

Greeetz Stroker
 
Zurück
Oben