2012-06-20 5 views
7

Ich weiß, das klingt wirklich häufig und so trivial, aber, habe eine Herausforderung hier. Ich habe eine Website mit Zend/Doctrine und ich benutze ckeditor für das Backend-Management. Nach dem Hochladen der Website habe ich festgestellt, dass das Aussehen und Verhalten der Website während des Bearbeitungstests durcheinander gebracht wird.Wie zu verhindern, dass die Datenbank Schrägstrich zu den Anführungszeichen hinzufügen

mit Hilfe von Firebug, habe ich gesehen, dass es Schrägstriche überall im HTML gibt. Nach der Inline-Edition wurde das Erscheinungsbild wieder normal. Es gibt so viele Dateien, ich kann nicht daran denken, eine andere Dekodierung durchzuführen, bevor ich Daten von mysql ausgibt.

Welche Möglichkeiten habe ich, um dieses Problem zu lösen. Die Seite ist schon fertig und ich fühle mich ein bisschen unwohl dabei. Kann jemand einen Hinweis geben? Danke

+4

geheime Magie ninja Zitate kämpfen, ist PHP <5.4 Stil. – hakre

Antwort

4

Ich danke jedem für die Hilfe. Wirklich die akzeptierte Lösung sollte die von @Stanislav Palatnik sein. nur dass es mit meinem .htaccess nicht funktioniert hat. der hosting-server war nett genug, um eine php.ini in meine public_html zu schreiben, damit ich sie ändern konnte. Also +1 zu @Stanislav Palatnik, weil er auf das Problem hingewiesen hat. Ich fand auch interessante Informationen, von denen ich dachte, dass ich sie teilen würde, falls sich jemand in meiner Situation wiederfand.

info from: http://support.godaddy.com/groups/web-hosting/forum/topic/how-to-turn-off-magic_quotes_gpc/ 
Yes – the solution below worked for me: 

(1) First of all do not try to turn off the magic quotes in your .htaccess file, it won’t work on godaddy. 
(2) Second, if you’re running PHP5 on your account, rename your php.ini file to php5.ini, make sure it’s in your root folder. 
(3) Third, make sure all the lines in your php5.ini file end in a semi colon ; 
(4) Fourth, add this line to your php5.ini file: 
magic_quotes_gpc = Off; 

auf der gleichen Seite jemand sagte, es ist nicht nur nur magic_quotes_gpc sein sollte, aber andere, die weiter unten mag Aswell:

magic_quotes_gpc = Off; 
magic_quotes_runtime = Off; 
magic_quotes_sybase = Off; 

Hope this jemand geholfen.Besonderer Dank geht an @Stanislav Palatnik

+1

Nein, wirklich, das ist die richtige Antwort auf einem geteilten Host-Server (wie GoDaddy). Klappt wunderbar! – Sablefoste

9

Es könnte magic_quotes_gpc sein. Können Sie überprüfen, ob es ausgeschaltet ist?

Hier ist ein Weg, um es zu deaktivieren: http://php.net/manual/en/security.magicquotes.disabling.php

Legt den magic_quotes Zustand für GPC (Get/Post/Cookie) Operationen. Wenn magic_quotes eingeschaltet sind, alle '(einfache Anführungszeichen) "(doppelte Anführungszeichen), \ (Backslash) und NUL ist, werden automatisch mit einem Backslash.

Auch verwenden Sie vorbereitete Anweisungen? PHP PDO/MySQLi Je nachdem, welche Art von Abfragen Sie verwenden, hängt das von der Art der verwendeten Abfragen ab.

+0

Hallo.sehr Art, dies prompt zu beantworten.Leider ist es in.htaccess internen Server .any Zend Gurus hier hinzufügen? Es ist möglich, es die application.ini? –

+0

Was genau ist das Problem? –

5

Es scheint, als würden Ihre Daten doppelt gemerkt, bevor sie in Ihre Datenbank eingefügt werden. Verwenden Sie mysql_real_escape_string oder addslashes, bevor Sie Daten in die Datenbank einfügen Datenbank? Wenn ja, möchten Sie vielleicht stripslashes verwenden, bevor Sie Ihre Daten wie folgt einfügen:

mysql_real_escape_string(stripslashes($data)); 

sonst könnten Sie theoretisch strip aufrufen, nachdem Sie die Daten aus der Datenbank übernehmen:

stripslashes($data); 

Der zweite Ansatz ist weniger wünschenswert, wenn. Es wäre besser, die Daten ordnungsgemäß in der Datenbank zu speichern.

2

Falls dies eine Magie zitiert Problem und wie ich mich erinnere Sie nur Zugriff auf Ihre application.ini hat, könnten Sie die folgende hinzufügen und geben Sie es versuchen, ein

phpSettings.magic_quotes_gpc = 0 
phpSettings.magic_quotes_runtime = 0 

Dies erfordert immer noch Ihre Benutzer/Benutzergruppe php-einstellungen ändern zu dürfen;)

0
<?php 
    if (get_magic_quotes_gpc()) { 
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); 
while (list($key, $val) = each($process)) { 
    foreach ($val as $k => $v) { 
     unset($process[$key][$k]); 
     if (is_array($v)) { 
      $process[$key][stripslashes($k)] = $v; 
      $process[] = &$process[$key][stripslashes($k)]; 
     } else { 
      $process[$key][stripslashes($k)] = stripslashes($v); 
     } 
    } 
} 
unset($process);} 
?> 

dies auf Ihre PHP-Seite hinzuzufügen, die insert/update Abfrage hat :)