Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 23. 10. 2012, 18:52:08
Dobrý den. Mám editor který dává obsah na stránku. Tento editor je dělaný pomocí tinymce a do DB se obsah ukládá pomocí dibi. Problém nastává když odřádkuji. Místo řádku se napíše "\r\n". Dá se toto nějak vypnout ??
|
||
Tori Profil |
#2 · Zasláno: 23. 10. 2012, 19:01:45
zapnuté magic quotes?
|
||
Fisak Profil |
#3 · Zasláno: 23. 10. 2012, 19:03:48
ini_set("magic_quotes_runtime", "0");
|
||
Kajman Profil |
#4 · Zasláno: 23. 10. 2012, 23:03:34
Vypněte si to dříve než v php - to už je pozdě.
|
||
Fisak Profil |
#5 · Zasláno: 24. 10. 2012, 12:35:25 · Upravil/a: Fisak
Kajman:
a dá se to nějak vypnout např. v .htaccessu ?? já totiž koukám na http://php.net/manual/en/security.magicquotes.disabling.php a tady to je dělaný také v php... Dal sem uplně na začátek všech skriptů: <?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); } ini_set('magic_quotes_gpc', false); ini_set('magic_quotes_runtime', false); ini_set('magic_quotes_sybase', false); |
||
Kajman Profil |
dá se to nějak vypnout např. v .htaccessu?
Pokud je to povolené přenastavit, tak ano dá, viz. Vámi uvedený odkaz. |
||
Fisak Profil |
#7 · Zasláno: 24. 10. 2012, 15:46:45
Kajman:
ok dal sem do .htaccess <IfModule mod_php5.c> php_flag magic_quotes_gpc Off </IfModule> a stejně to \r \n tam dává při zápisu do DB |
||
Kajman Profil |
#8 · Zasláno: 24. 10. 2012, 16:01:40
A proměnná, kterou dibi dáváte už má \n v sobě? Pak si zkuste najít, jak se tam dostala.
|
||
Fisak Profil |
#9 · Zasláno: 24. 10. 2012, 16:06:00 · Upravil/a: Fisak
Kajman:
if (!DB::query('UPDATE [:pref:page] SET [description] = %s', mysql_real_escape_string($_POST["text"]), ' WHERE [page]=%s', mypage("run"))) { echo "Úprava proběhla neúspěšně.<br>"; } samozřejmě když vynecham mysql_real_escape_string a dam tam jen $_POST["text"] tak se tam žádné \r\n nevpíše.. |
||
Tori Profil |
Fisak:
Koukněte, co se děje uvnitř dibi, když použijete modifikátor %s: DibiTranslator->formatValue > DibiDriver->escape. Smyslem modifikátorů je mj. i to, aby se vkládaná hodnota správně escapovala bez ohledu na použitý typ databáze, aniž byste musel cokoli měnit v kódu když změníte driver z mysql na třeba sqlite. |
||
Fisak Profil |
#11 · Zasláno: 24. 10. 2012, 17:04:24
Tori:
takže už není potřeba tam dávat mysql_real_escape_string? a co mam dát místo %s aby to nevypisovalo \r\n ?? |
||
Tori Profil |
Nechte %s, dejte pryč mysql_real_escape_string, to je vše. Ano, když si vypíšete dotaz, tak se tam zobrazí \r\n, ale když to uložíte do DB a načtete z ní nazpět, dostanete normální zalomení řádku. (viz manuál)
|
||
Fisak Profil |
#13 · Zasláno: 24. 10. 2012, 23:09:27
Tori:
Dobře. Konečně vyřešeno. Děkuji všem za pomoc. |
||
Časová prodleva: 11 let
|
0