Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Apostrof w textarea
roghatt
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


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...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


addslashes

pokaż kod, bo coś nie chce mi się wierzyć, że to jest problemem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
gorden
post
Post #3





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


mysql_real_escape_string
Go to the top of the page
+Quote Post
roghatt
post
Post #4





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


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);


Ten post edytował roghatt 12.10.2011, 21:42:19
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie addslashes tylko jak już ci napisano: mysql_real_escape_string()
Go to the top of the page
+Quote Post
roghatt
post
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


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





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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ć.
Go to the top of the page
+Quote Post
roghatt
post
Post #8





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


aa no ok, dzięki za wytłumaczenie. To pora przejść na mysql_real_escape_string
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: 23.08.2025 - 08:15