Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno MySQL, PHP - otázky ohľadne addslashes() a global_register

1. Povedzme, že mám v tabuľke 32 znakov dlhú položku [varchar(32)]. používaetľ ma bude chcieť nabúrať a zadá povedzme 32 úvodzoviek. Po použití addslashes bude mať ten text 64 znakov. Tento text vložím do databázy. Môže sa niečo stať a treba to ošetriť alebo to netreba ošetrovať a môžem kľudne vložiť aj 64 znakov?

2. Ako globálne pre stránku vypnúť global_register, ak v nastaveniach v php.ini je zapnutý, ale ja ho chcem pre danú stránku vypnúť globálne, čiže nie len pre jeden PHP súbor?

3. Mám jendo, či použijem addslashes() alebo mysql_escape_string, pretože ako som sa dočítal na internete, tak addslashes neodporúčajú pri SQL. Prečo?

Předmět Autor Datum
1. Hoci bude mať ten reťazec po použití addslashes 64 znakov, tak ten text, ktorý reprezentuje, bude…
los 21.11.2007 16:08
los
1. Ale to sa do databázy teda tie lomítka nevložia, keď aj budú v texte?
msx. 21.11.2007 16:11
msx.
Keď bude pôvodný text "\", tak addslashes z toho spraví "\\". To použiješ v SQL dopyte, ktorý keď bu… poslední
los 21.11.2007 16:15
los

1. Hoci bude mať ten reťazec po použití addslashes 64 znakov, tak ten text, ktorý reprezentuje, bude stále 32-znakový. Do databázy nevkladáš oescapovaný text, ale iba text.

2. register_globals nemôže byť zmenené za behu, ale dá sa nastaviť v .htaccess:

php_flag register_globals off

3. Pri MySQL je to jedno, ale iné databázové servre používajú iné escapovanie znakov v reťazcoch.

Zpět do poradny Odpovědět na původní otázku Nahoru