Moin,
LIMIT ".$start_nr.",".addslashes($arr_in['posi'])."
addslashes() hat an der Stelle keinen Sinn. Dort wird eine Zahl verlangt. Eine Zwangsvertypisierung mit intval() hilft an der Stelle. Da kann dann zwar immer noch 0 für ungültige Werte rauskommen, aber das richtet keinen Schaden an.
Sehe ich anders. Sämtliche GET und POST Werte kopiere ich in das array $arr_in. Da ist gleich oben im Programm klar, welche Werte erwartet werden. Die können nun geprüft und ergänzt werden. Z.B. wenn ich tag_von und tag_bis benötige, aber nur (Anzahl der) tage und tag_von reinkommt.
Wie ich hier gelernt habe, gibt es böse Mädchen, die ganz seltsame Werte schicken. Wenn also $_POST['posi'] einen unerwarteten Wert hat, sollten Angriffe mit addslashes abgewehrt werden. Warscheinlich wird dann ein SQL-Fehler gemeldet.
Du bist nicht in einem String, aus dem man mit Anführungszeichen ausbrechen könnte, was man mit den Slashes verhindern könnte. Stattdessen bist du im Befehlsmodus und kannst Syntaxbestandteile direkt angeben und ausführen lassen.
Ich gehe auf Nummer sicher, anstatt mich auf meine unzulänglichen Kenntnisse über Betrugsversuche zu verlassen.
Linuchs