Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Apostrof w textarea
Forum PHP.pl > Forum > Przedszkole
roghatt
Witam
Mam w panelu administracyjnym pole textarea w którym wklejam kod banera i następnie wysyłane jest to do bazy. Baner się ładnie wyświetla na stronie.
Problem pojawił się dzisiaj, nie dodaje mi już tego kodu do bazy a przyczyną jest apostrof '.
Wczoraj jeszcze bez problemu wszystko się dodawało, dzisiaj już nie, czy to może być przez zmianę "czegoś" na serwerze? Może upgrade php...
  1. INSERT INTO tabela VALUES (' ','$zmienna','$zmienna1','$zmienna2')

zmienne wpisywane do bazy pobierane są z formularza za pomocą POST, echo zmienna przed dodaniem do bazy prawidłowo wyświetla kod banera razem z apostrofami.
Ale już do bazy się nie dodaje. Dopiero jak wstawię ukośnik \ przed każdym apostrofem to wtedy się dodaje.
Czy jest jakaś funkcja przez którą można przepuścić zmienną aby w nim wstawiło ukośnik przed apostrofem? Bo ciągłe wpisywanie ręcznie strasznie to denerwuje.

Ale dlaczego do wczoraj bez problemu to dodawało a dzisiaj już nie...
Pawel_W
addslashes

pokaż kod, bo coś nie chce mi się wierzyć, że to jest problemem smile.gif
gorden
mysql_real_escape_string
roghatt
właśnie usuwałem pokolei znaki w tym banerze i nagle po wstawieniu apostrofa nic już nie było dodawane do bazy.
A kod:
  1. $zmienna=$_POST['zmienna'];
  2. $zmienna1=$_POST['zmienna1'];
  3. $zmienna2=$_POST['zmienna2'];
  4.  
  5. if ($zmienna) {
  6. mysql_query ("INSERT INTO tabela VALUES (' ','$zmienna','$zmienna1','$zmienna2');");
  7. echo("Dane zostaly dodane.");
  8. }

to jest ten kawałem gdzie wypisywane są zmienne i właśnie jeśli jedna zawiera apostrof to nie dodaje nic do bazy...
A te apostrofy '$zmienna' nie mieszają się z tym co jest w zmiennej? 'coscos'coscos'
i tu już by sie chyba gubiło.


EDIT

dobra dzięki addslashes rozwiązało szybko problem
Każdą zmienna przez to przerzucam
  1. $zmienna = addslashes($zmienna);
nospor
Nie addslashes tylko jak już ci napisano: mysql_real_escape_string()
roghatt
ok ale co złego jest jak użyję addslashes?
W chwili obecnej dopisuje mi przed dodaniem do bazy ukośnik przed apostrofem. Wszystko dobrze działa.
Czy addslashes może spowodować jakieś problemy?
nospor
addslashes to addslashes.
mysql_real_escape_string to mysql_real_escape_string
Pierwsza służy do dodawani slashy
Druga służy do bezpiecznego wstawiania tekstów do zapytania. A to ze przy okazji robi między innymi podobną rzecz do addslashes to zwykły zbieg okolicznosci.

mysql_real_escape_string jest funkcją dedykowaną dla mysql i jej masz używać.
roghatt
aa no ok, dzięki za wytłumaczenie. To pora przejść na mysql_real_escape_string
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.