Du solltest nicht den Primärschlüssel auf eine ID setzen, sonst kann es Dir passieren, dass zwei User den gleichen Loginname verwenden. Setze lieber den Primärschlüssel auf den Loginnamen, dann kann es nur einmalige Logins geben!
Wenn ein Benutzer sich korrekt angemeldet hat, liest Du einfach all seine Daten aus und schreibst Sie in eine Session. Ein gutes Tutorial findest Du unter:
http://www.zend.com/zend/tut/session.php
Aber im Internet gibt es auch viele andere Hinweise dazu (auch hier im Forum). Du trägst dann die SessionID durch alle Deine Skripte und hast somit direkten Zugriff auf die Benutzerdaten, ohne jedesmal eine neue SQL-Abfrage zu starten.
mabrin
Auswerten einer checkbox von einem Formular
Einklappen
X
-
Jetzt habe ich aber doch noch eine Frage. Das Anmeldeformular wird jetzt wunderbar in die Datenbank eingetragen. Wenn sich der User jetzt einloggt, dann möchte ich aber das er auch mit dem richtigen Namen angeredet wird und das je nach angekreuzten Interessen, unterschiedliche Inhalte wiedergegeben wird.
Damit ich einen user einwandfrei identifizieren und seine Daten auslesen kann, muss es sich ja um den richtigen handeln. Okay, damit da keinProblem entsteht füge ich in die Datenbank eine id-zelle ein, so dass jeder user eine eigenständige ID enthält. Alles kein Problem, bloß wie lese ich dann die daten der jeweiligen ID aus? per Session, oder? Aber wie muss eine Session dann ausschauen, die den user mit der richtigen ID erkennt und dann je nach seinen Interessen die Daten ausliest?
Von denen habe ich leider noch keine Ahnung. Wäre nett wenn Ihr mir da noch ein kurzen Code schreiben könnt.
Einen Kommentar schreiben:
-
AAAAAAAAAAAAAAAAAAH! Stop, bin doch noch selber darauf gekommen
Habe die Bezeichnungen dvd und DVD genau verkehrt herum eingetragen. Es muss im if-tag natürlich der Begriff von der Zelle stehen und nicht vom Formular, mein Fehler.
Aber vielen Dank das du mir geholfen hast
Einen Kommentar schreiben:
-
Also leider klappt es immer noch nicht.
Der Code von meinem formular sieht folgendermaßen aus:
PHP-Code:<form name="Eingabe" action="writedata.php" method="post">
Benutzername: <br>
<input type="text" name="benutzer" size="20"><br>
Passwort:<br>
<input type="password" name="pass" size="20"><br>
E-Mail-Adresse:<br>
<input type="text" name="mail" size="20"><br>
<input type="checkbox" name="dvd" value="1">
<br><br>
<input type="submit" value="Registrieren">
<input type="submit" value="Reset">
PHP-Code:
$anfrage="INSERT INTO user VALUES ('";
$anfrage.=$benutzer;
$anfrage.="', '";
$anfrage.=$pass;
$anfrage.="', '";
$anfrage.=$mail;
$anfrage.="', '";
$anfrage.=$DVD;
if (isset($HTTP_POST_VARS['dvd']) && $HTTP_POST_VARS['dvd']==1) {
$anfrage.=", '".$HTTP_POST_VARS['dvd']."'";
}
$anfrage.="')";
Einen Kommentar schreiben:
-
Das ganze war natürlich nur als Beispiel gedacht, nicht mehr, aber auch nicht weniger
Der HTML-Code muss natürlich nicht unbedingt in einen echo-Befehl. Den HTML-Code kannst Du so schreiben, wie Du ihn benötigst! Ich gehe jetzt mal davon aus, dass Du eine Checkbox mit dem Namen 'check' in Deinen HTML einfügst und auch eine entsprechende Spalte für die Checkbox in der Tabelle 'user' nach der Spalte für das Passwort angelegt hast. Dann brauchst Du nur noch die nachfolgenden Zeilen einzufügen.
PHP-Code:$anfrage.=$mail;
if (isset($HTTP_POST_VARS['check']) && $HTTP_POST_VARS['check']==1) {
$anfrage.=", '".$HTTP_POST_VARS['check']."'";
}
$anfrage.="')";
Zur Erläuterung: Es wird nach dem POST gefragt, ob im POST-Array der Eintrag 'check' existiert und ob dieser den Wert 1 enthält. Ist dies der Fall,
wird Dein SQL-Query um den Wert für die entsprechende Spalte erweitert.
mabrin
Einen Kommentar schreiben:
-
Klappt irgendwie nicht, wo genau muss der Code
if (isset($_POST['log']) && $_POST['log']==1) {
$sql .= ', log='.$_POST['log'];
}
in meinem Skript eingefügt werden?
Und muss der input-tag unbedingt innerhalb eines echo-tags sein?
Einen Kommentar schreiben:
-
echo '<input type="checkbox" name="log" value="1">';
if (isset($_POST['log']) && $_POST['log']==1) {
$sql .= ', log='.$_POST['log'];
}
mabrin
Einen Kommentar schreiben:
-
Auswerten einer checkbox von einem Formular
Mein login skript, das ein registrierungsformular auswertet schaut folgendermaßen aus:
PHP-Code:<?php
$benutzer=$HTTP_POST_VARS['benutzer'];
$pass=$HTTP_POST_VARS['pass'];
$mail=$HTTP_POST_VARS['mail'];
$db=mysql_connect("locahost","root","")
or die("<b>Kein Connect zum Datenbankserver</b>");
mysql_select_db("Datenbankname")
or die("<b>Datenbank konnte nicht angesprochen werden</b>");
$anfrage="INSERT INTO user VALUES ('";
$anfrage.=$benutzer;
$anfrage.="', '";
$anfrage.=$pass;
$anfrage.="', '";
$anfrage.=$mail;
$anfrage.="')";
mysql_query($anfrage)
or die("<b>Fehler bei der Datenbankanfrage</b>");
mysql_close($db);
print("<p>Danke für die registrierung!</p>");
print("<p>Sie können sich ab sofort mit Ihrem Benutzernamen<br><br>");
print($benutzer);
print("<br><br>und Ihrem Passwort<br><br>");
print($pass);
print("<br><br>einloggen<br><br> Sollten Sie das Passwort mal vergessen, wird Ihnen das Passwort per E-Mail an
diese Adresse geschickt:<br><br>");
print($mail);
print("</p><p><a href='login.html'>Login</a></p>");
?>Stichworte: -
Einen Kommentar schreiben: