Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Wykrzaczanie się kodu php
dawido000
post 28.03.2011, 20:51:23
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 28.03.2011

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


Witam, mam taki problem (uważam, że drobny no ale cóż nie mogę znaleźć rozwiązania). Otóż stworzyłem plik prztworzzamowienie.php . Wygląda on tak:

  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  2. <title>Części samochodowe Janka</title>
  3. </head>
  4. <h1>Części samochodowe Janka</h1>
  5. <h2>Wyniki zamówienia</h2>
  6. <?php
  7. echo("<p>Zamówienie przyjęte</p>");
  8. ?>
  9. </body>
  10. </html>


Kiedy uruchamiam ten plik w przeglądarce firefox, wyskakuje mi wykrzaczenie we fragmencie użytego kodu php:

Części samochodowe Janka
Wyniki zamówienia
Zamówienie przyjęte
"); ?>


Dlaczego?
Go to the top of the page
+Quote Post
JoShiMa
post 28.03.2011, 20:57:25
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A po co używasz nawiasów przy funkcji echo? Napisz:

  1. <h2>Wyniki zamówienia</h2>
  2. <p><?php echo 'Zamówienie przyjęte' ?></p>


I nie stosuj bez potrzeby znaków" w tym wypadku wystarczy '


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 28.03.2011, 21:02:53
Post #3





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

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


Przecież Twoje poprawki nie zmienią zupełnie nic. Te nawiasy mogą być jak i wcale nie muszą, tak samo cudzysłowy. Owszem Twoje jest bardziej poprawne ale na dobrą sprawę to to samo co kolega dawido zastosował.


--------------------
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
Mackos
post 28.03.2011, 21:42:27
Post #4





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


Mam trzy subtelne pytania, Czy jestes pewien że plik który otwierasz to plik .php ?
Czy na innych przeglądarkach działa?
Na czym odtwarzasz plik, zdalny/lokalny serwer? i czy jesteś pewien że ma on obsługę php?

Ten post edytował Mackos 28.03.2011, 21:43:16


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
dawido000
post 28.03.2011, 21:42:39
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 28.03.2011

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


Joshima, twój zapis powoduje, że nie generuje mi się nawet ten napis "Zamówienie przyjęte" - czysty ekran w przeglądarce.
Go to the top of the page
+Quote Post
Fifi209
post 28.03.2011, 21:45:22
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(dawido000 @ 28.03.2011, 22:42:39 ) *
czysty ekran w przeglądarce.

Brak średnika. Tak ciężko dostrzec ?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
dawido000
post 28.03.2011, 21:49:21
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Mackos @ 28.03.2011, 22:42:27 ) *
Mam trzy subtelne pytania, Czy jestes pewien że plik który otwierasz to plik .php ?
Czy na innych przeglądarkach działa?
Na czym odtwarzasz plik, zdalny/lokalny serwer? i czy jesteś pewien że ma on obsługę php?


Jestem pewien, że to plik php.
Na innych przeglądarkach np. internet explorer to pokazuje mi się skrzkowany kod html.
Zainstalowałem sobie lokalny serwer: Apache 2.2 do tego mysql oraz php+perl

Też myślę, że problem leży w konfiguracji serwera.

Cytat(fifi209 @ 28.03.2011, 22:45:22 ) *
Brak średnika. Tak ciężko dostrzec ?


Średnik też nic nie zmienił - czyste tło i brak napisu.
Go to the top of the page
+Quote Post
_borek
post 28.03.2011, 21:50:02
Post #8





Grupa: Zarejestrowani
Postów: 2
Pomógł: 1
Dołączył: 24.03.2011

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


Cytat(fifi209 @ 28.03.2011, 22:45:22 ) *
Brak średnika. Tak ciężko dostrzec ?


W przykładzie który podał Joshima średnik jest niepotrzebny. Masz grubo ponad 3000 postów tutaj i jeszcze tego nie wiesz ?
Go to the top of the page
+Quote Post
Mackos
post 28.03.2011, 23:59:55
Post #9





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

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


