Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Problem z " przy formularzu
kaszanka
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Hi,

Wysyłając formularz gdzie w inpucie wpiszemy np:
  1. temat: "książka czarowników"
w wyniku otrzymamy:
  1. temat:
czyli usunie nam to co mamy w " ", natomiast gdy wpiszemy
  1. temat"książka
to wynik będzie:
  1. temat\"książka


z php.net.pl oraz grupy dyskusyjnej wyciągnąłem kod:
  1. <?php
  2.  function stripslashes_array($array) { return is_array($array) ? array_map('stripslashes_array',$array) : stripslashes($array); }
  3.  $_SERVER = stripslashes_array($_SERVER);
  4. $_GET = stripslashes_array($_GET);
  5. $_POST = stripslashes_array($_POST);
  6. $_COOKIE = stripslashes_array($_COOKIE);
  7. $_FILES = stripslashes_array($_FILES);
  8. $_ENV = stripslashes_array($_ENV);
  9. $_REQUEST = stripslashes_array($_REQUEST);
  10. $HTTP_SERVER_VARS = stripslashes_array($HTTP_SERVER_VARS);
  11. $HTTP_GET_VARS = stripslashes_array($HTTP_GET_VARS);
  12. $HTTP_POST_VARS = stripslashes_array($HTTP_POST_VARS);
  13. $HTTP_COOKIE_VARS = stripslashes_array($HTTP_COOKIE_VARS);
  14. $HTTP_POST_FILES = stripslashes_array($HTTP_POST_FILES);
  15. $HTTP_ENV_VARS = stripslashes_array($HTTP_ENV_VARS);
  16. }
  17. ?>

Ale i tak nic to nie dało.
Próbowałem dać np:
  1. <?php
  2.  function stripslashes_array($array) { return is_array($array) ? array_map('stripslashes_array',$array) : stripslashes($array); }
  3.  
  4. $tytul = stripslashes_array($tytul); // zmienna z jednego inputa
  5.  
  6.  $_SERVER = stripslashes_array($_SERVER);
  7. $_GET = stripslashes_array($_GET);
  8. $_POST = stripslashes_array($_POST);
  9. $_COOKIE = stripslashes_array($_COOKIE);
  10. $_FILES = stripslashes_array($_FILES);
  11. $_ENV = stripslashes_array($_ENV);
  12. $_REQUEST = stripslashes_array($_REQUEST);
  13. $HTTP_SERVER_VARS = stripslashes_array($HTTP_SERVER_VARS);
  14. $HTTP_GET_VARS = stripslashes_array($HTTP_GET_VARS);
  15. $HTTP_POST_VARS = stripslashes_array($HTTP_POST_VARS);
  16. $HTTP_COOKIE_VARS = stripslashes_array($HTTP_COOKIE_VARS);
  17. $HTTP_POST_FILES = stripslashes_array($HTTP_POST_FILES);
  18. $HTTP_ENV_VARS = stripslashes_array($HTTP_ENV_VARS);
  19. }
  20. ?>
to działa ale gdy dodam do powyższego kodu dodatkową zmienną z drugiego inputa to już nie działa dla obu sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


  1. <?php
  2. $str = 'string z cudzyslowami przeslany POSTem"""""asdasd""ASDasdad';
  3. echo str_replace('"', '&quot;', $str);
  4. ?>
to Ci zamieni cudzyslowia na quoty winksmiley.jpg


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
l0ud
post
Post #3





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Nie ma co tak kombinować. Przy odbieraniu danych od użytkownika (bądź przed zapisem do bazy/pliku - lepiej) użyj funkcji addslashes().
http://pl2.php.net/manual/pl/function.addslashes.php

Wtedy dodasz \ przed ", a nie będziesz się martwił, czy to PHP samo zrobi czy nie zrobi.

Przy wyrzucaniu zmiennej do formularza, użyj stripslashes() i htmlspecialchars(). Stripslashes usunie \ przed ", a htmlspecialchars zamieni " na odpowiednie znaki dla html'a.

  1. <?php
  2. ?>


http://pl2.php.net/manual/pl/function.htmlspecialchars.php
http://pl2.php.net/manual/pl/function.stripslashes.php


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
kaszanka
post
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Wszystko fajnie, tylko metoda "@my salsa" nie działa dla formularzy z method=post wysyłanych submitem.

Ten post edytował kaszanka 3.03.2008, 19:46:31
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 Aktualny czas: 21.08.2025 - 18:02