Tom: Daten aus MySQL in Formular laden problem mit Umlauten

Beitrag lesen

Hello,

<?php

$id = $_POST["id"];
  $abfrage1 = "SELECT * FROM garant WHERE id = '".$id."'";
  $ergebnis1 = mysql_query($abfrage1);
  mysql_query("SET NAMES 'utf-8'");


>   
> Zu diesen paar Zeilen habe ich schon drei böse Anmerkungen.  
>  \* Dass du dir eine gefährliche Sicherheitslücke aufreißt, ist dir bewusst? Wenn dir für den URL-Parameter 'id' jemand etwas hinreichend gemeines unterschiebt, kann er mit deiner DB so ziemlich alles tun.  
>  \* Das Umkopieren zur Verschleierung der Herkunft von Daten ist wohl auch nicht auszurotten.  
>  \* Wenn du \*erst\* eine Abfrage absetzt, und danach die Codierung der Verbindung auf UTF-8 umstellst, ist das Kind möglicherweise schon in den Brunnen gefallen. Die Codierung sollte als erstes festgelegt werden, noch bevor irgendeine DB-Operation stattfindet, sogar noch vor der Auswahl der Datenbank!  
  
Wenn man eine Abfrage durchführt, dann sollte man vorher auch sicher sein, dass eine Verbindung besteht. Leider kann man nicht sehen, ob die im Include auch geprüft wird...  
Und nach der Abfrage sollte man fragen, ob diese auch geklappt hat, oder ob $ergebnis1 vielleicht den Typ boolean angenommen hat und den Wert false enthält.  
  
Wenn das der Fall ist, könnte die MySQL-Fehlermeldung (mysql\_error()) von Nutzen sein.  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>