@up Średnik dajemy zawsze. Faktu nie zmienia to że w tym wypadku będzie działać bez niego.

@dawido000 Weź zrób nowy plik php
  1. <?php echo phpinfo(); ?>

I sprawdź czy Ci wyświetli to co powinno.
Ewentualnie wrzuć swój plik na jakiś wirtualny serwer (taki gdzie na 100% jest zainstalowny PHP) i sprawdź czy działa.

Powiedz jeszcze w czym edytujesz/piszesz te pliki?


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
wmatusiak
post 29.03.2011, 00:19:21
Post #10





Grupa: Zarejestrowani
Postów: 25
Pomógł: 7
Dołączył: 27.03.2011
Skąd: Kęty

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


Cytat(Mackos @ 29.03.2011, 00:59:55 ) *
  1. <?php echo phpinfo(); ?>


Jak już się czepiać to
  1. <?php phpinfo(); ?>

Ta funkcja wypisuje zawartość i zwraca Boolean więc poco echo ?
A średnik warto postawić dla pewności i nie generowania sobie problemów w przyszłości przy edycji wink.gif


A teraz w temacie:
1. Plik jest w katalogu serwera najczęściej miejsce <instalacji serwera>/www ?
2. w przeglądarce wpisujesz http://localhost/nazwa_pliku.php lub http://nazwaKomputera/nazwa_pliku.php ?
3. Wspomniana wyżej zawartość pliku dział ?
Go to the top of the page
+Quote Post
JoShiMa
post 29.03.2011, 00:20:49
Post #11





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(fifi209 @ 28.03.2011, 21:45:22 ) *
Brak średnika. Tak ciężko dostrzec ?


Ha haha... I wcale nie musi go tam być.


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 29.03.2011, 01:51:32
Post #12





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

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


BRAWO. Ustaliliście już, że tego średnika tam być nie musi, choć ze względów praktycznych być powinien, mimo że skrypt będzie działać w 100% sprawnie i bez niego.
Moglibyśmy przyjąć to już za pewnik i więcej do tego nie wracać? Jeśli ktoś będzie miał jednak nieodpartą pokusę dalej upierać się, że średnik musi tam być to niech łaskawie zajrzy najpierw do manuala i uważnie przeczyta to:
Cytat
Zamykający znacznik bloku kodu PHP automatycznie implikuje średnik; nie musisz mieć średnika zamykającego ostatnią linię z bloku PHP.
To samo tyczy się CSS.

A teraz wróćmy do problemu dawido000.
Otóż drogi kolego. Z Twojego kodu można otrzymać wynik jaki nam podałeś w dwóch następujących sytuacjach:
- jeśli plik ma rozszerzenie html a nie php (lub htm, xhtml itd.)
- jeśli ma rozszerzenie php ale odpalisz go bezpośrednio w przeglądarce, czyli np. prawy klik na plik -> Open With -> Firefox. I nie ma tutaj znaczenia czy serwer działa, czy jest poprawnie skonfigurowany i czy plik znajduje się w folderze z httpdocsami. Po takim uruchomieniu go przeglądarka potraktuje go jako html.

Być może jest więcej przypadków kiedy tak się zachowa... nie wiem.

Dalej... napisałeś
Cytat
Kiedy uruchamiam ten plik w przeglądarce firefox, wyskakuje mi wykrzaczenie we fragmencie użytego kodu php:
Dla 100% pewności zapytam, a właściwie wyjaśnię co następuje:
- plik ten musi mieć rozszerzenie php
- musi znajdować się w folderze serwera , na przykład C:\Program Files\WebServ\httpd
- serwer musi być uruchomiony, a przynajmniej Apache odpalony
- skrypty php odpalasz wpisując w przeglądarce np: http://localhost/prztworzzamowienie.php Plik prztworzzamowienie.php odpali się jeśli znajduje się w folderze httpd, zakładając że nie zmieniłeś przy instalacji ścieżki domyślnej. Kliknij na ten link i sprawdź co się stanie.

