Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] problem z addslashes ?
Forum PHP.pl > Forum > Przedszkole
slawek3422
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
nospor
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.
slawek3422
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:
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.