<?php $fileinfo = "anmelden.php created 10 Jun 07 21:48:18 by thk
      Time-stamp: <2016-09-28 22:27:32 thk>";
  $LastChangeTime = $fileinfo;
  $LastChangeTime = preg_replace("/^[^<]+<([0-9-]+ [0-9:]+).*$/i","\\1",$LastChangeTime);
  $Creator = "Thomas Krauß";
  $Titel = "Anmeldung";
  include("header.php");
  // include("inc/db.php");
  $db = new dbclass;
?>
<h1>Anmeldung</h1>
<p>Hier können Sie sich für weitere Funktionen der Seite als Mitglied anmelden.
Geben Sie dazu bitte Ihre Daten und Ihren gewünschten Loginnamen ein. Sie erhalten dann
Ihr Start-Passwort per E-Mail zugesandt. Dies können Sie dann jederzeit ändern.</p>

<p>Wollen Sie Termine eintragen oder ändern benötigen Sie weitergehende Rechte. Diese
erhalten Sie von Thomas Krauß. Melden Sie sich dazu einfach telefonisch unter (0 82 32) 7 77 82.
</p>

<?php
   $ok=0;
   if (isset($_POST["ForgetUserID"])) $ok=forget(1,$_POST["ForgetUserID"]);
   else if (isset($_POST["ForgetEMail"])) $ok=forget(2,$_POST["ForgetEMail"]);
   else if (isset($_POST["UserID"]))
   { $AnmeldeError = checkAnmeldung();
     if ($AnmeldeError!="") print "<ul class=error>{$AnmeldeError}</ul>\n";
     else $ok = doAnmeldung();
   }
   if ($ok)
   { print "<p>Anmeldung erfolgreich. Sie erhalten in den nächsten Minuten eine E-Mail mit Ihrem Passwort für die erste Anmeldung an die von Ihnen angegebene E-Mail-Adresse ".$_POST["EMail"].".</p>\n";
   } else showForm();
   include("footer.php");


function checkAnmeldung()
{ global $_POST, $db;

  // foreach ($_POST as $k=>$v) print "POST[$k] = '$v'<br>\n";

  $_POST["UserID"] = strtolower($_POST["UserID"]);
  $_POST["UserID"] = preg_replace("/[^a-z0-9@_.]+/","",$_POST["UserID"]);
  $AnmeldeError="";
  if ($_POST["UserID"]=="") $AnmeldeError.="<li>Für den Anmeldnamen sind nur Kleinbuchstaben, Ziffern, @, _ und . erlaubt\n";
  else
  { $db->query("select ID,User from sgusers where User='{$_POST["UserID"]}' limit 1");
    if ($db->NumRows>0) $AnmeldeError .= "<li>Anmeldename '{$_POST["UserID"]}' existiert schon\n";
  }
  if (! preg_match("/^[a-z0-9_.-]+@[a-z0-9_.-]+\.[a-z]+$/i",$_POST["EMail"])) $AnmeldeError .= "<li>Keine gültige E-Mail-Adresse angegeben\n";
  if (! preg_match("/[A-Za-z]+/",$_POST["Vorname"])) $AnmeldeError .= "<li>Kein Vorname angegeben\n";
  if (! preg_match("/[A-Za-z]+/",$_POST["Name"])) $AnmeldeError .= "<li>Kein Name angegeben\n";
  if (! preg_match("/[A-Za-z]+/",$_POST["Strasse"])) $AnmeldeError .= "<li>Keine Straße angegeben\n";
  if (! preg_match("/[0-9]+/",   $_POST["PLZ"])) $AnmeldeError .= "<li>Keine Postleitzahl angegeben (vor der PLZ kann ein Länderkürzel stehen, z.B. A-1234)\n";
  if (! preg_match("/[A-Za-z]+/",$_POST["Ort"])) $AnmeldeError .= "<li>Kein Ort angegeben\n";
  $_POST["Telefon"] = preg_replace("/[^0-9 +]+/"," ",$_POST["Telefon"]);
  $_POST["Telefon"] = preg_replace("/[ ]+/"," ",$_POST["Telefon"]);
  if (! preg_match("/[0-9]+/",$_POST["Telefon"])) $AnmeldeError .= "<li>Kein Telefon angegeben (vor dem Telefon kann/sollte die Ländervorwahl wie z.B. +49 stehen)\n";

  $ca = explode(" ",$_POST["CaptchaVal"]);
  if ($ca[0])
  { if ($ca[1]+$ca[2]!=$_POST["Captcha"]*1) $AnmeldeError .= "<li>Falscher Wert bei Sicherheitsprüfung eingegeben\n";
  } else
  { if ($ca[1]-$ca[2]!=$_POST["Captcha"]*1) $AnmeldeError .= "<li>Falscher Wert bei Sicherheitsprüfung eingegeben\n";
  }
  return($AnmeldeError);
}