Idąc dalej nie wyobrażam sobie jak musiałbyś namieszać w konfiguracji serwera aby powyższy kod Ci nie zadziałał. Domyślna konfiguracja absolutnie powinna wykonać Twój skrypt tak jak należy.
Podsumowując:
1) Wszystkie poniższe zapisy są poprawne i wyświetlą to samo:
  1. <?php
  2. echo("<p>Zamówienie przyjęte</p>");
  3. echo '<p>Zamówienie przyjęte</p>';
  4. echo "<p>Zamówienie przyjęte</p>";
  5. echo ("<p>Zamówienie przyjęte</p>");
  6. echo ('<p>Zamówienie przyjęte</p>'); ?>
  7. <p> <?php echo 'Zamówienie przyjęte'; ?></p>
  8. <p> <?php echo 'Zamówienie przyjęte' ?></p>
  9. //i jeszcze parę innych kombinacji tych powyższych

2) Pojawiają Ci się takie krzaki bo zapewne zapisujesz plik w innym kodowaniu niż je ustawiłeś. W swoim kodzie masz iso-8859-2 i takie samo musisz wskazać przy zapisie w programie w którym edytujesz plik. Zwykły notepad nie daje tej opcji kodowania przy zapisie. A przynajmniej mój nie.

Sprawdź to wszystko bo to MUSI działać.
Twój problem można by opisać tak: wstawiam wodę w czajniku ale nie chce się zagotować. I teraz na forum kucharskim ludzie Ci podpowiadają abyś sprawdził czy w kuchni nie ma temperatury -90 stopni C, czy czajnik nie stoi pod kranem z lecącą zimną wodą, czy czajnik nie ma wbudowanego klimatyzatora, kłócąc się jednocześnie że brak gwizdka nie powinien zaburzyć gotowania wody. Ale nikt nie zapyta czy pali się pod nim gaz bo napisałeś, że wstawiasz wodę, nie tłumacząc jednak w jaki sposób. A każdy przyjął zapalenie gazu za oczywiste biggrin.gif

PS Daję głowę, że odpalasz plik bezpośrednio tak, jak to opisałem wyżej, zamiast przez wpisanie adresu w przeglądarce. Daj znać co było nie tak.

Ten post edytował sadistic_son 29.03.2011, 02:20:54


--------------------
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
desperat666
post 29.03.2011, 04:38:55
Post #13





Grupa: Zarejestrowani
Postów: 31
Pomógł: 12
Dołączył: 19.03.2011

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


CZAJNIK exclamation.gif! AAHHAHAHHHAHAH, ROTFL
Go to the top of the page
+Quote Post
PlayKiller
post 29.03.2011, 16:05:07
Post #14





Grupa: Zarejestrowani
Postów: 29
Pomógł: 3
Dołączył: 16.10.2008

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


Cytat
wyskakuje mi wykrzaczenie


Jak mamy to rozumieć...?


Opisz dokładnie co robisz, bo z tego co piszesz wynika na to, że plik z kodem PHP odpalasz prosto w przeglądarce.
Go to the top of the page
+Quote Post
foxbond
post 29.03.2011, 16:31:16
Post #15





Grupa: Zarejestrowani
Postów: 162
Pomógł: 12
Dołączył: 20.12.2009
Skąd: Siedlce

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


offtopic.gif

Może być także:
  1. <?php='zam. przyjęte!' ?>

Nie ma co się tutaj kłócić, tak jak napisał sadistic_son, autor zapewne odpalał plik bezpośrednio, a nie przez 'http://localhost/[...]'
Go to the top of the page
+Quote Post
dawido000
post 29.03.2011, 16:56:29
Post #16





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 28.03.2011

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


