WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Probleme mit Hochkommas (') » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Probleme mit Hochkommas (')
von einstein
http://de2.php.net/manual/de/function.mysql-escape-string.php
von languitar
register_globals kann ich doch auch per htaccess umstellen...
von Can
magic_quotes_qpc ist ne PHP-Einstellung, die kannst du nicht per .htaccess ändern.
[edit:] Ach so, nein, stimmt ja gar nicht, das Forum hatte das Posting mal wieder verhexelt...[/edit]
von languitar
Lässt dein Hoster die Benutztung von htaccess zu?
von Care
Hallo ich habe eine .htaccess erstellt und diese im ascii mode hochgeladen. Trotzdem ändert sich der Status von magic_quotes_gpc nicht. Muß man diese .htaccess irgendwie aktivieren oder was mache ich falsch?

Vielen Dank schonmal.
von webworker
Hallo,

es lag wirklich an de Magic Quotes, welche deaktiviert waren.

Wen es interessiert, man kann sie mit HTACCESS aktivieren:

1:
php_flag magic_quotes_gpc on


Danke die Tipp
von Adrian
Z.T. wird in dem Thread hier ziemlich viel Unsinn gepostet.

Man sollte bei Daten die vom Benutzer kommen, stripslashes immer dann anwenden, wenn get_magic_quotes_gpc()==false ist.
In SQL Abfragen verwendet man dann bei allen Daten addslashes().
stripslashes() ist beim Auslesen dann nicht mehr notwendig.

Und für alle die die superglobalen $_*-Arrays verwenden gibt es hier noch einen passenden Code:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18:
function stripslashes_array($array)
{
 reset($array);
 while(list($key,$val)=each($array))
 {
  if(is_string($val)) $array[$key]=stripslashes($val);
  elseif(is_array($val)) $array[$key]=stripslashes_array($val);
 }
 return $array;
}

if(get_magic_quotes_gpc())
{
 if(is_array($_REQUEST)) $_REQUEST=stripslashes_array($_REQUEST);
 if(is_array($_POST)) $_POST=stripslashes_array($_POST);
 if(is_array($_GET)) $_GET=stripslashes_array($_GET);
 if(is_array($_COOKIE)) $_COOKIE=stripslashes_array($_COOKIE);
}
von webworker
Mein Problem ist aber das wenn ein User \" eingibt, dass dann " ausgegeben wird, zumindest wenns aufm Server ist.

Wenn ich lokal \" eingebe wird auch \" ausgegeben.

Hm, es liegt auch an der Eintragung, nciht an der Ausgabe... Aufm Server wird \" eingetragen (woraus bei stripslashes() " draus wird), und lokal wird halt das "richtige" eingetragen.
von Can
Hm...eigentlich genau um "..." ging es, also bei mir gibts keine Probleme, wenn man ' in " verwendet...
von webworker
Welche Abfrage?
Die des Posts?

Das ist ganz normal mit ner While...

$data = mysql_query("...
while($row = mysql_fetch_array($data))
{
...
}

Was sind diese Magic Quotes?
von Can
Post mal deine Abfrage.
von languitar
vielleicht wirklich an Magic Quotes.
von webworker
stripslashes() weglassen bringt nichts gutes :P

Was komisch ist: lokal funktioniert es (wie ich es bisher schon hatte), aber nicht wenn ichs bei meinem Hoster auf den Server lade nicht mehr...

Die Dateien sind identisch, ich habs jetzt schon mehr mals hochgeladen

Woran kann das liegen?
von languitar
stripslashes weglassen
von webworker
Wenn ich stripslashes() auf den Text anwende werden aber (logischer weise) auch alle \" zu ", was für PHP-Codes sehr schädlich ist

Was nun?
von Andreas S
Stripslashes() braucht man überhaupt nicht. Die Slashes die mit addslashes() voran gestellt werden, werden überhaupt nicht in der DB gespeichert - also muss man sie auch nicht entfernen.
Wenn bei der Ausgabe trotzdem Backslashes erscheinen, liegt das an den Magic Quotes, die automatisch Backslashes an alle 'schädlichen' Zeichen in Input-Strings (COOKIE, GET, POST) voranstellt. Um das zu beheben, stellt man die Magic Quotes am besten auf Off oder filtert die globalen GET, POST und COOKIE Variablen ganz am Script Anfang.
von languitar
Wie? Wenn du in MySQL Alle arten von Texten, also wo es sich nicht nur um reine Zahlenkombinationen oder Kombinationen die der Rechner generiert udn die du abschätzen kannst handelt, solltest du add- und stripslashes benutzen, damit solche Fehler nicht auftreten können. was anders geht nicht.
von webworker
Danke, das funktioniert soweit...

Aber gibts noch eine andere Möglichkeit bei der ich es nur bei Eintragen machen muss?
von languitar
den musst du vorm eintragen mit addslashes() formatieren und nachher beim auslesen mit stripslashes() wieder lesbar machen
von webworker
Hallo,

wenn ich in meine Datenbank z.B. einen Text, welcher ein Hochkomma (') enthält, eintragen will klappt das nicht... Wieso?

Ich habe irgendwann sowas schon mal gelesen...

Nach oben