Archiv verlassen und diese Seite im Standarddesign anzeigen : Login mit Hilfe von PHP und mySQL
Hallo zusammen!
Ich habe noch eine kleine Bitte :)
Ich habe auf meiner Seite ein Menü, und dort gibt es eine Hand voll Links, die nur angezeigt werden sollen, wenn ein Member eingelogged ist. Könnte mir da jmd mit dem Code helfen? Bisher habe ich noch nichts funktionierendes zusammen bekommen.
Danke schonmal im vorraus!
Du musst Gruppen einteilen zum beispiel Admin hat ne 2 und darf alles sehen und user hat die 1 und darf nicht alles sehen.
Ne, es geht mir nicht um Gruppen innerhalb der registrierten Member, sondern darum, dass alle Member zb einen Link sehen und nicht-Member nicht.
if member -> link wird gesehen
else nicht
so etwa :)
mrhappiness 28-08-2006, 09:40 if (logged_in()) {
echo 'geheim';
}
berserc_inc. 15-10-2007, 17:00 grüßt euch!
da ich mich ebenfalls auf besagtes Tutorial beziehen möchte, aber
keinen neuen thread dafür aufmachen wollte, häng ich mich hier unten
mal ran.
das tutorial habe ich auf meine seite angewandt und angepaßt was die
datenbank angeht. es läuft so gesehn alles ordentlich nur hab ich gerade
ein verständnisproblem, was den sicheren bereich angeht.
wenn login.php implementiert ist und es nach dem einloggen auf die
folgeseiten geht, steht doch am anfang immer ein include was auf die
logged_in.php verweist. in dieser wird doch geprüft, ob derjenige, der
sich auf dieser seite befindet eingeloggt ist oder nicht.
logged_in.php includiert widerum die sessionhelper in der die funktion
zur kontrolle steht.
gesetzt den fall, ich komme nicht über den regulären login-weg
auf eine geschützte seite sondern von außerhalb, zeigt mir die logged_in
zwar an, daß ich nicht eingeloggt bin, aber das wars auch schon - die
seite wird trotzdem angezeigt.
nun war mein gedankengang, in die logged_in über den header
befehl die login.php als ziel auszugeben, was natürlich nicht klappte,
weil ja die sessionhelper vorher schon geladen wurde und somit die
üblichen fehlermeldungen kommen.
besteht die möglichkeit irgendwo anders über den "header" weg automatisch
zurück zum login zu gelangen oder wird das im fall des tutorials kritisch?
auf eine js weiterleitung wollte ich verzichten, da das ja nur zieht wenn
es vom browser akzeptiert wird.
danke fürs roman lesen - ich freue mich über jeden hinweis.
da ich mich ebenfalls auf besagtes Tutorial beziehen möchte, aber keinen neuen thread dafür aufmachen wollte, häng ich mich hier unten mal ran. Erster Pluspunkt! Willkommen. :D
gesetzt den fall, ich komme nicht über den regulären login-weg auf eine geschützte seite sondern von außerhalb, zeigt mir die logged_in zwar an, daß ich nicht eingeloggt bin, aber das wars auch schon - die seite wird trotzdem angezeigt. Dann solltest du statt einer einfachen ausgabe wie echo "du bist nicht eingeloggt"; die Ausführung des Scriptes beenden. Z.B. mit die() oder exit;
nun war mein gedankengang, in die logged_in über den header befehl die login.php als ziel auszugeben, was natürlich nicht klappte, weil ja die sessionhelper vorher schon geladen wurde und somit die üblichen fehlermeldungen kommen. Nein, dass sollte nicht der Grund für die Fehlermeldung sein. Vielmehr wirst du vermutlich irgendwo eine Ausgabe machen, die dort natürlich nicht hingehört.
besteht die möglichkeit irgendwo anders über den "header" weg automatisch zurück zum login zu gelangen oder wird das im fall des tutorials kritisch?
auf eine js weiterleitung wollte ich verzichten, da das ja nur zieht wenn es vom browser akzeptiert wird. Versuche das Problem dort zu beheben, wo es auftritt. Eine andere (frühere) Stelle zum redirect gibt es ohnehin nicht.
danke fürs roman lesen - ich freue mich über jeden hinweis. Kurz und knapp hätte auch gereicht. ;) Aber viel schlimmer war es den Roman zu zitieren, weil du andauernd mitten im Satz nen zeilenumbruch reingehauen hast, den kein Mensch braucht... (Punktabzug!)
berserc_inc. 16-10-2007, 00:04 Gruß TobiaZ.
An die Stelle des echos mit "nicht eingeloggt" wollte ich den header
setzen - der bisher rummäkelte.
Der Hinweis mit dem die bzw. exit ist aber auch cool - ich kann ja
vorher die login.php includen und danach ein die/exit setzen.
So könnte ich die headergeschichte umgehen.
Ich habe die sessionhelper komplett übernommen und entsprechend
an die hiesigen gegebenheiten bei mir angepaßt. trotzdem meckert
header an der letzten zeile der sessionhelper rum, wo genau ein ?>
steht. meine vermutung ist: da ja jede funktion werte an die
"höheren" dateien zurückgibt, wird das ebenfalls von header
bemängelt.
Na gut - wenn die Meinung vertreten wird, daß die sessionhelper vom
grundsatz her vor einem headerbefehl stehen kann und header nicht
meckert, dann setz ich mich nochmal ran.
um den Punktabzug in Frage zu stellen, muß ich als Typograph
vehement Protest einlegen:
Zeilenlänge: Die optimale Zeilenlänge hängt davon ab, welcher
Typus von Lesetypografie (Willberg/Forssman 1997) für den Text
zutrifft: Für „lineares Lesen“ (schöngeistige Literatur) beträgt sie
60–70 Zeichen (Wortabstände eingeschlossen), für „informierendes
Lesen“ 40–50 Zeichen und für „differenzierendes Lesen“ bis zu 80
Zeichen (vgl. Willberg/Forssman 1997).
Habt Ihr Euch schonmal gefragt, warum das Eingabefeld (in das ich
diesen Text tippe) ohne manuelle Eingriffe in die Typo genau
70 Zeichen in einer Zeile faßt?
Genau... weil es angenehm zu lesen ist....
Warum pochen so ziemlich alle "Master" bei hier geposteten Code-
schnipseln auf Zeilenumbrüche im Quelltext?
Genau... weil es angenehm zu lesen ist.... :)
Beides hat einen tieferen Sinn - und irgendeine höhere Gewalt fand
das cool und meinte, daß es Menschen gibt, die das "brauchen".
Dank Dir für die schnelle Antwort und angenehmen Abend.
berserc_inc.
tontechniker 16-10-2007, 00:33 trotzdem meckert header an der letzten zeile der sessionhelper rum, wo genau ein ?> steht. Fehler gibt es nur wenn vor header / session_start Ausgaben irgendeiner Art gemacht wurden. Dazu gehört HTML genauso wie Leerzeichen außerhalb von PHP Tags. Auch UTF-8 Header können Probleme machen, dazu einfach die Suche konsultieren. Header selber (wie von session_start gehören nicht dazu.um den Punktabzug in Frage zu stellen, muß ich als Typograph Wir hattten diese Disskussion schon einmal (http://php-resource.de/forum/showthread.php?s=&threadid=86256) und ich möchte in diesem Zusammenhang nochmals betonen das es für Menschen die schnell lesen können wesentlich einfacher ist längere Zeilen zu lesen. So hat man einen besseren Überblick und kann den Text schneller überfliegen, weil die nächste Zeile zum Beispiel schon bei der Rückbewegung der Augen gelesen werden kann. Wem das nicht gefällt empfehle ich das Browserfenster kleiner zu ziehen. Deine typografischen Einwände sind sicherlich berechtigt, sollten aber auf den Printbereich beschränkt werden. Wenn ich eine DIN A4 Seite nehme und auf den für Text freien Bereich hier im Forum über meinen Bildschirm lege wird die Breite fast ausgefüllt.Warum pochen so ziemlich alle "Master" bei hier geposteten Codeschnipseln auf Zeilenumbrüche im Quelltext? Genau... weil es angenehm zu lesen ist.... Und auch das ist schlichtweg falsch. Text in [ CODE ] und [ PHP ] Tags wird hier nicht umgebrochen um evtl. Fehler die dadurch im Quelltext entstehen zu vermeiden. Der Benutzer wird daher aufgefordert auf eine normale Bildschirmbreite von 1024 Pixeln Rücksicht zu nehmen. Das hat mit Leserlichkeit an sich überhaupt nichts zutun.
berserc_inc. 16-10-2007, 12:47 Tontechniker - DANKE!
der hinweis auf das penetrante leerzeichen war der ausschlaggebende punkt - ich hab das ding hinter der klammer nicht bemerkt und dauernd auf den kompletten code gestarrt ohne was zu finden. hab schon selber an mir und meinen rudimentären programmierkenntnissen gezweifelt :-(
;-) ich laß es mal bei dem spaß und will kein böses blut bzgl typogeschichten - ich muß nur grinsen: allein die aussage, daß eine anpassung auf 1024 nicht im geringsten etwas mit leserlichkeit zu tun hat, sollte in ruhe bei einem bier nochmal überdacht werden - wenn man zwei ecken weiter denkt, wird man feststellen, daß es sehr wohl was mit leserlichkeit zu tun hat - nicht zuletzt weil quellcode "in schön" bei der fehlersuche und auch anderem kram einfach leckerer ist.
nettes thema - falsches forum!
vielen dank euch beiden für die schnelle und kompetente hilfe!
berserc_inc.
Ritschie 01-02-2009, 17:22 Huhu zusammen.
Auch ich habe ein "kleines Problem mit dem Tutorial von Mrhappyness.
Um dem Forum einen neuen Post zu ersparen füge ich mich hier gleich mal hinzu, und hoffe ihr könnt mir weiterhelfen.
Und zwar:
Ich habe das Tut bis auf ein paar Layoutveränderungen übernommen.
Dazu habe ich eine Regestrierung gebastelt, welche an sich auch funktioniert.
Die Regestrierung nimmt die Daten auf und sendet sie in die DB wo sie unter einer neuen ID gespeichert werden.
Jetzt kommt der Fehler den ich nicht zu definieren im stande bin.
Ich gehe zurück auf die login.php trage dort die Daten ein und drücke den Button.
Jedoch anstatt die Eingabe zu bestätigen sagt er jedes mal das die Daten ungültig sind...
Das Passwort wurde, genauso wie das Testpasswort von mrhappyness, auf der Regestrationsseite mit md5 verschlüsselt.
Könnt ihr mir helfen?
Codes poste ich hier noch keine da ich nicht wirklich weis was in diesem Fall relevant ist, und euch nicht unnötiger leserei aussetzen möchte *G*.
Ich werde diese natürlich nachtragen sobald ihr mir sagt wo ich anfangen kann zu suchen.
Grüsse Richard
Fange damit an, dass du in dem Script, welches die Formulardaten verarbeiten soll, Kontrollausgaben dieser machst (var_dump() bietet sich an).
Und stelle das error_reporting auf E_ALL (und display_errors auf on), sofern es das nicht bereits ist.
Ritschie 01-02-2009, 18:21 vardup gibt folgendes aus:
bool(false)
weshalb weis ich nicht....
betroffene code teile sind:
aus der login.php
Zeile 29 - 36
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
login($userid);
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
und aus der sessionhelpers.inc.php
Zeile 8 - 22
function check_user($name, $pass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['UserId'];
}
else
return false;
}
Original geschrieben von Ritschie
vardup gibt folgendes aus:
bool(false)
Die Funktion heisst var_dump.
Und var_dump von was soll false sein?
Ritschie 01-02-2009, 18:36 Entschuldigung
Tippfehler meinerseits^^
var_dump von $userid ist false, wenn ich mich einloggen versuche..
dies war meinerseits der effektivste wert welcher zur überprüfung stand
sorry das ich mich ein wenig ungeschickt anstelle ich bin noch nicht so weit mit meinen PhP kenntnissen und eigentlich noch am lernen^^
Ich sagte, dass du zuallererst die per Formular uebergebenen Werte kontrollieren sollst - ob diese einen Erwartungen entsprechen.
Ritschie 01-02-2009, 18:46 Ok bevor ich wieder etwas falsch verstehe aus unzurechendem Wissen über diese Sprache.
Du meinst ich soll schaun ob:
$_POST[username]
$_POST[userpass]
das ist was ich erwarte das es ist?
wenn nicht, würde ich dich bitten, mir anhand des Codes ein ungefähres anzeichen zu geben was du meinst.
Danke Richard
Ja, was denn sonst?
Es heisst uebrigens $_POST['username'], sofern du nicht irgendwo eine Konstante mit dem Namen username definiert hast.
Ritschie 01-02-2009, 19:00 OK
habe dies mit folgendem Ergebniss überprüft:
Ihre Anmeldedaten waren nicht korrekt!string(7) "Richard" string(9) "[Password]"
Die Daten stimmen mit jenen welche ich in der Regestration verwendet habe überein.
Wenn ich eine Vermutung loswerden dürfte:
Kann es an der Verschlüsselung liegen? kann man md5 auf mehrere Arten ver- bzw entschlüsseln?
Also ich meine dies so das der Code welchen ich für die Reg verwende es auf eine Variante verschlüsselt und der Code welcher Vergleicht es auf eine andere Art entschlüsselt?
kenn mich mit dem ganzen nicht so wirklich aus wie man merkt^^
Nein, MD5 ist MD5. Gleiche Eingabedaten, gleiche Ausgabe.
Dann waere als naechstes zu Pruefen, ob der Fehler im Script, oder in den Daten liegt.
Mache also eine Kontrollausgabe der zusammengesetzten SELECT-Abfrage ($sql), und teste sie per Copy&Paste ueber phpMyAdmin o.ae.
Ritschie 01-02-2009, 19:12 var_dump ($sql)
gibt null aus egal ob Testuser oder von mir angelegter user.
Was daran soll ich in php Myadmin überprüfen?
Jetzt denk aber bitte mal wenigstens ein bisschen selber mit ...
$sql wird in der Funktion check_user mit einem Wert befuellt. Dass du die Kontrollausgabe also direkt dahinter setzt, und nicht irgendwo anders hin, sollte doch auch einem Newbee einleuchten.
Ritschie 01-02-2009, 19:32 danke für den gedanklichen Anstoss^^
Hab den Fehler nun localisiert^^.
Und zwar wenn ich das Passwort über meine Regestration auf md5 verschlüssele kommt eine ander kombination von buchstaben und Zahlen als wenn das der Code der für die Überprüfung da ist das PW in md5 umwandelt.
Beispiel:
Passwort = richi
In der Datenbank wird es als: d41d8cd98f00b204e9800998ecf8427e gespeichert.
Die überprüfung jedoch prüft auf: 0456afab2a3c87fe92961cf0bfe8ccde
Jetzt müsste ich nur noch wissen warum^^
Der Fehler müsste hier iwo versteckt sein:
if ($submit == "Absenden") {
if ($username !== '' && $userpas !== '' && $usermail !== '') {
$db=mysql_connect('localhost' ,'generaljack_03' ,'richi666') or die('Could not connectet: '.mysql_error());
mysql_select_db('generaljack_03') or die('Could not select database');
$user=$username;
$pass=$userpas;
$email=$usermail;
---->$sql = "INSERT INTO `users` (`UserName`, `UserPass`, `UserMail`) VALUES ('$user', '".md5($pass)."', '$email')";
$exe = mysql_query($sql);
#echo($exe);
#echo($sql);
}
else {
echo("<font color='#FFR0000'>Bitte alle ANGABEN ausfüen!</font><br/>");
};
Original geschrieben von Ritschie
In der Datenbank wird es als: d41d8cd98f00b204e9800998ecf8427e gespeichert.
Das entspricht MD5 eines Leerstrings.
Also enthaelt die Variable, die du an der Stelle in deine Query einbaust, wohl nichts.
Also wiederum - Kontrollausgaben machen ...
Ritschie 01-02-2009, 19:52 Hab den Fehler.
$pass wurde nicht richtig definiert
hab in den werten jetzt statt $pass, $userpass eingetragen jetzt funkts.
Danke für die Hilfe wahsaga.
grüsse Jack
Hallo,
ich versucht genau das wie Ritschie zu machen: Eine Registrierung für dieses (http://www.php-resource.de/tutorials/tutorial,38,Login-mit-Hilfe-von-PHP-und-mySQL,1.htm) Tutorial. Weil ich aber sehr wenig Ahnung von php hab funzt bei mir gar nix. Kann mir vielleicht jemand den kompletten Code posten?
Vielen Dank für die Hilfe!
@sebbb: Wenn du ein fertiges Script haben willst, dann such dir gezielt eins.
Tutorials sind zum Lernen gedacht. Wer sich aber gleich auf wenig Ahnung "beruft" - anstatt an diesem Zustand was zu ändern, in dem er bspw. erst mal ein Grundlagen-Tutorial (wie bspw. dieses (http://tut.php-quake.net/de/)) durcharbeitet - bei dem ist wenig Lernwille erkennbar.
Hi wahsaga,
vielen dank für deine fachmännische Beurteilung meines Lernverhaltens.
Ich lerne am besten, wenn ich bereits Fertiggestelltes studieren und nachzuvollziehen kann. Ansonsten hätte ich mir auch nicht die Mühe gemacht, das Tutorial zu lesen und an meine Zwecke anzupassen. Da Ritschie offensichtlich schon die passende Lösung hat, bitte ich nochmals darum (oder um Hilfe statt Belehrungen).
Das Forum agiert nach dem Motto "Hilfe zur Selbsthilfe". Wenn du nichts tutst, kann auch keiner helfen :teach:
ok, ich hab die ganze zeit schon probiert, es klappte nicht und dann hab ich hier ins forum geschrieben. Hier ist mein Stand:
<?php
echo '
<form method="post" action="register.php">
Benutzername:<br /><input name="username" type="text"><br>
Passwort:<br /><input name="userpass" type="password" id="userpass"></p>
Passwort wiederholen:<br /><input name="userpass2" type="password" id="userpass2"></p>
E-Mail:<br /><input name="usermail" type="text" id="usermail"></p>
<input name="register" type="submit" value="Benutzer anlegen">
</form>
';
if(!isset($_POST['username']) || $_POST['username'] == ""){
echo 'Bitte einen Benutzernamen angeben!';}
if(!isset($_POST['usermail']) || $_POST['usermail'] == ""){
echo 'Bitte eine E-Mailadresse angeben!';}
if(!isset($_POST['userpass']) || $_POST['userpass'] == ""){
echo 'Bitte ein Passwort angeben!';}
if($_POST['userpass'] != $_POST['userpass2']){
echo 'Passwörter stimmen nicht überein!';}
else{
gucken ob username noch frei ist
dann in datenbank schreiben
dann entweder Erfolg!
oder Es trat ein Fehler auf!
}
?>
Beispielcode bitte mit [php]-Tags formatieren, das erhöht die Lesbarkeit.
Und dann bitte lernen, brauchbare Problembeschreibungen zu verfassen - "klappt nicht" ist keine solche.
ok, nächster versuch:
<?php
echo '
<form method="post" action="register.php">
Benutzername:<br /><input name="username" type="text"><br>
Passwort:<br /><input name="userpass" type="password" id="userpass"></p>
Passwort wiederholen:<br /><input name="userpass2" type="password" id="userpass2"></p>
E-Mail:<br /><input name="usermail" type="text" id="usermail"></p>
<input name="register" type="submit" value="Benutzer anlegen">
</form>
';
if(!isset($_POST['username']) || $_POST['username'] == ""){
echo 'Bitte einen Benutzernamen angeben!';}
if(!isset($_POST['usermail']) || $_POST['usermail'] == ""){
echo 'Bitte eine E-Mailadresse angeben!';}
if(!isset($_POST['userpass']) || $_POST['userpass'] == ""){
echo 'Bitte ein Passwort angeben!';}
if($_POST['userpass'] != $_POST['userpass2']){
echo 'Passwörter stimmen nicht überein!';}
else{
gucken ob username noch frei ist
dann in datenbank schreiben
dann entweder Erfolg!
oder Es trat ein Fehler auf!
}
?>
Das ist der Code. Das Problem ist dieser Teil:
else{
gucken ob username noch frei ist
dann in datenbank schreiben
dann entweder Erfolg!
oder Es trat ein Fehler auf!
}
Keine Ahnung wie das gehn soll.
onemorenerd 13-05-2009, 00:04 gucken ob username noch frei ist -> SELECT und schauen ob es einen Treffer gibt.
in datenbank schreiben -> INSERT
dann entweder Erfolg! -> wenn INSERT geklappt hat
oder Es trat ein Fehler auf! -> wenn INSERT nicht geklappt hat
Falls die Spalte mit den Usernamen unique ist, kannst du auf das SELECT verzichten. Das INSERT wird fehlschlagen, wenn der Username schon vergeben ist (wegen uniqueness kann der selbe Name nicht nochmal eingefügt werden).
else{
gucken ob username noch frei ist
dann in datenbank schreiben
dann entweder Erfolg!
oder Es trat ein Fehler auf!
}
Keine Ahnung wie das gehn soll.
Kucken, ob der Username noch frei ist - könnte man mit einem SELECT machen. Fragen, ob ein Datensatz mit username = eingabe existiert, Ergebnis auswerten.
Geht allerdings auch einfacher - in dem man die Spalte in der DB-Tabelle gleich als unique definiert. Dann schlägt der INSERT einfach fehl, wenn es schon einen Datensatz mit diesem Namen gibt - und auch diese Ursache findet man heraus, in dem man den Fehlercode analysiert, dann kann man dem Nutzer entsprechende Rückmeldung geben.
Danke für die Hilfe. Meint ihr etwas in der Art?
else{
$username = $_POST['username'];
$userpass = md5($_POST['userpass']);
$usermail = $_POST['usermail'];
if($insert = @mysql_query("INSERT INTO USERS SET UserName = '$username', UserPass = '$userpass', UserMail = '$usermail'")) {
echo 'Erfolg!';}
else{
echo 'Fehler!';}
}
Wenn ichs versuch sagt er "Fehler". Die Spalte ist aber unique.
PHP-Desaster 13-05-2009, 21:29 Stichwort: SQL-Injection
Das @ raus, Kontrollausgabe des generierten Query-Strings machen, und vor allem, mysql_error nutzen.
Sowas steht übrigens auch in guten Grundlagen-Tutorials - also solltest du deine Weigerung, ein solches mal durchzuarbeiten, wohl mal aufgeben.
Ok, vielen Dank. Jetzt klappts. Das @ war zu viel.
Ich hab aber noch eine Frage: Bei meiner gesicherten Seite benutze ich folgendes:
if (!logged_in())
echo '<meta http-equiv="refresh" content="0; URL=login.php">'
Wenn man diese Seite direkt über die URL aufruft und nicht eingeloggt ist, wird man zwar weitergeleitet aber erst nach kurzem Warten, so dass man schon einen Blick auf die Seite werfen kann.
header("location:") kann ich nicht benutzen, weil die sessionhelpers.inc.php schon die Headerangaben gesendet hat.
Gibt es noch eine andere Möglichkeit um auf die Login-Seite zu linken falls man nicht eingeloggt ist?
Wenn man diese Seite direkt über die URL aufruft und nicht eingeloggt ist, wird man zwar weitergeleitet aber erst nach kurzem Warten, so dass man schon einen Blick auf die Seite werfen kann.
Dann gebe "die Seite" in so einem Falle nicht aus.
Gibt es noch eine andere Möglichkeit um auf die Login-Seite zu linken falls man nicht eingeloggt ist?
Wozu überhaupt weiterleiten?
Das Loginformular kann an der Stelle angezeigt werden, an der sich der Nutzer gerade befindet.
if(!eingeloggt) {
// login-formular ausgeben
}
else {
// seiteninhalt
}
Natürlich muss der Rest der Seite nicht komplett per PHP ausgegeben werden - zum einen gibt es die Möglichkeit, den PHP-Bereich zu verlassen, und zum anderen täte es auch ein Beenden des Scriptes nach der Ausgabe des Formulars.
header("location:") kann ich nicht benutzen, weil die sessionhelpers.inc.php schon die Headerangaben gesendet hat.
Das ist doch Unsinn!
Wieso sollten SessionHeader eine Weiterleitung verhinden?
Die Sorgen liegen ehr an sowas:
<?php
echo '
<form method="post" action="register.php">
Benutzername:<br /><input name="username" type="text"><br>
Passwort:<br /><input name="userpass" type="password" id="userpass"></p>
Passwort wiederholen:<br /><input name="userpass2" type="password" id="userpass2"></p>
E-Mail:<br /><input name="usermail" type="text" id="usermail"></p>
<input name="register" type="submit" value="Benutzer anlegen">
</form>
';
if(!isset($_POST['username']) || $_POST['username'] == ""){
echo 'Bitte einen Benutzernamen angeben!';}
if(!isset($_POST['usermail']) || $_POST['usermail'] == ""){
echo 'Bitte eine E-Mailadresse angeben!';}
if(!isset($_POST['userpass']) || $_POST['userpass'] == ""){
echo 'Bitte ein Passwort angeben!';}
if($_POST['userpass'] != $_POST['userpass2']){
echo 'Passwörter stimmen nicht überein!';}
else{
gucken ob username noch frei ist
dann in datenbank schreiben
dann entweder Erfolg!
oder Es trat ein Fehler auf!
}
?>
Ein ganz klarer Verstoß gegen das EVA Prinzip (http://de.wikipedia.org/wiki/EVA-Prinzip)!!
V und A vertauscht.
Auf die Idee bin ich gar nicht gekommen. Jetzt ist es auf jeden Fall besser. Danke!
|
|