<html>
<head>
</head>
<body>
<?php
$server= "xxx"; // DB Host
$datenbank= "xxx"; // DB Name
$user= "xxx"; // DB Username
$passwort= "xxx"; // DB Passwort
// Zugriff auf SQL-Server
MYSQL_CONNECT($server, $user, $passwort) or die ("Datenbankserver nicht erreichbar");
MYSQL_SELECT_DB($datenbank) or die ( "Datenbank nicht vorhanden");
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Aktionen fuer diese Datei
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
if (isset($_GET['action']) && $_GET['action'] != "") {
$action = $_GET['action'];
}
elseif (isset($_POST['action']) && $_POST['action'] != "") {
$action = $_POST['action'];
}
switch ($action) {
case "savedaten":
savedaten();
break;
default:
formular();
break;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Formular
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
function formular () {
?>
<form action="eintrag.php" method="post">
Ihre IP-Adresse und Registrier-Zeit wird gespeichert!<br />
(min. 6 - max. 20 Zeichen A-Z, a-z, 0-9 gestattet, keine sonderzeichen)<br /><br />
<input type="hidden" name="action" value="savedaten" />
<input type="text" name="username" maxlength="20" size="20" /> Username<br /><br />
<input type="password" name="passwort1" maxlength="20" size="20" /> Passwort<br /><br />
<input type="password" name="passwort2" maxlength="20" size="20" /> Passwort wiederholen<br /><br />
<input type="text" name="email" maxlength="100" size="20" /> E-mail<br /><br />
<input type="hidden" value="<?php echo $jetzt ?>" />
<input type="hidden" value="<?php echo $ip ?>" />
<input type="checkbox" value="" /><a href="agb.html">AGB</a><br /><br />
<input type="submit" value="Registrieren" />
</form>
<?php
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Mitgliedsdaten speichern
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
function savedaten () {
// E-Mail komplett kleinschreiben um exakten Vergleich zu ermoeglichen
$email = strtolower($_POST['email']);
// alles an Zeichen raus was nicht in der Username, Passwort und Mail vorkommen darf
// Muss natuerlich fuer jeden Einsatzzweck angepasst werden
$username = preg_replace ("/[^0-9a-zA-Z]/", "", $_POST['username']);
$passwort1 = preg_replace ("/[^0-9a-zA-Z]/", "", $_POST['passwort1']);
$passwort2 = preg_replace ("/[^0-9a-zA-Z]/", "", $_POST['passwort2']);
$email = preg_replace ("/[^0-9a-zA-Z\.\-_@]/", "", $email);
// Testen ob Mailaddy...
if ($email != '') {
$resultemail = mysql_query("SELECT COUNT(*) FROM member WHERE email = '$email'");
$mailda = mysql_fetch_array($resultemail);
$totalmail = $mailda[0];
}
//... und Username schon vorhanden
if ($username != '') {
$resultuser = mysql_query("SELECT COUNT(*) FROM member WHERE username = '$username'");
$userda = mysql_fetch_array($resultuser);
$totaluser = $userda[0];
}
// Zeit ermiteln
$jetzt = time();
date("d.m.Y H:i.s",$jetzt);
// IP ermitteln
$ip = $_SERVER['REMOTE_ADDR'];
//-----------------------------------------------------------------//
// Fehlerbehandlung
//-----------------------------------------------------------------//
$fehlermeldung = "";
$fehler_gefunden = "";
// Name Check
$errormeldung = "<li>Es existiert schon ein Benutzer mit der angegebenen E-Mail Adresse\n";
if ($totalmail > 0) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Es existiert schon ein Benutzer mit dem angegebenen Usernamen\n";
if ($totaluser > 0) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
// E-Mail Check
$errormeldung = "<li>Das Feld \"Ihre E-Mail\" wurde nicht ausgefüllt oder keine gültige E-Mail Adresse eingetragen.\n";
if (!preg_match ("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/", $email)) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Username\" wurde nicht korrekt ausgefüllt. Das Feld darf nur Buchstaben und Zahlen enthalten. Auch muss der Username zwischen 3 bis max. 30 Zeichen lang sein.\n";
if (strlen($username) < 3 || strlen($username) > 20 ) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Passwort\" wurde nicht korrekt ausgefüllt. Das Feld darf nur Buchstaben und Zahlen enthalten. Auch muss das Passwort zwischen 6 bis max. 30 Zeichen lang sein.\n";
if (strlen($passwort1) < 6 || strlen($passwort1) > 20 ) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Das Feld \"Passwort wiederholen\" wurde nicht korrekt ausgefüllt. Das Feld darf nur Buchstaben und Zahlen enthalten. Auch muss das Passwort zwischen 6 bis max. 30 Zeichen lang sein.\n";
if (strlen($passwort2) < 6 || strlen($passwort2) > 20 ) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
$errormeldung = "<li>Die beiden Passwörter entsprechen sich nicht.\n";
if ($passwort1 != $passwort2) {
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
// existiert die IP schon ?
$errormeldung = "<li>Ihre IP wurde bereits gespeichert.\n";
$Results = mysql_query("SELECT * FROM `IPs` WHERE `ipaddr` = '$ip'");
$Count = mysql_num_rows($Results);
if($Count >= 1){
$fehlermeldung = $fehlermeldung.$errormeldung ;
$fehler_gefunden = 1 ; }
// Wenn Fehler - dann aufruf der Fehlerausgabe...
if ($fehler_gefunden) {
fehlerausgabe("<ol>$fehlermeldung</ol>");
exit;
}
$username = mysql_real_escape_string($username);
$userpwsave = md5($passwort1);
MYSQL_QUERY("INSERT INTO member (mid, username, passwort, email, tstamp, ipaddr) VALUES('', '$username', '$userpwsave', '$email', '$jetzt', '$ip')")
or fehlerausgabe("<br />Fehler beim Speichern der Daten! Grund: ", mysql_error());
MYSQL_CLOSE();
echo "Ihre Daten wurden erfolgreich gespeichert";
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
// Fehlerausgabe
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
function fehlerausgabe ($fehlermeldung, $error="") {
echo "Fehler festgestellt!";
echo "<b>$fehlermeldung</b> ";
// Fuer Notfaelle, wenn Datenbank trotz Pruefung doppelten Eintrag
// fuer Username oder E-Mail festellt
if (preg_match ("/Duplicate entry/", $error )) {
echo "Username oder E-Mail existiert bereits!";
}
}
//-----------------------------------------------------------------//
// Datensaver Regexe
//-----------------------------------------------------------------//
function datensaver($formdaten) {
$formdaten = stripslashes($formdaten);
$suchmuster = array(
'#^\s+#',
'#\s+$#',
'#<#',
'#>#',
'#\|#',
'#\'#',
'#\"#',
'#\r#',
'#\n#'
);
$ersatz = array("","","","","","","","","");
$formdaten = preg_replace($suchmuster, $ersatz, $formdaten);
return $formdaten;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
?>
</body>
</html>