function doAnmeldung() // Flag|ID|UserID|Passwort|EMail|Anrede|Vorname|Name|Strasse|PLZ|Ort|Telefon|Anmeldedatum|Rechte|InfoMail
{ global $_POST, $db, $domain, $domainid;

  $ok = 0;
  $now = date("Ymd.His");
  $pwd = getrandstring(8);
  $password = crypt($pwd,getrandstring(2));
  // print "<p>gewähltes Passwort: $pwd</p>\n";
  $lists="ort";
  if (preg_match("/\/sgs\//",$_SERVER["SCRIPT_URL"])) $lists .= "sgs";
  
  $query = "insert into sgusers (User,Password,EMail,Title,Name,FirstName,Zip,City,Road,Phone,Rights,Infomail,Lists,Flags,Comment,RegistrationTime,LastAccessTime,LoginFail)";
  $query .=            " values ('{$_POST["UserID"]}','$password','{$_POST["EMail"]}','{$_POST["Anrede"]}','{$_POST["Name"]}','{$_POST["Vorname"]}','{$_POST["PLZ"]}',";
  $query .=                     "'{$_POST["Ort"]}','{$_POST["Strasse"]}','{$_POST["Telefon"]}','','$lists:2','$lists','','',{$now},0,0)";
  $db->query($query);
  if ($db->Errno) print "<p class=error>Fehler beim Anlegen des neuen Benutzers {$_POST["UserID"]}: {$db->Error}</p>\n";
  else
  { print "<p>Versende Mail an {$_POST["EMail"]}</p>\n";
    if (mail($_POST["EMail"],"[$domainid] Ihre Anmeldung zu $domain",
  	"Sehr geehrte".($_POST["Anrede"]=="Herr"?"r":"")." ".$_POST["Anrede"]." ".$_POST["Name"].",\n\n".
  	"Ihre Anmeldung für $domain unter dem Benutzernamen '".$_POST["UserID"]."' wurde registriert.\n".
  	"Ihr Passwort für die erste Anmeldung lautet: ".$pwd."\n\nBitte loggen Sie sich ein und ändern Sie dieses Passwort.\n\n".
  	"Viele Grüße\n\tThomas Krauss\n",
  	"From: \"Thomas Krauss\" <info@schwabegg.de>\nBCC: info@schwabegg.de\n".
	"Mime-Version: 1.0\nContent-type: text/plain; charset=utf-8")) $ok=1;
    else print "<p>Konnte E-Mail nicht an {$_POST["EMail"]} versenden.</p>\n";
  }
  return($ok);
}


function forget($type,$key) // 1==UserID, 2==EMail
{ global $db, $_POST;

  $key = preg_replace("/[^a-z0-9@_.]+/","",$key);
  $db->query("select ID,User,Title,Name,FirstName,EMail from sgusers where ".($type==1 ? "User":"EMail")."='$key' limit 1");
  if ($db->NumRows>0)
  { $db->getrecord();
    $id    = $db->Record["ID"];
    $user  = $db->Record["User"];
    $title = $db->Record["Title"];
    $name  = $db->Record["Name"];
    $fname = $db->Record["FirstName"];
    $email = $db->Record["EMail"];
    $pwd = getrandstring(8);
    $password = crypt($pwd,getrandstring(2));
    $db->query("update sgusers set Password='$password' where ID=$id limit 1");
    if ($db->Errno)
    { print "<p class=error>Fehler beim Abspeichern des neuen Passworts für $user: {$db->Error}</p>\n";
      return(0);
    } else 
    { print "<p>Versende Mail an {$email}</p>\n"; $_POST["EMail"]=$email;
      if (mail($email,"Ihre Anmeldung zu www.schwabegg.de",
  	"Sehr geehrte".($title=="Herr"?"r":"")." ".$title." ".$name.",\n\n".
  	"Sie haben Ihr Passwort fuer Ihre Anmeldung auf www.schwabegg.de unter dem Benutzernamen '$user' vergessen.\n".
  	"Ihr Passwort für die erste Anmeldung lautet: ".$pwd."\n\nBitte loggen Sie sich ein und ändern Sie dieses Passwort.\n\n".
  	"Viele Grüße\n\tThomas Krauss\n",
  	"From: \"Thomas Krauss\" <info@schwabegg.de>\nBCC: info@schwabegg.de\n")) return(1);
      else print "<p class=error>Konnte E-Mail nicht an $email versenden.</p>\n";
      return(0);
    }
  }
  print "<p class=error>Keinen Benutzer mit ".($type==1 ? "Loginname":"E-Mail")." '$key' gefunden.</p>\n";
  return(0);
}


