|
|
#1 (permalink) | ||||||
|
bekämpft die Mächte des Bösen
|
Ich poste hier mal meine Funktion (hier vereinfacht, da ich eigentlich eine Klasse benutze), die ich immer für Datenbank-Abfragen verwende. Bei dieser Funktion wird jeder Parameter, der an die Datenbank übergeben wird, vorher escaped, d.h. es sind keine SQL-Injections möglich.
PHP-Code:
PHP-Code:
|
||||||
|
|
|
| Gesponsorte Links |
|
|
#2 (permalink) | |||
|
Erfahrener Benutzer
|
Ich habe mir die Funktion noch leicht modifiziert
PHP-Code:
Gruß, Xgame P.S.: Ich ziehe %d gegenüber %u vor, da sonst negative Zahlen auf einmal doch zu positiven werden, aber das ist Geschmackssache... |
|||
|
|
|
|
|
#3 (permalink) | |
|
bekämpft die Mächte des Bösen
|
Zitat:
|
|
|
|
|
|
#4 (permalink) | |||
|
Ex-KlammID 16043
|
Nur für mich, damit ich besser schlafen kann. Ich habe die Funktion mal 'verkürzt', könnt ihr mir sagen, ob die Bedingung (vermeidung von Injections) noch sicher erfüllt ist.
PHP-Code:
Geändert von Paladin (18.04.2007 um 14:01:44 Uhr) |
|||
|
|
|
|
|
#5 (permalink) |
|
be forever curious
|
Damit hier auch mal 'ne Antwort kommt:
Deine Variante ist auf jeden Fall immer noch sicher. Und dazu noch eigentlich überaus schick. Das einzige, was halt zu Problemen führen könnte, sind NULL-Werte, aber das wird bei den wenigsten selbstgeschriebenen SQL-Klassen bedacht.
.lange tage und angenehme nächte, tlx
:.whatthemovie.com (Screenshots raten) | PHP ExportForce-Klasse |
|
|
|
|
|
#6 (permalink) |
|
♪ ♫
|
für was steht eigentlich das %s und %u ??
ich suche noch ne schöne mysql klasse zur einfachen handhabung und gegen sql injections... hab die im 1. post probiert aber irgendwie ging das nicht. über google kann man auch kaum klassen finden :/
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.
Demokratie mitgestalten: Petitionen im Deutschen Bundestag Klartext zur Diktatur des Finanzmarktes http://www.youtube.com/watch?v=sRJ_6...ature=youtu.be |
|
|
|
|
|
#8 (permalink) | |||||||||
|
Erfahrener Benutzer
|
Hi,
Also ich habe als erstes eine Klasse für den DB Zugriff angelegt: (habe einige Anregungen aus Foren zu Hilfe genommen) PHP-Code:
Jetzt habe ich mal eine allgemeine Frage zu euren SQL statments. Definiert ihr für jede Abfrage ein neues SQL Statement, oder macht ihr z.B. Funktionen für jedes Statement? z.b. habe ich mir folgendes überlegt: z.B. eine SQL Klasse mit Klassenmethoden... PHP-Code:
Aufruf: PHP-Code:
in wie weit macht sowas sin? Wie geht ihr denn so vor? DadyCool Geändert von DadyCool (20.04.2008 um 14:39:06 Uhr) |
|||||||||
|
|
|
|
|
#9 (permalink) |
|
return void
|
1. Klasssen werden gekapselt und machen bestimmt kein die, suche mal nach Exceptions
2. Naming-Konzept der privaten Attribute überdenken, entweder oder 3. Wenn du schon Attribute private machst, warum nicht noch den Methoden den richtigen access geben 4. Was ist wenn ich gerne per %s ein CURRENT_TIMESTAMP einfügen möchte? der darf nicht in Anführungszeichen 5. getError sollte ein assoziaitves Array zurückgeben statt einen String 6. Der Db-Zugang sollte im Konstruktor übergeben werden und nicht statisch da drinne stehen 7. das mit deinem gibAlleDatensätze geht in Richtung ORM, schau dir das mal an Bedenke beim Schreiben einer Klasse, dass sie nicht nur für diesen einen Fall genutzt werden soll, sondern dass sie so variable ist, dass du sie ohne Änderung in jeder Software nutzen kannst, dann musst du das nicht jedesmal ändern/neu schreiben |
|
|
|
|
|
#11 (permalink) |
|
wasn das?
|
-Und wenn du grade bei Punkt 1 bist kannst du mal die Fehlerbehandlung grundlegend überdenken. Du hast da einmal die() drin, einmal error() und zusätzlich echos. Du würdest bei weitem besser kommen würdest du das alles einheitlich mit Exceptions lösen.
-Was soll der quatsch im Destructor? Mit mysql_close() geh ich noch mit, aber die echos -unvorteilhaft ist auch du kannst nur 1 Query aufeinmal ausfrühren... kommt zwar relativ selten vor dass man Queries verschachteln muss, aber es kann vorkommen -dir fehlen da irgendwie noch ein paar funktionen, es gibt noch mehr als nur mysql_num_rows und zu gibAlleDatenseatze()... das ist in der Form quatsch. Wie oft verwendest du SELECT * FROM blub? Wenn du jetzt oft gesagt hast machst du was falsch. Es gibt solche Ansätze wie schon ice-breaker gepostet hat, aber die gehen in eine andere Richtung. |
|
|
|
|
|
#14 (permalink) | |||||||||
|
Erfahrener Benutzer
|
habe es mal überarbeitet, was haltet ihr davon?
PHP-Code:
PHP-Code:
PHP-Code:
Geändert von DadyCool (23.04.2008 um 17:44:45 Uhr) |
|||||||||
|
|
|
![]() |
| Gesponsorte Links |
| Anzeige |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [PHP/MYSQL]MySQL-class auf dem Prüfstand + ein paar Fragen | BartTheDevil89 | Programmierung | 16 | 12.06.2008 08:38:44 |
| [PHP/MySQL] Fehler - aber wo? Daten in mySQL eintragen | concept | Programmierung | 5 | 14.04.2007 09:48:55 |
| [PHP/MySQL] Zufälligen wert aus der Mysql auslesen | birwac66 | Programmierung | 2 | 13.10.2006 20:55:25 |
| [mysql/localhost] Mein MySql auf meinem PC macht Probleme | Gremlin | Sonstiges | 4 | 01.07.2006 14:59:00 |
| [PHP/MySQL] supplied argument is not a valid MySQL result resource | theHacker | FAQ und Archiv | 0 | 29.04.2006 14:57:29 |