Autor Zpráva
Anonymní
Profil *
boooze. prosim mam problem . KOD:

$fp = FOpen ($uri, "w");
FWrite ($fp, $text);
FClose ($fp);

funguje az na jednu vec
ked odoslem z textarea obsah ktory obsahuje html tagy,
pred znaky ktore su nvyhovujuce PHP alebo co dava lomitko \ (pred " alebo ' atd.) !!!
takze <img src="obr.jpg"> zmeni na <img src=\"obr.jpg\"> co je nepouzitelne.
PROSIM neda sa to nejak vypnut ??? na tom ze to bude v html bol zalozeny cely system
PS: nema pristup k apachu a nastaveniam PHP, a nechcem pouzit bbCODES //ze [obr=ob1.jpg] sa prevedie na <img src="ob1.jpg">//
prosim pomooc
magnum
Profil *
hm v tych troch prikazoch to urcite nie je tam sa s textom nestane nic... chybu hladaj vyssie ;)
ako dostanes text do $text
pyty
Profil
<form action="stranka_s_tym_kodom.hore" method="post">
<textarea name="text"></textarea>
</form>
alebo to treba zmenit na $_POST['text'] ??
nezda sa mi ze by to potom pomohlo
*Čvachta*
Profil *
Da se to nekde v php.ini vypnout - je to pro bezpecnost - php si před nebezpečné znaky jako jsou úvozovky dává \ jde to na vystupu odfiltrovat nejakou funkci, nebo uplne vypnout .
pyty
Profil
nema pristup k apachu a nastaveniam PHP
radsej by som ocenil tu funkciu
DoubleThink
Profil *
stripslashes()
magnum
Profil *
1) urcite pouzivaj $PHP_POST_VARS[]
2)
$res = '';
for (i=0;i<=length($text);i++)
if ($text[i]=='\') else $res = $res.$text[i];
// vysledok mas v $res ale odstrani z textu vsetky \
// alebo len pred urcitym znakom
if (($text[i]=='\') && ($text[i+1]==chr(/*sem das ascii kod apostrofu*/))) else $res .= $text[i];
magnum
Profil *
DoubleThink ... vystizny nick ... sakra som magor :)
pyty
Profil
DoubleThink
co s tym ??

$upraveny = stripslashes($text);
$fp = FOpen ($uri, "w");
FWrite ($fp, $upraveny);
FClose ($fp);

???
DoubleThink
Profil *
jo, třeba takto

Zkrátka a dobře, když PHP obdrží POST/GET data, tak si před ", ' a \ vloží zpětné lomítko \

stripslashes() odstraní tyto nadbytečné lomítka.
llook
Profil
Ještě bych radši testoval, jestli je to zapnutý, abys neřešil další problém pokud by to provozovatel vypl:
$upraveny = (get_magic_quotes_gpc() == 1) ? stripslashes($text) : $text;
Toto téma je uzamčeno. Odpověď nelze zaslat.