htmlentities()

ventsi34

Registered
Здравейте, искам да попитам кога е правилното време за използване на функцията
PHP:
htmlentities()
аз мисля, че тя се използва при визуализиране на дадена информация в браузъра но когато я използвам така специалните знаци в текста ми се появяват в такъв вид „ а именно представени като с техния html заместител. Всичко това което съм написал правилно ли е и как да оправя всички знаци да се визуализират правилно?
 
ventsi34 каза:
Здравейте, искам да попитам кога е правилното време за използване на функцията
PHP:
htmlentities()
аз мисля, че тя се използва при визуализиране на дадена информация в браузъра но когато я използвам така специалните знаци в текста ми се появяват в такъв вид „ а именно представени като с техния html заместител. Всичко това което съм написал правилно ли е и как да оправя всички знаци да се визуализират правилно?

да не си го обработил два пъти този стринг с htmlentities
 
не той ми идва от базата данни преди да го запиша в базата данни имам

PHP:
mysql_real_escape_string();

а след като ми дойде от базата данни правя това преди да го визуализирам

PHP:
$NewsDescription = htmlentities(stripslashes($DbNews['description_bg']), ENT_QUOTES, 'UTF-8');
 
Добре де, провери кода, който php-то генерира.

Ако срещнеш & или нещо такова - значи наистина си ескейпнал кода два пъти някъде по пътя. Ако записа в базата данни е ескейпнат - значи си го ескейпнал преди да го вкараш в базата данни. Ако обаче php-то връща & и ти виждаш & значи сигурно проблемът е с някакъв javascript.

Проследи просто целия процес, толкова ли е трудно? Като установиш къде се дъни кода ще разбереш каква би могла да е причината. Debugging се казва на това.
 
Защо? <, >, & не са опасни за базата данни, а за html-а. За вход в базата данни може да се ползва mysql_real_escape_string, но htmlspecialchars/entities борави със символи, които се интерпретират главно от браузъра. Иначе може да възникне проблем при търсене например (пък и се увеличава размера на записаната информация)
 

Back
Горе