Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][HTML][PHP]znaczniki html w formularzu
czarnaowca777
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

Ostrzeżenie: (0%)
-----


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ć
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Ruch Radzionków
post
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

Ostrzeżenie: (0%)
-----


pokaz kod
Go to the top of the page
+Quote Post
Velius
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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 \
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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.

Ten post edytował mortus 28.03.2012, 20:06:22
Go to the top of the page
+Quote Post
Velius
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


@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?
Go to the top of the page
+Quote Post
modern-web
post
Post #6





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 19:34