Problem beim Datenbankconnect
bearbeitet von
Hallo Dennis Knabe,
> Problem beim Datenbankconnect
Gibts auch ne Frage dazu?
Hier ein paar Hinweise, die nichts mit dem Connect zu tun haben:
> ~~~html
> <html>
> ~~~
Möglicherweise fehlt der Doctype.
> ~~~ html
> <form method="post" action="">
> ~~~
Wenn du die Formulardaten an die Seite selbst schicken möchtest, kann das action-Attribut entfallen.
> ~~~ html
> <table border = 3>
> <tr><td colspan = 2 align = center>Anmeldung</td></tr>
> ~~~
Tabellenlayout? Ernsthaft? Für die Daten selbst könnte ich mit der Semantik als Tabelle durchaus noch mitgehen, aber die Überschrift und der Absendebutton gehört definitiv nicht in eine Tabelle.
Es gehört zum guten Stil, Attributwerte in Anführungszeichen zu setzen, auch wenn das nicht notwendig ist. Wenn du dir angewöhnst, immer Anführungszeichen zu verwenden, stolperst du nicht an Stellen, wo sie notwendig werden.
`align` ist ein missbilligtes Attribut. Verwende die CSS-Eigenschaft `textalign`.
> ~~~ html
> <tr><td>Nachname</td><td><input type="text" name="nachname"></td></tr>
> <tr><td>Vorname</td><td><input type="text" name="vorname"></td></tr>
> <tr><td>Passwort</td><td><input type="passwort" name="passwort"></td></tr>
> ~~~
Das Formular ist für Menschen, die auf assistive Technologien angewiesen sind, nicht benutzbar. Es fehlen label-Elemente.
`type = text` ist der Defaultwert, kann also weg.
~~~ html
<tr><td><label for="nachname">Nachname</label></td><td><input id="nachname" name="nachname"></td></tr>
~~~
> ~~~ html
> <tr><td><input type="submit" name="submit" value="login"></td></tr>
> ~~~
`type = submit` ist der defaultwert, kann also weg.
Für konkretere Hilfe siehe das brandneue Tutorial [Formulargestaltung](https://wiki.selfhtml.org/wiki/HTML/Tutorials/Formulare_erstellen_und_gestalten) in unserem Wiki.
> ~~~php
> $nachname=$_POST['nachname'];
> $vorname=$_POST['vorname'];
> $passwort=$_POST['passwort'];
> ~~~
Das Umkopieren ist nicht notwendig.
> ~~~ php
> or die("Serververbindung fehlgeschlagen");
> ~~~
Wenn dieser Fehler auftritt, kann der Nutzer in aller Regel nichts dafür und auch nichts dagegen tun. Deshalb sollte man ihn mit dieser Information verschonen. Viel wichtiger ist, dass *du* eine Info bekommst.
> ~~~ php
> $sql = "SELECT Vorname, Nachname, Passwort
> FROM logindaten
> WHERE Vorname = '$vorname'
> AND Nachname = '$nachname'
> AND Passwort = '$passwort';";
> ~~~
Hier werden Eingabedaten ungefiltert an die DB weiter gereicht. Was, wenn ein böswilliger Mensch als Passwort einen SQL-Befehl verwendet, der ihm uneingeschränkten Zugriff erlaubt? Beachte den [Kontextwechsel](https://wiki.selfhtml.org/wiki/Kontextwechsel).
PDO ist ggf. auch der Nutzung von `mysqli_` vorzuziehen, aber dazu können andere mehr sagen.
Bis demnächst
Matthias
--
Dieses Forum nutzt Markdown. Im [Wiki](https://wiki.selfhtml.org){: style="color:#3481cd"} erhalten Sie [Hilfe bei der Formatierung Ihrer Beiträge](https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge){: style="color:#3481cd"}.