function showForm()
{ global $_POST, $myname;

  $val1 = rand(10,99);
  $val2 = rand(10,99);
  $op   = rand(0,1);
  if ($op)
  { $CaptchaText = "<br>Was ist {$val1} plus {$val2}";
    $CaptchaVal  = "$op $val1 $val2";
  } else
  { if ($val2>$val1) { $h=$val2; $val2=$val1; $val1=$h; }
    $CaptchaText = "<br>Was ist {$val1} minus {$val2}";
    $CaptchaVal  = "$op $val1 $val2";
  }
  $_POST["Captcha"] = "";

  foreach (array("UserID","EMail","Anrede","Vorname","Name","Strasse","PLZ","Ort","Telefon","Code","Captcha","ForgetUserID","ForgetEMail") as $i)
    if (! isset($_POST[$i])) $_POST[$i]="";
  if ($_POST["Anrede"]=="") $_POST["Anrede"]="Herr";
  if ($_POST["Anrede"]=="Herr") { $ASelHerr=" SELECTED"; $ASelFrau=""; }
  else                          { $ASelFrau=" SELECTED"; $ASelHerr=""; }

  print <<<EOT
<form action={$myname} method=post>
<table>
<tr><td>Gewünschter Loginname:	</td><td><input type=text name="UserID" value="{$_POST["UserID"]}"  ></td></tr>
<tr><td>E-Mail:			</td><td><input type=text name="EMail"  value="{$_POST["EMail"]}"   ></td></tr>
<tr><td>Anrede:			</td><td><select name="Anrede" size=1><option value="Herr" {$ASelHerr}>Herr</option><option value="Frau" {$ASelFrau}>Frau</option></select></td></tr>
<tr><td>Vorname:		</td><td><input type=text name="Vorname" value="{$_POST["Vorname"]}"></td></tr>
<tr><td>Name:			</td><td><input type=text name="Name"    value="{$_POST["Name"]}"   ></td></tr>
<tr><td>Straße:			</td><td><input type=text name="Strasse" value="{$_POST["Strasse"]}"></td></tr>
<tr><td>PLZ, Ort:		</td><td><input type=text name="PLZ"     value="{$_POST["PLZ"]}"    size=5>&nbsp;<input
					        type=text name="Ort"     value="{$_POST["Ort"]}"    ></td></tr>
<tr><td>Telefon:		</td><td><input type=text name="Telefon" value="{$_POST["Telefon"]}"></td></tr>
<tr><td>Sicherheitsprüfung: {$CaptchaText}</td><td><input type=text name="Captcha" value="{$_POST["Captcha"]}"></td></tr>
<tr><td>			</td><td><input type=submit name="go" value="Anmelden"></td></tr>
</table>
<input type=hidden name="CaptchaVal" value="{$CaptchaVal}">
</form>
<hr>
<form action={$myname} method=post>
Ich habe mein Passwort vergessen! Mein Loginname ist
<input type=text name="ForgetUserID" value="{$_POST["ForgetUserID"]}">
<input type=submit name="go" value="Bitte neues Passwort zusenden">
</form>
<hr>
<form action={$myname} method=post>
Ich habe auch meinen Loginnamen vergessen! Meine EMail-Adresse ist
<input type=text name="ForgetEMail" value="{$_POST["ForgetEMail"]}">
<input type=submit name="go" value="Bitte neues Passwort zusenden">
</form>

EOT;
  // <tr><td>Freischaltcode:		</td><td><input type=text name="Code"    value="{$_POST["Code"]}"   ></td></tr>
}

?>
