CMBasic läuft unter Strato nicht richtig?
Sie haben sich bei Strato z.B. ein Premium-Paket gebucht? Die Installation von CMBasic hat geklappt, doch das Bearbeiten im Backend macht Probleme? Sie ernten stets eine Fehlermeldung, dass die Funktion »mysql_real_escape_string« nicht definiert wäre? Das Problem liegt bei Strato, offenbar bietet dieser Hoster Pakete mit Uralt-PHP-Versionen an. In einem Fall war es PHP 4.1 (ca. 5 Jahre alt). Tatsächlich gab es in dieser Version noch keine Funktion namens »mysql_real_escape_string«. Die Lösung ist einfach.
Gehen Sie in die Datei backend/TableEditor.php und ersetzen Sie folgende Zeile:
return "'" . mysql_real_escape_string($str, $this->db) . "'";
durch diese:
return "'" . mysql_escape_string($str) . "'";
In CMBasic 1.4 habe ich diesen Workaround schon vorbereitet. Setzen Sie Kommentarzeichen (//) vor Zeile 2870 und nehmen Sie dieselben weg vor Zeile 2871.
Merkwürdigerweise tritt das Problem bei meinem Strato-Account »PowerWeb S« nicht auf. Hier habe ich PHP 4.4 und alles läuft prima! Tipp: Prüfen Sie doch mal Ihre PHP-Version mit der Funktion phpinfo().
Update vom 20.05.2007: Ein CMBasic-Nutzer schreibt: "Man kann bei STRATO sowohl in den Power Web- wie auch den Premium-Paketen höhere PHP-Versionen nutzen. Man muss nur eine .htaccess-Datei dafür schreiben. Wird in den FAQ von STRATO genau erklärt." Also dann, es geht offensichtlich doch!