Fehlerhaftes Escapen in master.inc.php, SQL-Queries

Probleme beim Installieren. Servereinstellungen etc.

Fehlerhaftes Escapen in master.inc.php, SQL-Queries

Beitragvon jakarno » 1. Sep 2010, 00:00

Hi,

Vorab schonmal Entschuldigung für den komplizierten Beitrag, ich hoffe, dass ein Entwickler mir helfen kann. Ich glaube, dass es sich um ein essentielles Problem handelt.

Ich habe bereits einige Male Redaxo installiert, ging bisher immer super. Doch heute habe ich den ganzen Tag damit verbracht, mir in/nach Schritt 3 eine leere Seite anzuschauen. Alles Suchen im Forum/google hat nichts gebracht.

Schließlich habe ich die Ursache für die leere Seite gefunden: Die master.inc.php wird falsch geschrieben. Und zwar werden alle einfachen Anführungszeichen als doppelte geschrieben:
Code: Alles auswählen
$REX[''SETUP''] = true;
$REX[''SERVER''] = "redaxo.de";
$REX[''SERVERNAME''] = "REDAXO";
$REX[''VERSION''] = "4";
$REX[''SUBVERSION''] = "3";
...


Nun habe ich die Datei runtergeladen, alles wieder syntaktisch in Ordnung gebracht. Ergebnis: Sorry, Database down... Immerhin ein Fortschritt (keine leere Seite).

OK, lag daran, dass immer noch die Standarddatenbank drinstand. Habe das dann auch kurz auf meine Datenbank angepasst.

Dann kamen endlich Fehlermeldungen:
Code: Alles auswählen
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0'',''deutsch'', 0)' at line 1

    *
      Fehler | Benötigte System-Addons fehlen
          o metainfo
                + Error found in install.sql:
                  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'text'', ''text'', 0)' at line 1
.......

Tausend Fehler, die in dem Ratschlag mündeten
Code: Alles auswählen
Bitte richten Sie die Datenbank erneut ein.


Wie bereits die erste Fehlermeldung zeigt, wurden wieder die Anführungszeichen verdoppelt. Die Datei include/addons/metainfo/install.sql hat sie nicht, allerdings findet offenbar eine Textersetzung statt, in der %TABLE_PREFIX% wohl durch rex_ ersetzt wird und wieder doppelte Anführungsstriche entstehen.

Wie lässt sich das Problem beheben? Mir kommt es so vor, als sei an einer zentralen Komponente von Redaxo, die für Textersetzung zuständig ist. Vielleicht unter anderem in redaxo/include/pages/setup.inc.php ab Zeile 374?

Puh, also ich blicke da noch nicht durch, da ich mich heute das erste mal mit den Redaxo-Quellen auseinandergesetzt habe. Aber vielleicht ist das Problem altbekannt. Immerhin verkackt ja offenbar nur die Textersetzung. Und das bei der Generierung von PHP-Code sowie SQL-Queries.

Viele Grüße und vielen Dank,
Jakob
Benutzeravatar
jakarno
 
Beiträge: 3
Registriert: 31. Aug 2010, 23:25

Re: Fehlerhaftes Escapen in master.inc.php, SQL-Queries

Beitragvon Xong » 1. Sep 2010, 09:05

Hallo Jakob und herzlich Willkommen im Forum!

Dein Problem klingt äußert mysteriös.

jakarno hat geschrieben:Schließlich habe ich die Ursache für die leere Seite gefunden: Die master.inc.php wird falsch geschrieben. Und zwar werden alle einfachen Anführungszeichen als doppelte geschrieben:
Code: Alles auswählen
$REX[''SETUP''] = true;
$REX[''SERVER''] = "redaxo.de";
$REX[''SERVERNAME''] = "REDAXO";
$REX[''VERSION''] = "4";
$REX[''SUBVERSION''] = "3";
...
Das verwundert mich. Die einfachen Anführungszeichen für die Arrayindizes sind hart gecodet und werden nicht ersetzt. Normalerweise kann der Fehler also gar nicht auftreten.

Ich würde dir empfehlen die Version nochmal neu herunterzuladen und neu zu installieren. Wenn es dann noch immer nicht geht, dann müsste man mal an deinem System debuggen.

Achja, das Ersetzen von %TABLE_PREFIX% hat mit deinem Problem nichts zu tun. Die Fehlermeldung "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0'',''deutsch'', 0)' at line 1" bezieht sich auf die Installation der Redaxobasistabellen.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1555
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon jakarno » 1. Sep 2010, 15:43

Geschafft! Nachdem ich die Ausgabe von phpinfo() von unterschiedlichen Servern, auf denen ich Redaxo laufen habe, mit dem fehlerhaften verglichen habe ist mir aufgefallen, dass magic_quotes (hängt ja auch mit Anführungszeichen zusammen) beim fehlerhaften eingeschaltet war.

Lösung: folgenden Code in (zur Sicherheit) beide index.php ganz oben einfügen:
Code: Alles auswählen
ini_set('magic_quotes_runtime','Off');
ini_set('magic_quotes_sybase','Off');


Und schon klappt alles.

Trotzdem vielen Dank für Deine Bemühungen.

Viele Grüße,
Jakob
Benutzeravatar
jakarno
 
Beiträge: 3
Registriert: 31. Aug 2010, 23:25


Zurück zu Installation [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast