Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z wstawieniem apostrofa '`' do formularza
mefistofeles
post
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
 
Start new topic
Odpowiedzi (1 - 9)
batman
post
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:
Go to the top of the page
+Quote Post
mefistofeles
post
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
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
Go to the top of the page
+Quote Post
unikat_
post
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
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?
Go to the top of the page
+Quote Post
unikat_
post
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 (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
mefistofeles
post
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
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.
Go to the top of the page
+Quote Post
sadistic_son
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 22:46