Rolf B: Per Klick Button erscheinen lassen, der Variable an andere Seite übergeben kann

Beitrag lesen

Hallo Nadine,

eine Möglichkeit, so etwas zu lösen, ist ein

<input type="hidden" name="suchbegriff" value="<?= htmlspecialchars($suchbegriff) ?>">

auf der Seite. Das htmlspecialchars ist wichtig, andernfalls könnten Dir Sonderzeichen in der Eingabe das HTML kaputt machen. Den Feldinhalt findest Du dann wieder unter $_POST.

Eine Alternative zum hidden Field wäre ein temporärer Cookie (d.h. der expires-Parameter in set_cookie ist 0) oder $_SESSION. Einen Cookie findest Du im nächsten Request in $_COOKIES, Sessiondaten in $_SESSION, für Session-Handling musst Du aber auch etwas vorsehen, um die Sessiondaten zu speichern. Ich weiß grad nicht, ob PHP das immer automatisch tut.

Für temporäre Cookies (ein Suchbegriff-Cookie oder auch der Cookie für die Session-ID) musst Du den User nicht um Erlaubnis fragen, die verschwinden nach Schließen des Browsers. Du erwähnst einfach in der Datenschutzerklärung, dass Du sie benutzt.

#Aber Dein SQL Zugriff benötigt dringend eine Korrektur.

Im vorliegenden Statement kann man nicht viel kaputt machen, aber wenn dein Login-Teil ebenso aussieht, injiziert man Dir damit problemlos einen falschen Login. Und wenn Dein MYSQL Mehrfachstatements zulässt, injiziert man Dir damit auch Code, der deine Tabellen leert oder DROPt.

Heißt: Du kannst nicht einfach $suchbegriff in das SQL Statement einsetzen, du musst einen korrekten Kontextwechsel von "Plaintext" nach "SQL Parameter" durchführen. Dazu dient die Funktion mysqli_real_escape_string, bzw. $mysqli->escape_string wenn Du die Objektvariante verwendest. Guck's Dir in der PHP Doku an.

Rolf

--
sumpsi - posui - clusi