title image


Smiley Re: sprintf funktioniert nicht
"So eine fehlermeldung:http://www.stupidedia.org/images/thumb/f/f2/Iehepfumbw.PNG/400px-Iehepfumbw.PNG"Unaussagekräftiger könnte eine Fehlermeldung wohl nicht sein... Naja, Windows...Die Funktion scheint unvollständig zu sein. Ich nehme mal an, danach folgt noch der Code, der das Statement in der Variable query ausführen soll. Dabei gibt es gleich einen ganzen Haufen von Problemen/Fehlern:Wie Armin Ostrowski schrieb, ist an der Stelle, auf die query zeigt nur ein Byte reserviert, da du diesem die Zeichenfolge "" zuweist.Der Speicher, auf den query zeigt, erlaubt in der Regel nur Lesezugriff, soweit das Betriebssystem das unterstützt (keine Ahnung, ob Windows das tut).Dein Code ist anfällig für SQL-Injektionen, wenn du den Inhalt der übergebenen Parameter nicht überprüfst. Die harmloseste Folge davon ist, dass zum Beispiel ein Hochkomma im Titel eines Filmes zu einem Syntax-Fehler im SQL führt. Eventuell lässt es sich aber auch für bösartige Angriffe ausnutzen.Wenn du für query eine feste Speichergröße reservierst, ist der Code anfällig für Buffer-Overflows. Besser wäre daher snprintf statt sprintf.Um 3 und 4 sauber zu lösen, bereite das Statement besser erst mit Platzhaltern vor (prepare) und setze die dann auf die entsprechenden Werte (bind)Du deklarierst ein Datenbankhandle als lokale Variable in der Funktion. Du öffnest und schließt doch nicht etwa bei jedem Zugriff die Datenbank neu, oder? Das wäre mit einem erheblichen Geschwindigkeitsverlust verbunden.



Dies ist ein gemeinsam benutztes Konto. Siehe bugmenot.com.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: