Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak odroznic cale od apostrofa
Forum PHP.pl > Forum > Przedszkole
marmomm
mam problem z przesylaniem w zmiennych tekstu zawierajacego znaczek '' (czyli podwojny apostrof czytaj cale)

addslashes dodaje mi tylko /do pierwszego ' a drugi konczy mi zmienna w linku i robi sie kaszanka...

zalozmy ze zmienna ma wartosc
$zmienna = "costamz'' cali";
probowalem juz

echo '<a href="sdsds.php?co=',addslashes($zmienna),'">fsd</a>';
i
echo "<a href=\"sdsds.php?co=".addslashes($zmienna)."\">fsd</a>";


pomozecie?questionmark.gif
Vertical
Najlepiej byłoby dać w echo cudzysłów zamiast apostrofu:
  1. <?php
  2. echo &#092;"<a href='sdsds.php?co=$zmienna'>fsd</a>\";
  3. ?>
Sabistik
  1. <?php
  2. echo &#092;"<a href=\"sdsds.php?co=\"\".$zmienna.\"\">fsd</a>\";
  3. ?>
marmomm
no cos nie idzie wklejcie sobie ten kod i zobaczcie co to daje


  1. <?
  2. $zmienna = &#092;"blabla (3LP + bonus 7'' single)\";
  3. echo '<br>';echo $zmienna; echo '<br>';
  4. echo '<a href=\"test.php?co=',addslashes($zmienna),'\">proba1</a>';
  5. echo '<br><br>';
  6. echo &#092;"<a href=\"test.php?co=\".addslashes($zmienna).\"\">proba2</a>\";
  7. echo'<br><br>';
  8. //propozycja Vertical zzamienionymi slashami
  9. echo &#092;"<a href=\"test.php?co=\".$zmienna.\"\">proba Ver</a>\";
  10. echo'<br><br>';
  11. //propozycja Sabistik
  12. echo &#092;"<a href=\"test.php?co=\"\".$zmienna.\"\">proba Sab</a>\";
  13.  
  14.  echo '<br>';if ($co != '')
  15.  echo $co;
  16. ?>
Vertical
Zamiast linii
  1. <?php
  2. echo '<a href=\"test.php?co=',addslashes($zmienna),'\">proba1</a>';
  3. ?>

powinno być
  1. <?php
  2. echo '<a href=\"test.php?co='.addslashes($zmienna).'\">proba1</a>';
  3. ?>

Dałeś przecinki zamiast kropek
marmomm
Cytat(Vertical @ 2005-02-11 20:34:03)
Dałeś przecinki zamiast kropek

ejj !
a jakie to ma znaczenie dziala z , i z . tyle ze zle!

cos mi sie wydaje ze zgadujesz :/
Sabistik
  1. <?php
  2.  
  3. echo &#092;"<a href=\"test.php?co=\".addslashes($zmienna).\"\">ble</a>\";
  4.  
  5. ?>


to mi dziala poprawnie tym razem sprawdzone biggrin.gif
marmomm
a mi zadzialala wersja:
  1. <?php
  2. echo '<a href=\"test.php?co=',$zmienna,'\">proba1</a>';
  3. ?>

z
  1. <?php
  2. ?>


ale Twoja nie smile.gif
daje mi na wyjsciu:
gdy nie mam stripslashes: blabla (3LP bonus 7\\\'\\\' single)
gdy mam stripslases: blabla (3LP bonus 7\'\' single)
juz zglupialem..
rogrog
Cytat
  1. <?php
  2.  
  3. echo '<a href=\"sdsds.php?co=',addslashes($zmienna),'\">fsd</a>';
  4.  
  5. ?>


hmm zastanówmy się.

wprowadzamy załóżmy 52 cale: 52"

po pierwsze jak powinien wyglądać adres URL takiej strony?
czy

Kod
sdsds.php?co=52"

?

nie. urle kodujemy zgdonie z zasadami - w php realizuje to funkcja urlencode
url powinien wyglądać tak:

Kod
sdsds.php?co=52%22


dodatkowo powinieneś pamiętać że jeżeli chcesz użyć cudzysłowu w kodzie html to powinieneś użyć &quot; zamiast " - realizuje to funkcja htmlspecialchars albo htmlentities. W tym wypadku nie jest potrzebna bo cudzysłów został zamieniony na %22

trzeba sobie uzmysłowić że kiedy coś tworzymy, musimy to tworzyć zgodnie z zasadami. Tworzymy URL - zastępujemy znaki specjalne; tworzymy kod html - używamy encji zamiast &, " itp. . Tworzymy URL w HTMLu - pamiętamy o obydwóch sprawach. Tworzymy zapytanie SQL - dodajemy znaki ucieczki.
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.