Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]znaczniki html w formularzu
Forum PHP.pl > Forum > Przedszkole
czarnaowca777
Witam
W panelu gdzie uyżytkownik dodaje na moją stronę standardowy link youtube do filmiku w postaci:
np.
Kod
<iframe width="480" height="360" src="http://www.youtube.com/embed/Obs-DU6SJZ4" frameborder="0" allowfullscreen></iframe>


dodaje go za pomocą formularza.
później to jest wysyłane (php) do bazy Mysql i później z bazy to publikuję.
Niestety po wpisaniu do formularza znaczników html one giną , po prostu nie wysyłają się.
Jak mogę naprawić ten problem?


Dodam że jest to projekt osoby początkującej więc proszę o jakieś dość jasne wytłumaczenie jak to poprawić
Ruch Radzionków
pokaz kod
Velius
Ja bym obstawiał, że zapisujesz dane pozyskane z formularza postem do zmiennej używając znaku cudzysłowu.
$zmienna = "$_POST['costam']";

I w takim przypadku - wszystkie znaki cudzysłowu w kodzie html jaki chcesz przesłać zostają poprzedzone \
mortus
Użytkownik raczej nie powinien móc dodawać znaczników html, zwłaszcza że powinno wystarczyć jak poda odnośnik do źródła na YT. Jeśli jednak użytkownik musi wpisać cały kod html, to chyba trzeba skorzystać z htmlentities() przy dodawaniu do bazy danych i html_entity_decode() przy pobieraniu z bazy danych. Może się również zdarzyć, że adres źródła trzeba będzie przepuścić przez urlencode() i urldecode(), co w Twoim przypadku wiąże się dodatkowo z użyciem PCRE (wyrażeń regularnych) i funkcji z grupy preg_*.

@down: Właśnie miałem dopisać, że być może wystarczy użyć tylko mysql_real_escape_string() przy dodawaniu do bazy danych, ale nie sprawdzałem.
Velius
@mortus: mysql_real_escape_string nie przepuści html? Nigdy nie sprawdzałem bo zezwolenie użytkownikom na wysyłanie htmla to głupota. Nie lepiej żeby podawali dla przykładu
  1. <iframe width="480" height="360" src="http://www.youtube.com/embed/Obs-DU6SJZ4" frameborder="0" allowfullscreen></iframe>
samą wartość Obs-DU6SJZ4?
modern-web
mysql_real_escape_string usunie Ci jedynie cudzysłowie i znaczniki będące składnią języka SQL. radzę dogłębnie przefiltrować dane pod kątem znaczników HTML. najlepiej napisać własną klasę do takich rzeczy.
pozdrawiam!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.