Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z wstawieniem apostrofa '`' do formularza
mefistofeles
post 6.02.2010, 09:51:28
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


Mam zmienną: $a='Tekst`z apostrofem';

Wszędzie jest ok ale jak ją wstawiam w ten sposób:

  1. echo "<tr>
  2. <td rowspan='2'><B>Tytuł:</B></td>
  3. <td><input type='text' name='tytul' size='60' value='".$a."' /></td>
  4. </tr>



To pojawi się tylko 'Tekst' reszta od apostrofa do końca zostaje wycięta.
Dlaczego ?

Ten post edytował mefistofeles 6.02.2010, 09:51:41
Go to the top of the page
+Quote Post
batman
post 6.02.2010, 10:01:58
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Dzieje się tak dlatego, ponieważ apostrof z wstawianego tekstu zamyka apostrof atrybutu value. Aby temu zapobiec musisz skorzystać z jednej z poniższych funkcji:


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
mefistofeles
post 6.02.2010, 10:21:22
Post #3





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


No tak.
Tylko jest mały problem bo próbowałem z tymi funkcjami i jest tak samo.
Jedynie gdy używam:

$a=addslashes($a);

To w miejscu gdzie miał byćapostrof pojawia się slash:
Tekst/'


Wiem jak to obejść tylko potrzebuja jeszcze małej pomocy:

  1. $tytul = str_replace('`', 'a', $tytul);


Pierwszy problem to to, że w/w funkcja nie zamienia apostrofu na a, czemu ?
Drugi to taki jaki jest kod apostrofu w notacji typu
  1. &#123
(encja) ?

Ten post edytował mefistofeles 6.02.2010, 10:33:19
Go to the top of the page
+Quote Post
sadistic_son
post 6.02.2010, 11:03:14
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(batman @ 6.02.2010, 10:01:58 ) *
Dzieje się tak dlatego, ponieważ apostrof z wstawianego tekstu zamyka apostrof atrybutu value. Aby temu zapobiec musisz skorzystać z jednej z poniższych funkcji:

Muszę się nie zgodzić! Nie w tym wypadku. Tutaj dzieje się tak dlatego, że czałość wyświetlasz w " a wartość value w '. A powinno być na odwrót. Spróbuj tak:
  1. echo '<tr>
  2. <td rowspan="2"><B>Tytuł:</B></td>
  3. <td><input type="text" name="tytul" size="60" value="'.$a.'" /></td>
  4. </tr>';
lub tak:
  1. echo "<tr>
  2. <td rowspan=\"2\"><B>Tytuł:</B></td>
  3. <td><input type=\"text\" name=\"tytul\" size=\"60\" value=\"$a\" /></td>
  4. </tr>";

Teraz zadziała choćbyś nie wiem co miał w zmiennej $a.

Ten post edytował sadistic_son 6.02.2010, 11:08:45


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
unikat_
post 6.02.2010, 11:13:26
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 23.06.2009

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


właśnie że wszystko jest tak jak trzeba, u mnie taki kod wyświetla poprawne wyniki:
  1. <?php
  2.  
  3. $a='Tekst`z apostrofem';
  4. $a = addslashes($a) ;
  5.  
  6.  
  7. echo "<tr>
  8.  
  9. <td rowspan='2'><B>Tytuł:</B></td>
  10.  
  11.  
  12. <td><input type='text' name='tytul' size='60' value='".$a."' /></td>
  13.  
  14. </tr>" ?>



Go to the top of the page
+Quote Post
evolucja
post 6.02.2010, 11:14:00
Post #6





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


A jeśli w zmienna będzie wyglądać tak? $a = '"/>cos'; ? To zamknie tego inputa czy wyświetli się w nim?


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
unikat_
post 6.02.2010, 11:21:05
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 23.06.2009

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


Cytat(evolucja @ 6.02.2010, 11:14:00 ) *
A jeśli w zmienna będzie wyglądać tak? $a = '"/>cos'; ? To zamknie tego inputa czy wyświetli się w nim?


u mnie wyświetli się w nim winksmiley.jpg
Go to the top of the page
+Quote Post
mefistofeles
post 6.02.2010, 12:38:08
Post #8





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


Dzięki za pomoc.
Wszystko gra.
Go to the top of the page
+Quote Post
batman
post 6.02.2010, 12:55:41
Post #9





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(sadistic_son @ 6.02.2010, 11:03:14 ) *
Teraz zadziała choćbyś nie wiem co miał w zmiennej $a.
Gwoli ścisłości. Wstaw do takiego formularza cudzysłów ("), a uzyskasz taki sam efekt. Niezależnie od sposobu pisania (pomijając to, który jest poprawny), należy odpowiednio filtrować dane.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
sadistic_son
post 6.02.2010, 18:32:35
Post #10





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Ok, zgadzam się. Ale temat dotyczył apostrofu (tego nad TAB) i moje rozwiązanie, proste, acz działające odpowiada na zadane w temacie pytanie.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
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: 12.07.2025 - 11:57