Hallo zusammen,
Es gibt eine kleine Web Anwendung die nur für einen eingeschränkten Anwenderkreis in einem Intranet zur Verfügung steht. Das ganze läuft auf WAMP mit Apache 2 und PHP5 und Mysql 5. Bisher läuft der Apache bzw. PHP mit aktiviertem "magic_quotes_gpc". Die Daten wurden nur teilweise validiert. "Mysql_real_escape_string" wurde nicht verwendet. Die Mysql verbindung bzw. Abfragen und Inserts wurden mit "mysql()" gemacht.
Soviel zum IST Stand.
Ich möchte nun die Scripte und Anwendung auf Vordermann bringen.
Dazu folgende Überlegungen wozu ich euren Rat brauche:
1. Ich würde gerne in Zukunft "magic_quotes" deaktivieren und alle Daten und Input validieren und jeden Update und Insert mit "mysql_real_escape_string" ändern, so wie im Handbuch beschrieben.
-----------------
if(get_magic_quotes_gpc()) {
$product_name = stripslashes($_POST['product_name']);
$product_description = stripslashes($_POST['product_description']);
} else {
$product_name = $_POST['product_name'];
$product_description = $_POST['product_description'];
}
// einen sicheren Query zusammenstellen
$query = sprintf("INSERT INTO products (name
, description
, user\_id
) VALUES ('%s', '%s', %d)",
mysql_real_escape_string($product_name, $link),
mysql_real_escape_string($product_description, $link),
$_POST['user_id']);
mysql_query($query, $link);
------------------------------
2. Oder sollte man gleich auf "mysqli" und Objektorientiert umsteigen?
3. eine Überlegung ist auch, die Anwendung event. mal in Zukunft mit anderen Datenbanken wie etwa MS SQL laufen zu lassen.
Daher überlege ich ob es nicht sinnvoll ist gleich auf Pear MDB2 oder PDO umzusteigen? Damit habe ich aber bisher überhaupt keine Erfahrung.
Kann man hier auch etwas wie "mysql_real_escape_string" verwenden?
Gibt es auch etwas wie "mysql_insert_id"?
Ich bin für jede Anregung dankbar.
viele Grüße
hawk