Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Instrukcja echo <<<XXX ... XXX;, Dlaczego nie działa?
VitGryfny
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Proszę powiedzieć dlaczego nie zakańcza się po naptkaniu XXX; tylko wyświetla cały kod jak tekst wraz z tym wraz z XXX;

W moim przypadku echo <<<FRM ... FRM; Zgodnie z jedną z książek owa instrukcja ma działać.
  1.  
  2. <?
  3.  
  4. if ($_POST['imie']=="")
  5. { echo <<<FRM
  6. <form method='POST'>
  7. Wprowadź nick: <input type="text" name="nick">
  8. <input type="submit" value="Pokaż"
  9. </form>
  10. FRM;
  11. }
  12. else
  13. {
  14. echo ($_POST['imie']);
  15. }
  16.  
  17. ?>

Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 20)
smietek
post
Post #2





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

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


Po co kombinować jak koń pod górę?
  1. echo '<form method="post">
  2. Wprowadź nick: <input type="text" name="nick">
  3. <input type="submit" value="Pokaż"
  4. </form>';


Ten post edytował smietek 24.09.2010, 10:09:12
Go to the top of the page
+Quote Post
VitGryfny
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Dziękuję. Wprowadziłem zmianę i mimo to wyświetla mi coś takiego:
(W nawiasie kwadratowym symulacja buttona ->) [Pokaż] '} else{ echo ($_POST['imie']);} ?>
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




A masz php na servie ? (IMG:style_emoticons/default/smile.gif)
I czy plik kończy się na .php ?
Go to the top of the page
+Quote Post
VitGryfny
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Tak. Używam wampserver. Bez tego nawet to by mi się nie wyświetliło (IMG:style_emoticons/default/smile.gif) tylko sam kod. Tak, plik kończy się na php.
Go to the top of the page
+Quote Post
Daiquiri
post
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Cytat(VitGryfny @ 24.09.2010, 11:28:00 ) *
Dziękuję. Wprowadziłem zmianę i mimo to wyświetla mi coś takiego:
(W nawiasie kwadratowym symulacja buttona ->) [Pokaż] '} else{ echo ($_POST['imie']);} ?>
Jeżeli wyświetla Ci się else to znaczy, że masz źle domknięte echo. Powinno być
  1. echo 'wszystko co ma być wyświetlone, a nie jest zmienną itd.';
