"Maildomain" bei Registrierung vorgeben /beschränken

Limonade1

Grünschnabel
Ich möchte ein kleines Forum auf meiner HP anlegen im Rahmen meines Studiums.
Es soll zur Kommunikation mit Professoren und Studenten dienen.

Dazu möchte ich bei der Registrierung, die Registrierungsmöglichkeit der Emailadressen einschränken.
Im Klartext:
Nur Benutzer mit einer Emailadresse:
@stud.meinehochschule.de
und
@meinehochschule.de

sollen sich registrieren können.

Andere MAildomainregistrierungen sollen nicht möglich sein.


Kann mir da jemand weiterhelfen, wie ich das in meinem Skript anpassen kann?

PHP:
? Php  
/ / Signup.php  
gehören  'connect.php' ;  
gehören  'header.php' ;  
  
echo  '<h3> up </ h3> Registrieren' ;  
  
wenn ( $ _SERVER [ 'REQUEST_METHOD' ]! =  'POST' )  
{  
    / * Das Formular wurde noch nicht veröffentlicht, zeigen Sie es 
      beachten Sie, dass die action = "", wird die Form auf die gleiche Seite zu schreiben ist es auf * /  
    echo  '<form method = "post"  action = "" >  
        Benutzername: <input type = "text"  name = "Benutzername"  />  
        Kennwort: <input type = "password"  name = "user_pass" >  
        Kennwort wieder: <input type = "password"  name = "user_pass_check" >  
        E-mail: <input type = "email"  name = "user_email" >  
        <Input type = "Submit"  value = "Kategorie hinzufügen"  />  
     </ Form> '; 
} 
sonst 
{ 
    / * So, die Form wurde geschrieben, wir ' ll Prozess die Daten in drei Schritten:  
        1. Prüfen Sie die Daten  
        2. Lassen Sie den Benutzer füllen die falschen Felder ( wenn  notwendig)  
        3. Speichern Sie die Daten   
    * /  
    $ Errors  =  array ();  / * erklären das Array für die spätere Verwendung * /  
      
    wenn (isset ( $ _POST [ 'benutzername' ]))  
    {  
        / / Der Benutzername existiert  
        wenn (! ctype_alnum ( $ _POST [ 'benutzername' ]))  
        {  
            $ Errors [] =  'Der Benutzername darf nur Buchstaben und Ziffern.' ;  
        }  
        wenn ( strlen ( $ _POST [ 'benutzername' ])> 30)  
        {  
            $ Errors [] =  'Der Benutzername darf nicht länger als 30 Zeichen.' ;  
        }  
    }  
    sonst  
    {  
        $ Errors [] =  'Der Benutzername Feld darf nicht leer sein.' ;  
    }  
      
      
    wenn (isset ( $ _POST [ 'user_pass' ]))  
    {  
        wenn ( $ _POST [ 'user_pass' ]! =  $ _POST [ 'user_pass_check' ])  
        {  
            $ Errors [] =  'Die beiden Passwörter stimmen nicht überein.' ;  
        }  
    }  
    sonst  
    {  
        $ Errors [] =  'Das Passwort Feld darf nicht leer sein.' ;  
    }  
      
    wenn (! empty ( $ errors ))  / * Check für ein leeres Array, wenn es Fehler gibt, sie in diesem Array sind (beachten Sie das! Operator) * /  
    {  
        echo  'Uh-oh .. ein paar Felder nicht korrekt ausgefüllt .. '; 
        echo ' <ul> '; 
        foreach ($ errors as $ key => $ value) / * Spaziergang durch das Array, so dass alle Fehler angezeigt bekommen * / 
        { 
            echo ' <li> '. $ Value. ' </ li> '; / * dies erzeugt einen schönen Fehlerliste * / 
        } 
        echo ' </ ul> '; 
    } 
    sonst 
    { 
        / / Das Formular ohne gebucht wurde, so speichern Sie sie 
        / / Beachten Sie die Verwendung von mysql_real_escape_string, halten alles sicher! 
        / / Beachten Sie auch den SHA1-Hashes Funktion, die das Passwort 
        $ Sql ??= "INSERT INTO 
                    Benutzer (Benutzername, user_pass, user_email, user_date, user_level) 
                VALUES (' ". mysql_real_escape_string ( $ _POST [ 'benutzername' ]).  "' 
                       '"  . sha1 ( $ _POST [ 'user_pass' ]).  "' 
                       '"  . mysql_real_escape_string ( $ _POST [ 'user_email' ]).  "' 
                        NOW (), 
                        0) " ;  
                          
        $ Result  = mysql_query ( $ sql );  
        wenn (! $ result )  
        {  
            / / Etwas schief ging, zeigt die Fehler  
            echo  "Irgendetwas ist schiefgegangen  während  Registrierung. Bitte versuchen Sie es später noch einmal. '; 
            / / Echo mysql_error (); / / Debugging Zwecke, entfernen Sie bei Bedarf 
        } 
        sonst 
        { 
            echo ' erfolgreich registriert. Sie können nun <a href = "signin.php" Zeichen> in </ a>  und  veröffentlichen Sie! :-) '; 
        } 
    } 
} 
 
