Sven Rautenberg: htmlentities und mysql_real_escape_string

Beitrag lesen

Moin!

Ich verwandel nun alle POST Var mit

foreach ( $_POST as $eingabe => $val )

{
$_POST[$eingabe] = htmlentities ( $val );
  }


> 	  
> wäre es nicht sinnvoll, falls damit in der Datenbank gearbeitet wird es so zu machen  
>   
>   
> ~~~php

foreach ( $_POST as $eingabe => $val )  

>   {  
> 	$_POST[$eingabe] = mysql_real_escape_string ((htmlentities ( $val ));	  
>   } 

Du hast den Artikel nicht verstanden, oder?

Kernaussage war dort: Kontextwechsel immer nur DORT behandeln, wo sie auftreten, niemals voreilig zu früh. Und genau das machst du hier.

Es ist nicht sinnvoll, pauschal alle Werte in $_POST und $_GET irgendwie zu behandeln! Behandle sie dann, wenn du den Kontext wechselst. Wenn $_GET auf der HTML-Seite ausgegeben werden soll: htmlspecialchars(). Wenn $_GET in die Datenbank gehen soll: mysqli_real_escape_string(). Wenn das Datenbankergebnis wieder auf die Webseite soll: htmlspecialchars() auf das Ergebnis anwenden!

Wenn du es nicht so machst, versaust du dir überall deine Daten und kannst mit ihnen nicht mehr vernünftig arbeiten.

- Sven Rautenberg