Hallo Leute,
in Sachen PHP bin ich Wiedereinsteiger nach einigen Jahren Pause. Ich strebe natürlich nach Perfektion und versuche die aktuellen Standards zu beachten, aber von Natur bin ich stinke faul und versuche mir das Arbeiten möglich einfach zu machen.
Meine IDE hat mich freundliche weise auf filter_input() hingewiesen, als ich versucht habe die $_POST zu belästigen. Der Script ist nun fertig und arbeitet korrekt, aber sieht nicht wirklich schön aus. Was mache ich falsch? Wie kann man das eleganter lösen?
Danke vorab für Eure Hilfe!
P.s.: Nicht wundern, ich arbeite mit pgSQL, die vielen "" und '' müssen leider sein.
in Sachen PHP bin ich Wiedereinsteiger nach einigen Jahren Pause. Ich strebe natürlich nach Perfektion und versuche die aktuellen Standards zu beachten, aber von Natur bin ich stinke faul und versuche mir das Arbeiten möglich einfach zu machen.
Meine IDE hat mich freundliche weise auf filter_input() hingewiesen, als ich versucht habe die $_POST zu belästigen. Der Script ist nun fertig und arbeitet korrekt, aber sieht nicht wirklich schön aus. Was mache ich falsch? Wie kann man das eleganter lösen?
Danke vorab für Eure Hilfe!
PHP-Code:
//Array für 'WHERE'-Klausel
$where = array();
//falls Werte aus den Formular mit der Post geliefert worden, werden Variablen gesetzt und der $where-Array erweitert, sonst nichts
filter_input(INPUT_POST, 'tx_email_input', FILTER_SANITIZE_EMAIL) ? $where[] = '"EMAIL" LIKE \''.$email_input = filter_input(INPUT_POST,'tx_email_input').'\'' : '';
//alle weitere Werte aus den Formular werden wie oben behandelt und $where erweitert, danach abgefragt
if (isset($email_input) || isset($a) || isset($b) || isset($c) || isset($xyz)){
//falls Werte aus den Folmular vorhanden, array $where zur String $where mittels ' AND ' als glue verbinden -> string implode ( string $glue , array $pieces )
$where = implode(' AND ', $where);
//noch ' WHERE ' vorn dran kleben und die 'WHERE'-Klausel ist fertig
$where = ' WHERE '.$where;
//sonst leeren und zum (leeren) Sting konvertieren
} else {$where = implode(array());}
P.s.: Nicht wundern, ich arbeite mit pgSQL, die vielen "" und '' müssen leider sein.
Kommentar