include ' footer.php ';  
?>
 
Zuletzt bearbeitet von einem Moderator:

Limonade1

Grünschnabel
Hier ist das Original:
PHP:
<?php  
//signup.php  
include 'connect.php';  
include 'header.php';  
  
echo '<h3>Sign up</h3>';  
  
if($_SERVER['REQUEST_METHOD'] != 'POST')  
{  
    /*the form hasn't been posted yet, display it 
      note that the action="" will cause the form to post to the same page it is on */  
    echo '<form method="post" action="">  
        Username: <input type="text" name="user_name" />  
        Password: <input type="password" name="user_pass">  
        Password again: <input type="password" name="user_pass_check">  
        E-mail: <input type="email" name="user_email">  
        <input type="submit" value="Add category" />  
     </form>'; 
} 
else 
{ 
    /* so, the form has been posted, we'll process the data in three steps:  
        1.  Check the data  
        2.  Let the user refill the wrong fields (if necessary)  
        3.  Save the data   
    */  
    $errors = array(); /* declare the array for later use */  
      
    if(isset($_POST['user_name']))  
    {  
        //the user name exists  
        if(!ctype_alnum($_POST['user_name']))  
        {  
            $errors[] = 'The username can only contain letters and digits.';  
        }  
        if(strlen($_POST['user_name']) > 30)  
        {  
            $errors[] = 'The username cannot be longer than 30 characters.';  
        }  
    }  
    else  
    {  
        $errors[] = 'The username field must not be empty.';  
    }  
      
      
    if(isset($_POST['user_pass']))  
    {  
        if($_POST['user_pass'] != $_POST['user_pass_check'])  
        {  
            $errors[] = 'The two passwords did not match.';  
        }  
    }  
    else  
    {  
        $errors[] = 'The password field cannot be empty.';  
    }  
      
    if(!empty($errors)) /*check for an empty array, if there are errors, they're in this array (note the ! operator)*/  
    {  
        echo 'Uh-oh.. a couple of fields are not filled in correctly..'; 
        echo '<ul>'; 
        foreach($errors as $key => $value) /* walk through the array so all the errors get displayed */ 
        { 
            echo '<li>' . $value . '</li>'; /* this generates a nice error list */ 
        } 
        echo '</ul>'; 
    } 
    else 
    { 
        //the form has been posted without, so save it 
        //notice the use of mysql_real_escape_string, keep everything safe! 
        //also notice the sha1 function which hashes the password 
        $sql = "INSERT INTO 
                    users(user_name, user_pass, user_email ,user_date, user_level) 
                VALUES('" . mysql_real_escape_string($_POST['user_name']) . "', 
                       '" . sha1($_POST['user_pass']) . "', 
                       '" . mysql_real_escape_string($_POST['user_email']) . "', 
                        NOW(), 
                        0)";  
                          
        $result = mysql_query($sql);  
        if(!$result)  
        {  
            //something went wrong, display the error  
            echo 'Something went wrong while registering. Please try again later.'; 
            //echo mysql_error(); //debugging purposes, uncomment when needed 
        } 
        else 
        { 
            echo 'Successfully registered. You can now <a href="signin.php">sign in</a> and start posting! :-)'; 
        } 
    } 
} 
 
