• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular

Q-bert

Neues Mitglied
Hallo. Stellt euch mal vor ihr habt ein Login system . Man muss seine E-MAIL Adresse und Password eingeben. Man verlinkt es mit dem Befehl "Action" in dem Input Tag selber . Ich habe aber jetzt mehrere Seiten. Und nur Leute mit bestimmter E-Mail kommen in jeweilige Seite rein . Wie bekommen ich es hin , dass meine Seite in der ich will , die ich in "Action " eingebe, sich ändert ?
Zum Beispiel: Die Leute mit [email protected] kommen in die Seite A Und die mit [email protected] in die Seite B ?
Mache ich das in PHP oder in Javascript und wie ?
Ich bedanke mich voraus :)
 
Da es sich ja um ein login-system handelt, würde ich zu PHP raten.

Beim login wird ja eine Abfrage der Datenbank gemacht und auf entsprechende Seite weitergeleitet. BEVOR du auf entsprechende Seite weiterleitest, führe doch einfach eine if-Abfrage durch. Ich weiß jetzt nicht genau, wie du das gemanaged hast. Haben die "besonderen" E-Mail Adressen einen bestimmten Aufbau? Also z.B. [email protected], [email protected]?
Wie auch immer, eine if-Abfrage ist hier Sinnvoll! Du kannst dann z.B eine Liste an E-Mails und (hoffentlich gesalteten und gehashten) Passwörtern in eine 2. Tabelle eintragen.

if(E-Mail in Datenbank2) {
Blabla
} else if (E-Mail in Datenbank1){
}
 
Okay ich erkläre es genauer . Das ist doch erstmal klar , dass man beim Formular angeben muss wohin die Seite weiter geht . Z.B <Form Action = "seite.php" method = "post oder get" >.
Jetzt möchte ich aber , dass vorher geprüft wird , welche E-MAIL Adresse angegeben wurde. Ich weiß das man es mit if machen muss . Ich weiß aber nicht wie ich Action = "seite.php" ändern kann . Z.B wenn E-MAIL ist [email protected] dann Action = "lolseite.php" sonst wenn E-Mail ist [email protected] dann Action = "boomseite.php"
 
Und ja . Die E-Mail's haben einen bestimmten Ausbau . Die Seite die ich machen möchte soll für meine schule sein . Die ganze E-MAIL's fangen mit der Name der Klasse an . Z.b HY702@usw. Ich möchte , dass nicht einer aus der Klasse hh503 in die Seite von hy702 kommt .
 
Oh ich Ahne eine komplette Fehlstrukturierung des Login Systems :eek:

Frage #1:
arbeitest du mit Datenbanken (MySQL etc.)?

Frage #2:
Erkläre bitte genau, wie du das Login-System versuchst aufzubauen (Schicke doch einfach mal das PHP-Script, welches für die Abfrage der Anmelededaten verantwortlich ist rein).

Frage #3:
Und ja . Die E-Mail's haben einen bestimmten Ausbau . Die Seite die ich machen möchte soll für meine schule sein . Die ganze E-MAIL's fangen mit der Name der Klasse an . Z.b HY702@usw. Ich möchte , dass nicht einer aus der Klasse hh503 in die Seite von hy702 kommt .
Wie professionell soll das denn alles sein (Da es hier ja um ein Schulprojekt geht)?
Soll es denn ein wirklich Bombenfestes Anmeldesystem sein oder reicht (theoretisch) anstatt einer Datenbank auch Textdateien (auch wenn ich davon abrate (soll nur Auskunft geben)).
 
Die Datenbank ist in der schule schon fertig . Ich vermute es ist eine MySQL Datenbank. Die Abfrage wir von der Datenbank gemacht . Es muss eine ganz normales Login system sein . Wenn man die E-Mail angibt , dann soll es eine Abfrage von der Datenbank machen . Ich weiß wie es geht . Wenn die E-Mail Adresse existiert , dann soll es gucken wie die E-MAIL anfängt . Wenn mit hy603 dann soll er in die Seite von der Klasse hy603 gehen . Das ist mein Problem . Den Rest kriege selbst hin .
 
Drücke ich mich irgendwie unverständlich aus oder was verstehen sie nicht ?
Es sind vier Schritte .
1)Abfrage von der Datenbank
2) wenn existiert
3)dann prüfen wie es anfängt
4)und zu jeweiligen Seite weiterleiten (in hier liegt die Schwierigkeit . Denn wie mache ich diese automatische Erkennung und Weiterleitung )
 
Na dann hoffe ich mal, dass ich es jetzt verstanden habe.

Lese mit PHP die ersten Buchstaben aus (Ich glaube es sind immer 5 richtig?), sodass aus [email protected] dann HY702 wird. Das setzt du dann als Variable (z.B. $klassenname).
Jetzt musst du nur noch bei action statt action="seite.php" dann action="<?php echo="$klassenname"; ?>seite.php"> eintragen (die index.html-Endung muss dann natürlich in index.php umgewandelt werden).

Hier nochmal eben mein Tipp zum Aufbau (also eine andere Variante):
index.html:
HTML:
<form action="anmelden.php" method="POST">
   <input name="e-mail" id="e-mail">
</form>

anmelden.php:
PHP:
$email = $_POST['e-mail'];

$klassenname = //Hier dann die ersten 5 Buchstaben auslesen und als String in eine Variable packen;

//Hier dann die Datenbankabfrage
//und dann die Weiterleitung auf {$klassenname}seite.php
 
Zuletzt bearbeitet:
Okay vielen dank . Sie haben es richtig verstanden . Nur den letzten Punkt habe ich nicht ganz verstanden . Was meinen sie bei dem Kommentar "hier dann die Weiterleitung " ? Wie soll das aussehen .
Vielen Dank für den Code Beispiel
 
Also du machst eine Datenbankabfrage, ob Passwort und E-Mail Adresse übereinstimmten.

PHP:
if (strpos($row->email, $email) !== false && $rowzeile->passwort === $hashed) {
//Wenn die Anmeldedaten richtig sind, dann...      

       //SESSION-Variable setzen (falls du sowas überhaupt machen musst (musst du mal deinen Lehrer fragen))
        $_SESSION["klassenname"] = $klassenname;    
 
        //Hier die Weiterleitung
       header('Location: path/to/{klassenname}seite.php'
    }
 
Sie haben alles vollständig beantwortet . Vielen Dank . Ist es sinnvoll , dass ich mein fertigen Code hier rein schicke ? Damit andere sich das angucken können ?
 
PHP:
if (strpos($row->email, $email) !== false
Dieser Teil ist falsch, denn es soll überprüft werden, ob der Anfang der Mail-Adresse passt. Hier wird aber geprüft, ob die Zeichenkette irgendwo vorkommt.

header() erwartet eine vollständige URL und keinen relativen Pfad. Man hat es sonst nur dem Browser zu verdanken, dass es trotzdem funktioniert.
 
Zurück
Oben