Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z cudzysłowiem
Forum PHP.pl > Forum > Przedszkole
slawek3422
witam,
mam inputa w ktorym wpisuje pewne wymiary np:

1.35" W x 11.2" S x 9.06" G

nastepnie te dane wysylem do skryptu ktory sprawdza poprawnosc wpisanych danych, jezeli jest ok to nastepuje zapis do bazy a jesli nie to wyswietla sie button "WSTECZ" i wracamy do mozliwosci poprawy danych, z tym ze po powrocie nie ma juz w inpucie calego ciagu "1.35" W x 11.2" S x 9.06" G", zostaje tylko 1,35 ...

probowalem przez addslashes i stripslashes ale nic, no chyba ze robie gdzies blad sad.gif help

input w formularzu wyglada tak:

  1. <!-- WYMIARY -->
  2.  
  3.  <tr>
  4. <td class="nazwa">
  5.  Wymiary :
  6. </td>
  7. <td colspan="2" class="input" align="center"><input name="wymiary_input" type="text" class="dl" value=" <?php echo stripslashes($_SESSION['wymiary']); ?>">
  8. </td>
  9.  </tr>


a w skrypcie mam:

  1. <?php
  2. $_SESSION['wymiary'] = addslashes($wymiary_input);
  3. ?>
rolnix
Powyłączaj magic_quotes_gpc i próbuj dalej?
slawek3422
jak wylacze magic_quotes to dostaje

1.35\

czyli wszystko od pierwszego cudzyslowia zostaje wyciete

widze ze nikt nie ma pomyslu albo nikt sie nie spotkal z czyms podobnym sad.gif

apostrofy ' nie są wycinane, moge ich wpisac kilka i bez problemu sie wyswietlaja po powrocie do formularza, problem jest tylko z cudzysłowiem sad.gif
b_chmura
spróbuj trochę po spartańsku
  1. <?php
  2. function wte($in)
  3. {
  4. reurnt str_replace('"', "*", $in);
  5. }
  6.  
  7. function inazat($in)
  8. {
  9. return str_replace('*','"', $in);
  10. }
  11. $_SESSION['wymiary'] = wte($wymiary_input);
  12. ?>
  13. <!-- WYMIARY -->
  14.  
  15.  <tr>
  16. <td class="nazwa">
  17.  Wymiary :
  18. </td>
  19. <td colspan="2" class="input" align="center"><input name="wymiary_input" type="text" class="dl" value=" <?php echo inazat($_SESSION['wymiary']); ?>">
  20. </td>
  21.  </tr>
slawek3422
również i w tym przypadku cudzysłów jest wycięty

jak dałem
  1. <?php echo str_replace('"', "1", $_SESSION['wymiary']) ?>

i wpisałem 13 "" to wynikiem było 13 11, ale jak zmieniłem na
  1. <?php echo str_replace('"', "\"", $_SESSION['wymiary']) ?>

to w wyniku otrzymałem 13

może to jakiś problem że w tablicy $_SESSION nie może być takich znaków ?


użycie Twoich funkcji nie dało rezultatu, jeśli zamiast cudzysłowa podstawiam jakikolwiek inny znak to jest OK, cudzysłów nie jest akceptowany, to dziwne bo z formularza POST-em leci cudzysłów do skryptu i tam jest normalnie widoczny, do bazy tez normalnie się zapisze, ale jak wracam do formularza to już lipa, w skrypcie dając

  1. <?php
  2. echo $_SESSION['wymiary'];
  3. ?>

to wynikiem jest poprawny ciąg z symbolem cala, natomiast do formularza nie chce przejść ten znak sad.gif już nie mam pomysłów sad.gif


i opanowałem sprawę... rozwiązaniem było coś takiego:

  1. <?php echo str_replace('"', "&quot", $_SESSION['wymiary']) ?>



dzięki za nakierowanie, pozdrawiam smile.gif
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.