include 'footer.php';  
?>
Quelle ist hier: http://net.tutsplus.com/tutorials/php/how-to-create-a-phpmysql-powered-forum-from-scratch/
 
Zuletzt bearbeitet von einem Moderator:

sheel

I love Asm
Na gut...und woran genau scheitert es jetzt?
Hast du etwas versucht und bekommst Fehler?
Hast du keine Ahnung, wo du anfangen sollst?
...
Verstehst du das, was du da aktuell hast, komplett oder besteht auch da noch Nachholbedarf?

Bitte Codetags selbst machen und den Bearbeitenbutton benutzen.

PS: Warum keine bestehende Forensoftware nutzen?
 

Limonade1

Grünschnabel
Also erst mal : ich studiere nicht Informatik. Ich habe davon auch keine Ahnung.
Ich setzte gerade mit Mühe dieses Forum auf. Das hat bisher auch ganz gut geklappt.
Was ich exakt möchte:
Momentan kann sich Hinz- und Kunz registrieren. Egal welche Maildomain. aol. web.de. intel.de etc

Ich möchte 2 Maildomainbedingngen zur Registrierung vorgeben, wo sich dann nur Leute registrieren können, deren Emailadresse nach dem @- Zeichen die entsprechende Domain haben.

Ich will also nicht, dass das Forum öffentlich ist und sich Hinz- und Kunz mit beliebigen Mailadressen registrieren können.
Sondern ich will festlegen: Du kannst dich nur registrieren wenn du eine mailadresse mit der Maildomain: name@stud.meinehochschule.de oder name@meinehochschule.de
Es sollen dann nur Registrierungen mit den beiden Maildomains möglich sein, weil esein Forum zur Kommunikation mit Professoren und anderen Studis werden soll.
 

sheel

I love Asm
Naja, dann:
Warum keine bestehende Forensoftware nutzen?

Wenn du keine Ahnung davon hast ist dein Weg der Schwerste.
(mal abgesehen davon, dass ein Forum, dass aus Codeteilen
von irgendwo zusammengestöpselt wird (die noch dazu zB. Sicherheitsprobleme haben)
auch für einen Profi nicht ratsam ist)

Es gibt schon einige gute, ausgereifte Forensysteme,
bei denen man auch leichte Anleitungen zur Installation hat
und viele Einstellungssachen einfach zusammenklicken kann,
statt zu Programmieren.

Die Sache mit der Domainbeschränkung ist dann (falls das Forum sowas nicht einstellbar anbietet)
verglichen zum Selbstmachen nur noch eine Kleinigkeit zu ändern.
Kein Grund, nur deswegen ein ganzes Forum selbst zu schreiben.

PS: Die Akzeptanz bei Studenten und Lehrern wird vermutlich sehr niedrig sein.
 

Limonade1

Grünschnabel
Warum keine fertige bisher? ..... Ich trau mich gar nicht es zu sagen.
Die Männer unter euch werden sich jetzt an den Kopf greifen und stöhnen, aber:
Ich bin eine Frau. Und mir hat das Forum von der Optik her gefallen.
Ich habe noch kein anderes gesehen, wo ich dachte: "Das paßt gut auf Deine HP!"

Das ist wie mit Autos und Frauen: :)

Bisher hat ja alles gut geklappt.

Kann mir denn jemand weiterhelfen, wie ich das mit der Maildomain anpassen kann?
 

alxy

Erfahrenes Mitglied
Also Quellcode durchn Google übersetzer zu jagen ist natürlich echt nen Brocken :D (Unabhängig davon ob man programmiert oder nicht).

Auch ich rate dir, eine fertige Software zu verwenden. Es gibt für die großen Forensysteme unendliche viele verschiedene Templates, wenn dir davon keins gefällt weiß ich auch nicht. (Oder du schreibst dir eben nur das template neu, wobei auch das ein gewisser Aufwand ist.)
 

alxy

Erfahrenes Mitglied
Mach halt ne zusätzliche Prüfung rein,die das prüft...

PHP:
if(isset($_POST['user_email']))   
    {   
        if(strpos($_POST['user_email'], '@meinehochschule.de') === false)   
        {   
            $errors[] = 'You are not allowed to register with that email';   
        }   
    }

Kurz hier im browser getippt natürlich...