Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] problem z addslashes ?
slawek3422
post 7.08.2007, 22:18:42
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 7
Dołączył: 3.08.2007
Skąd: śląsk

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


Witam,
moj problem polega na tym, ze mam formularz w ktorym jest sobie pole textarea:

  1. <?php
  2. <tr><td class="nazwa">
  3.  Opis : </td>
  4. <td colspan="2" class="input" align="center"><textarea name="opis" rows="5" cols="20"></textarea>
  5. </td></tr>
  6. ?>


wpisane dane przekazuje do skryptu:

  1. <?php
  2. $opis = trim($_POST['opis']);
  3. ?>


sprawdzam poprawnosc wpisanych danych:

  1. <?php
  2. echo "<tr><td class='nazwa'>";
  3. echo " Opis : </td>";
  4.  
  5. if ($opis == null){
  6. echo "<td class='ok'> BRAK DANYCH</td></tr>";
  7. $zapisz_opis == NULL;
  8.  
  9. } else {
  10.  
  11. if(ereg("^[0-9a-zA-ZąćęłńóśżźĄĆĘŁŃÓŚŻŹąśĽˇŚ+-/'Ź,.() ]{10,255}$",$opis)){
  12. echo "<td class='ok'> $opis</td></tr>";
  13. $zapisz_opis = $opis;
  14.  
  15. }  else  {
  16.  
  17. echo "<td class='bl'> Błędnie podano opis.</td></tr>";
  18. $opis_popr = "0";
  19. }}
  20. ?>


dodaje slashe:

  1. <?php
  2. $zapisz_opis = addslashes($zapisz_opis);
  3. ?>


i zapisuje do bazy danych:

  1. <?php
  2. $zapytanie = "insert into komputer (id, opis) values (NULL, '$zapisz_opis')";
  3. ?>



teraz wracam do formularza w ktorym wpisuje np. abcdefghijklmn
wysylam do skryptu zeby ten zapisal do bazy danych i wszystko ok

problem tkwi w tym ze jezeli we wpisanym tekscie pojawi sie np apostrof ==> ' to nie nastapi zapis pomimo ze funkcja ereg przepusci ten znak


w czym tkwi blad ? :/

dodam ze w phpMyAdminie moge sobie wstawic same apostrofy i wszystko jest ok
Go to the top of the page
+Quote Post
nospor
post 8.08.2007, 06:31:38
Post #2





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




po utworzeniu zapytania zrob:
  1. <?php
  2. echo $zapytanie;
  3. ?>
By sprawdzic jak wyglada to zapytanie. Naprawde cięzko wpaść na tak prosty sposob by dowiedziec sie co jest źle?
Pozatym tak na przyszlosc, jak wykonujesz zapytanie to wal w razie bledu komunikat bledu:
  1. <?php
  2. mysql_query($zapytanie) or die(mysql_error());
  3. ?>


ps: przyczyną bledu moze byc fakt, ze masz automatyczne slashowanie, potem ty recznie sleshujesz i w rezultacie masz podwojne slashowane. Ale to sie zobaczy jak zrobisz te trudne do wpadniecia echo.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
slawek3422
post 8.08.2007, 17:27:55
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 7
Dołączył: 3.08.2007
Skąd: śląsk

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


dzieki za naprowadzenie :roll2:
problem polegal na tym ze wyswietlona zmienna ktora wykonywla zapis zawierala poszczegolne wartosci w apostrofach, a ja wpisujac apostrof do textarea kladlem skrypt,


poprawna wersja zapytania powinna wygladac tak:
  1. <?php
  2. $zapytanie = 'insert into komputer (id, opis) values (NULL, "'.$zapisz_opis.'")';
  3. ?>


tak zrobilem i smiga, pozdro :roll2:
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 16:10