bool(false) und bool(true)

Wieso nutzt du htmlspecialchars() im SQL-Query? Beim SQL-Query solltest du die Escape-Funktion deines DB-Treibers nutzen (mysqli_real_escape_string) oder besser gleich Prepared Statements.

ich staune sowieso, das ich mir binnen fast 2 wochen, das objektorientierte programmieren aneignen konnte ;)
Ich möchte dir nicht die Motivation nehmen, aber ich bezweifle, dass du auch weißt, wie man richtiges Design der Klassenarchitektur durchführt. Kennst du SOLID, Liskov substitution principle, Dependency Injection, ...?
 
danke, stimmt @ComFreek

das mysqli_real_escape_string nutze ich jetzt besser, da ich diese nicht direkt vergleiche, bei dem Prepared Statements seh ich noch nicht ganz durch, wie ich diese Daten, welche schädliche Strings wie Hackerangriffe entschärfen könnten.

Ich möchte dir nicht die Motivation nehmen, aber ich bezweifle, dass du auch weißt, wie man richtiges Design der Klassenarchitektur durchführt. Kennst du SOLID, Liskov substitution principle, Dependency Injection, ...?

diese sachen sagen mir noch nix, dass kann ich mir demnächst anschauen, aber war nur ein klein wenig stolz, vor 14 Jahren fing ich mit dem coden an, bis vor 2 Jahren tat ich mich mit functionen noch sehr schwer, dann tat ich diese langsam etwas kapieren und nun verwende ich objekte, welche ich mir viel schwerer vorstellte, natürlich weiß ich vielleicht gerade mal 10% davon, wenn überhaupt, doch schließlich habe ich nie kurse oder ausbildungen in dieser oder ähnlicher richtungen absolviert und immer in sehr zeitraubenden anderen branchen gearbeitet, wo ich dies nie anwendete. :D
 
Was ja noch nicht ist kann ja noch werden :)
Ein paar Stichworte zum Weiterverfolgen hast du ja jetzt

Zum Stringescapen:
Das Grundproblem ist ja, wenn man Usereingaben als Werte zum Einfügen/Vergleichen/... in SQL-Befehle einsetzt,
das ein User mit bestimmten Eingaben erreichen kann, dass die Eingabe als "Befehlsteil" vom SQL mit ausgeführt
wird. Zuerst wird ja alles in PHP zu einem einzelnen String zusammengehänt, und die Datenbank muss dann
erkennen, welcher Teil Befehle und welcher Werte sind. Da kanns je nach Eingabe eben Probleme geben.

mysqli_real_escape_string sorgt dafür, dass alle problematischen Steuerzeichen etc. im Eingabenteil
so abgeändert werden, dass sie immer als Eingabe statt Befehl verstanden werden.

Wofür Prepared Statements eigentlich gut sind ist, wenn man einen Befehl mit vielen verschiedenen Eingaben
(aber gleichem Befehlsteil) ausführen will. In dem man der DB bekannt gibt, dass die nächsten 1000 (oder so)
Befehle nur an Stelle x anders sind (und x zum Eingabenteil gehört) kann man die ganze Sache verschnellern.
Zuerst sendet man da nur den Befehl mit einem PLatzhalter "?" für die Eingabe und reicht dann die EIngaben nach.
Was das aber gleichzeitig bedeutet: Hier ist der DB völlig klar, dass es sich beim nachgereichten Ding
um Usereingaben statt Befehle handelt, also hat man das Problem schon automatisch beseitigt.
 
@sheel danke ;)

jetzt hab ich dies auch verstanden und somit erübrigt sich also das verwenden von mysqli_real_escape_string ;)

da werde ich mich dann mal auf diese art umstellen ;)

Gruß Matze202.
 
Zurück