Skrypt prztworzzamowienie.php jest wywoływany z poziomu innego pliku, który znajduje się w tym samy folderze (apache/httpd). Kod tego pliku jest zapisany w formie html i wygląda tak:

  1. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  2. <form action="przetworzzamowienie.php" method=post>
  3. <table border=0>
  4. <tr bgcolor=#cccccc>
  5. <td width="150">Produkt</td>
  6. <td width="15">Ilość</td>
  7. </tr>
  8. <tr>
  9. <td>Opony</td>
  10. <td align="center"><input type="text" name="iloscopon" size="3" maxlength="3"></td>
  11. </tr>
  12. <tr>
  13. <td>Olej</td>
  14. <td align="center"><input type="text" name="iloscoleju" size="3" maxlength="3"></td>
  15. </tr>
  16. <tr>
  17. <td>Świece zapłonowe</td>
  18. <td align="center"><input type="text" name="iloscswiec" size="3" maxlength="3"></td>
  19. </tr>
  20. <tr>
  21. <td colspan="2" align="center"><input type="submit" value="Złóż zamówienie"></td>
  22. </tr>
  23. </form>


Jeżeli chodzi o wywoływanie za pośrednictwem localhost to macie rację - skrypt uruchamia się poprawnie. Ale co z kodem powyżej? Wiadomo, że ten plik wywołuje plik php i wszystko dzieje się w przeglądarce, więc dlaczego nie widać napisu?

Ten post edytował dawido000 29.03.2011, 16:58:42
Go to the top of the page
+Quote Post
pajaa1981
post 29.03.2011, 17:27:21
Post #17





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Skoro action jest na ten skrypt, to już niemożliwe, że się nie wykona. Błąd leży po Twojej stronie. To jest tak jakbyś zadzwonił do mnie i powiedział: "Słuchaj, mam problem, auto mi nie odpala, co jest nie tak?". Nie możemy stwierdzić co źle robisz. Sprawdź czy adres w przeglądarce to http://localhost może być od groma takich przypuszczeń, ale z słabego opisu nikt nie wyczaruje celnej odpowiedzi.

Ten post edytował pajaa1981 29.03.2011, 17:27:43
Go to the top of the page
+Quote Post
dawido000
post 29.03.2011, 17:59:59
Post #18





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 28.03.2011

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


Udało się. Wpisałem w formularzu po prostu pełny adres: "http://localhost/przetworzzamowienie.php". Lecz zastanawia mnie jedna rzecz, przecież te pliki są w jednym katalogu więc nie powinna być wymagana pełna ścieżka.
Go to the top of the page
+Quote Post
sadistic_son
post 29.03.2011, 18:36:45
Post #19





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

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


Jeśli plik z formularzem byłby też php to wtedy wystarczyłoby tak jak zrobiłeś wcześniej. Ale jeśli to zwykły html to wtedy takie wpisanie ścieżki nie "zmusza" serwera do przetworzenia pliku z action jako php, czyli odpala się on bezpośrednio z przeglądarki.

Prosty problem a ilu ludzi zaciągniętych do roboty, ile wywodów, kłótni, spekulacji biggrin.gif
Czyli co? Problem rozwiązany?

Ten post edytował sadistic_son 29.03.2011, 18:38:07


--------------------
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
wmatusiak
post 29.03.2011, 19:10:32
Post #20





Grupa: Zarejestrowani
Postów: 25
Pomógł: 7
Dołączył: 27.03.2011
Skąd: Kęty

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


Cytat(sadistic_son @ 29.03.2011, 19:36:45 ) *
Jeśli plik z formularzem byłby też php to wtedy wystarczyłoby tak jak zrobiłeś wcześniej. Ale jeśli to zwykły html to wtedy takie wpisanie ścieżki nie "zmusza" serwera do przetworzenia pliku z action jako php, czyli odpala się on bezpośrednio z przeglądarki.

Prosty problem a ilu ludzi zaciągniętych do roboty, ile wywodów, kłótni, spekulacji biggrin.gif
Czyli co? Problem rozwiązany?

Mam rozumieć że jak mam pliki test.html i test.php w tym samym katalogu i wejdę http://localhost/test.html to ten action w tym pliku nie zadziała.
Bo tak zrozumiałem twoją wypowiedź a to jest co najmniej nieprawda.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 27.04.2024 - 06:03