Registrierung mit Domainvorgabe

Fielu

Mitglied
Ich versuche momentan ein Registrierungsformular zu erstellen bei dem die Domain der Emailadresse schon vorgegeben ist, heisst ich gebe z.b die domain @hallo123.de (neuer user braucht dann nur noch den benutzernamen seiner emailadresse eingeben) vor, so muss der neue User im Besitz einer Emailadresse von http://www.hallo123.de sein. Man soll aus mehreren Domains (Scroll-liste) auswählen können.

Also:
Emailadresse:
.......@hallo123.de
gutentag1.com
gummibaerchensuchtbesitzer.net

Es sollen sich nur leute anmelden dürfen, die eine Emailadresse dieser Domains haben.

Mein bisheriger Code lautet:
<?php
$status = "";
include_once "function.inc.php";
include_once "zugriff.inc.php";
include "regicheck.inc.php";//Anmelden
include "unregister.inc.php";//Abmelden
if (!empty($status)) {
echo "<p><strong>$status</strong></p>";
}
echo <<<FORMULAR
<form action="register.php" method="post">
Benutzername wählen:<br>
<input type="text" name="user" maxlength="25"><br>
Passwort wählen:<br>
<input type="password" name="pw1" maxlength="25"><br>
Passwort wiederholen:<br>
<input type="password" name="pw2" maxlength="25"><br>
Emailadresse:<br>
<input type="text" name="email"><br>
<input type="submit" value="Registrieren">
<input type="submit" value="Oder wieder austragen?"
name="unregister">
</form>
FORMULAR;
?>


Kann mir da jemand weiterhelfen? Ich gebe mir zwar alle Mühe aber über Nacht lernt man PHP ja nun auch nicht.

VG
 
So genau ist jetzt das Problem?
Wenn ich deinen Quellcode richtig sehe, dann fehlt dir diese Domainauswahl. Das ist 0815 HTML, schau dir einfach an, wie man "select" verwendet.
 
Sorry ich hab jetzt erst gesehen, dass ich den falschen Code kopiert habe.
Mein Problem besteht darin, dass ich nicht weiß wie man die Auswahl mit in die Emailadresse übernimmt.
Ich kann soweit ich weiß die Eingabemöglichkeiten definieren und das @ nicht zulassen.
mein Problem ist, wie ich die beiden Sachen dann zusammen in die Datenbank bringe als komplette Emailadresse. den teil vor dem @-zeichen und dann die auswahl.

Bisher habe ich es so, dies ist aber noch ohne Zusammenführung:

$muster2= "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (preg_match($muster2, $email) == 0) {
$status .= "Das ist keine gültige Emailadresse.<br>";
}
 
mein Problem ist, wie ich die beiden Sachen dann zusammen in die Datenbank bringe als komplette Emailadresse. den teil vor dem @-zeichen und dann die auswahl.

Also in PHP kannst du Strings mit einem Punkt zusammenfügen. Etwa so:

Code:
$domain = $_POST['domain'];
$user = $_POST['user'];

$email = $domain . "@" . $user;
 
ich habe das versucht jetzt mal umzusetzen kann aber noch nicht sagen ob es geht weil ich noch eine andere fehlermeldung bekomme, den fehler aber nicht finde. ich poste mal meinen code und hoffe auf anregungen bzw. konstruktive kritik.

die fehlermeldung die ich bekomme lautet:
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\login\regicheck.inc.php on line 55

PHP:
<?php
if (empty($_POST['unregister']) && !empty($_POST['user'])) {
$user = trim($_POST['user']);
$pw1 = trim($_POST['pw1']);
$pw2 = trim($_POST['pw2']);
$emaileingabe = trim($_POST['emaileingabe']);
$domain = ($_POST['domain']);
$email = $emaileingabe . "@" . $domain;
$muster1= "/^[a-zA-Z0-9-_.](5,15)$/";
if (preg_match($muster1, $user) == 0){
$status .= "Das ist kein gültiger Benutzername!<br>";
}
if (preg_match($muster1, $pw1) == 0){
$status .= "Das ist kein gültiges Passwort.<br>";
}
if ($pw1 != $pw2){
$status .= "Die Passworte stimmen nicht überein!<br>";
}
$muster2= "/^[a-zA-Z0-9-_.][a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (preg_match($muster2, $email) == 0) {
$status .= "Das ist keine gültige Emailadresse.<br>";
}
if (empty($status)) {
$sql_usercheck = "SELECT * FROM userlogin WHERE user='$user'";
$result = mysql_query($sql_usercheck);
if (mysql_num_rows($result) == 1) {
$status .= "Nutzername schon vergeben!<br>";
}
$pw =md5($pw1);
$sql_pwcheck = "SELECT * FROM userlogin WHERE pw='$pw'";
$result = mysql_query($sql_pwcheck);
if (mysql_num_rows($result) == 1) {
$status .= "Bitte wählen Sie ein anderes Passwort!<br>";
}
if (empty($status)) {
$sql_emailcheck = "SELECT * FROM userlogin WHERE email='$email'";
$result = mysql_query($sql_emailcheck);
if (mysql_num_rows($result) == 1) {
$status .= "Diese Emailadresse ist bereits registriert! Bitte wählen Sie eine andere Emailadresse.<br>";
}
if (empty($status)) {
$sql_putin = "INSERT INTO userlogin
(user, pw, email, member, timestamp)
VALUES ('$user', MD5('$pw1'), '$email', 0, NOW())";
if (mysql_query($sql_putin) && mysql_affected_rows() > 0) { 
$status = "Registrierung erfolgreich!<br>";
$status .= actimail($user, $email);
} else {
$status = "Registrierung nicht erfolgreich!<br>";
}
}
}
?>
 
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\login\regicheck.inc.php on line 55
Das bedeutet das du mit den geschweiften Klammern durcheinander gekommen bist.
Allerdings sollte das nur noch sehr selten auftreten, wenn du deinen Code ordentlich einrückst.
(Dazu gibt es genügend Beispiele, wie man Quellcode formatiert. ;))

Weiterhin solltest du die Validierung der E-Mail, bzw. der Domain nicht brauchen, da lediglich der Benutzername variabel ist. Die Domains kommen ja aus deiner Datenbank und da weisst du ja, das sie valide sind.
 
hallo deluxe,
danke dann mache ich mich mal auf klammersuche.
ich glaube ich brauche die validierung der email doch weil benutzername ist in meinem fall nicht gleich der teil der vor dem @-zeichen eingetragen wwird.
es soll ja aus einer liste von domains ausgewählt werden und es kann ja durchaus vorkommen, dass zwei user trotz unterschiedlicher emailadressen vor dem@zeichen das gleiche stehen haben: post@3123123dadssd.de und post@hallo123.de einen benutzernamen vergebe ich extra (wenn es denn klappt). bisher habe ich die domains nur in die selectliste eingegeben.
liege ich damit falsch?
und unabhängig mal davon wie ich das mit der emailzusammenführung gemacht habe ist das so richtig wenn ich das = noch rausnehme?
 
Zuletzt bearbeitet:
Zurück