Go to the top of the page
+Quote Post
VitGryfny
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Ręcę opadają. Jakolwiek bym tego nie zamknął ciągle wyświetla mi część kodu. Wyświetla sam button, bez formularza do wpisania danej.
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Pokaż cały kod.
Go to the top of the page
+Quote Post
VitGryfny
post
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Oto kod. Domknąłęm trochę lepiej to echo i widzę już pasek formularza.
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6.  
  7. <?
  8.  
  9. if
  10. ($_POST['nick']=="")
  11. {
  12. echo ("<form method='POST'>
  13. <input type="text" name="nick" size="20">
  14. <input type="submit" value="Pokaż">
  15. </form>");
  16.  
  17. }
  18.  
  19. else
  20.  
  21. {echo '$_POST['nick'];}
  22.  
  23. ?>
  24.  
  25. </body>
  26. </html>
Go to the top of the page
+Quote Post
Spawnm
post
Post #10





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Widzę że masz wyłączone błędy ...
Twój kod ma pełno podstawowych błędów.

nie:
echo ("<form method='POST'>
<input type="text" name="nick" size="20">...
tylko
echo ("<form method='POST'>
<input type=\"text\" name=\"nick\" size=\"20\">...

dalej to samo, popraw wszędzie.


Dawaj na początku kodu zawsze
  1. error_reporting(E_ALL|E_STRICT);
dzięki temu będziesz dostawać komunikaty co jest źle.
Go to the top of the page
+Quote Post
Daiquiri
post
Post #11





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Pozwolę sobie uzupełnić, to co już właściwie napisał Spawnm. Echo z "" pozwala na wstawienie wewnątrz zmiennych (bo kod jest analizowany pod tym kątem) - natomiast nie możesz wstawić wewnątrz kolejnych "" bo skąd wtedy "będzie wiadomo" gdzie kończy się echo? Zasadniczo uważaj na to jak zamykasz i otwierasz echo. No i tak na marginesie zauważ jak kolorowana jest składnia. Po tym "na oko" będziesz w stanie stwierdzić, że coś jest nie tak.
Go to the top of the page
+Quote Post
VitGryfny
post
Post #12





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Backslashe w lini 9 sprawia, że zamiast guzika pojawia się pole tekstowe z wpisanym już \"Pokaż\"
else wciąż się pojawia chociaż, jak dla mnie, wszystko wydaje się dobrze pozamykane
Linia 2 - error reporting nie działa. Może mam wyłączyć jakieś aplikacje typu windows massenger (skype przeszkadza w działaniu wampa)

  1. <?
  2. error_reporting(E_ALL,E_STRICT);
  3.  
  4. if
  5. ($_POST['nick']=="")
  6. {
  7. echo ("<form method='POST'>
  8. <input type=\"text\" name=\"nick\" size=\"20\">
  9. <input type="submit" value="Pokaż">
  10. </form>");
  11. }
  12.  
  13. else
  14.  
  15. {echo ("$_POST['nick']")}
  16.  
  17. ?>
Go to the top of the page
+Quote Post
Spawnm
post
Post #13





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat
popraw wszędzie.


  1. echo ("<form method='POST'>
  2. <input type=\"text\" name=\"nick\" size=\"20\">
  3. <input type="submit" value="Pokaż">
  4. </form>");
Go to the top of the page
+Quote Post
VitGryfny
post
Post #14





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Cytat(Spawnm @ 24.09.2010, 13:45:22 ) *
  1. echo ("<form method='POST'>
  2. <input type=\"text\" name=\"nick\" size=\"20\">
  3. <input type="submit" value="Pokaż">
  4. </form>");


Backslashe w (tu) lini 3 sprawia, że zamiast guzika pojawia się pole tekstowe z wpisanym \"Pokaż\"
Go to the top of the page
+Quote Post
Daiquiri
post
Post #15





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




VitGryfny - za dużo kombinujesz ze zwykłym echo. Jeżeli korzystasz z "" to musisz WSZĘDZIE (jak już napisał Spawnm) wstawić backslashe. Możesz też skorzystać z echo '' i wstawiać dowolną liczbę "" w środku. Np.
  1. echo '<input type="submit" value="Pokaż">';


@down:
To chyba logiczne? (IMG:style_emoticons/default/smile.gif) Tylko z tego co widać, VitGryfny częściej korzysta z "" niż z ''.

Ten post edytował Daiquiri 24.09.2010, 13:27:05
Go to the top of the page
+Quote Post
Ulysess
post
Post #16





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


ALE jeśli w zawartości będzie miał '' wtedy przed każdym ' musi wstawić backslasha (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
VitGryfny
post
Post #17





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 22.09.2010

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


Nie wiem. Ktoś z was może to po prostu przetestować? Gdy używam:
  1. echo '<...>'

to w ogóle nie wyświetla pola tekstowego. Wyświetla natomiast gdy ujmę w:
  1. echo ("<...>")

Czy ktoś jest w stanie przedstawić działający kod z poprawkami na to co napisałem ja?
Go to the top of the page
+Quote Post
thurinon
post
Post #18





Grupa: Zarejestrowani
Postów: 55
Pomógł: 2
Dołączył: 8.10.2009

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


  1. <?php
  2. if ($_POST['imie']=="")
  3.  
  4. {
  5. //Otwieramy echo apostrofem
  6. //Dzięki temu możemy używać w środku ile chcemy cudzysłowów bez żadnych komplikacji
  7. echo '<form method="POST">
  8. Wprowadź nick: <input type="text" name="imie">
  9. <input type="submit" value="Pokaż">
  10. </form>'; // na końcu musimy poprawnie zamknąć echo robimy to wstawiając apostrof a za nim średnik
  11. }
  12.  
  13. else
  14.  
  15. {
  16. echo $_POST['imie'];
  17. }
  18. ?>


A w pierwszym poście masz błąd - zmienne $_POST['imie] a w formularzu masz input name="nick".

Sprawdzone i działa

Ten post edytował thurinon 24.09.2010, 15:24:27
Go to the top of the page
+Quote Post
Daiquiri
post
Post #19





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Cytat(VitGryfny @ 24.09.2010, 15:53:32 ) *
Nie wiem. Ktoś z was może to po prostu przetestować? Gdy używam:
Na końcu ma być średnik!
Go to the top of the page
+Quote Post
Otto
post
Post #20





Grupa: Zarejestrowani
Postów: 144
Pomógł: 7
Dołączył: 22.03.2010

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


Ja bym to napisał tak:

  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6.  
  7. <?php
  8. if (!isset($_POST['nick']) || $_POST['nick'] == "") {
  9. ?>
  10. <form method='post' action='plik.php'>
  11. <input type="text" name="nick" size="20">
  12. <input type="submit" value="Pokaż">
  13. </form>
  14. <?php
  15. } else {
  16. echo $_POST['nick'];
  17. }
  18. ?>
  19. </body>
  20. </html>


Ten post edytował Otto 24.09.2010, 15:34:25
Go to the top of the page
+Quote Post
smietek
post
Post #21





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

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


Cytat(Otto @ 24.09.2010, 16:32:37 ) *
Ja bym to napisał tak:

  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6.  
  7. <?php
  8. if (!isset($_POST['nick']) || $_POST['nick'] == "") {
  9. ?>
  10. <form method='post' action='plik.php'>
  11. <input type="text" name="nick" size="20">
  12. <input type="submit" value="Pokaż">
  13. </form>
  14. <?php
  15. } else {
  16. echo $_POST['nick'];
  17. }
  18. ?>
  19. </body>
  20. </html>

A ja bym tak nie napisał, bo mieszanie HTMLa z PHP na takim poziomie to udręka dla dalszej modyfikacji kodu.

To powinno być tak (jeśli nie korzystamy z żadnych szablonów):
  1. <?php
  2. if(empty($_POST['nick'])){
  3. echo '<form method="post" action="plik.php">
  4. <input type="text" name="nick" size="20"/>
  5. <input type="submit" value="Pokaż"/>
  6. </form>';
  7. } else {
  8. echo $_POST['nick'];
  9. }
  10. ?>


Ten post edytował smietek 24.09.2010, 18:49:36
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 3.10.2025 - 10:19