rob: Anführungszeichen in Abfrage

Beitrag lesen

Hi!

[PHP]$qrystring = '(nutzerdaten.beruf = ' . $_GET['beruf'] . ')';
if($_GET['geschlecht'] != '') {
$qrystring .= ' AND (nutzerdaten.geschlecht = ' . $_GET['geschlecht'] . ')';
}

Das darfst du in gar keinem Fall so machen.
Niemals darfst du Daten ungeprüft und unbereinigt in deine Abfragen einbauen.
Bei Code wie diesem wäre es problemlos möglich, bösartigen Code einzuschleusen.

Schau mal beispielsweise hier:
SQL Injection

Das Problem ist nun glaube ich, dass das weiblich in Anführungszeichen muss. Aber genau das krieg ich nicht hin. Ich bekomme da weder ein Hochkomma (') noch Anführungssriche (") um das weiblich rum.

Warum nicht? Wie hast du das denn versucht?
Das du die Quotes escapen mußt, ist dir klar, oder?
Durch einen vorangestellten Backslash verlieren die Sonderzeichen wie Quotes ihre besondere Bedeutung.

so:
$sql = "SELECT bla FROM blubb WHERE quotes = "". hier .""";
oder halt so:
$sql = "SELECT bla FROM blubb WHERE quotes = '". hier ."'";

Schöner Gruß,
rob