Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z połączeniem HTML’a i PHP.
Forum PHP.pl > Forum > Przedszkole
BENY_PL
Witam
Mam problem z umieszczaniem skryptów php w dokumencie HTML.
Mam plik index.html a oto jak on wygląda

  1. <title>BENY</title>
  2. </head>
  3. <?php echo("BENY<br>"); ?>
  4. <? echo("BENY<br>"); ?>
  5. <script language="php"> echo("BENY<br>"); </script>
  6. </body>
  7. </html>


Po uruchomieniu go w przeglądarkach (IE i Firefox) nic się nie wyświetla a kod źródłowy w przeglądarkach jest identyczny z zawartością pliku index.html a powinien wyglądać tak:

  1. <title>BENY</title>
  2. </head>
  3. BENY<br>
  4. BENY<br>
  5. BENY<br>
  6. </body>
  7. </html>


Wnioskuję z tego, że żaden z tych trzech sposobów oznaczania kodu php w dokumencie nie działa.

Mam Windows XP, i zainstalowany pakiet AppServ v2.4.0. Wszystko jest w porządku jeżeli np. umieszczę plik index.php o takiej zawartości:

  1. <?php
  2. echo (&#092;"<html>
  3. <head>
  4. <title>BENY</title>
  5. </head>
  6. BENY<br>
  7. <body>
  8. </body>
  9. </html>&#092;");
  10. ?>


Wtedy w przeglądarce jako źródło strony pojawia się:

  1. <title>BENY</title>
  2. </head>
  3. BENY<br>
  4. </body>
  5. </html>


A w samej przeglądarce pojawia się BENY.

Czy znacie może rozwiązanie mojego problemu? Czy jest to wina tego, że zapisuję plik z rozszerzeniem *.html a nie *.phtml ? Jeśli tak to, jak można takie rozszerzenie dodać do rozszerzeń serwera Apach, bo gdy zapisuje plik z rozszrzeniem *.phtml zamiast *.html to Apach wyświetla go tak jak by to był plik tekstowy. Z góry dziękuję za pomoc.
borec
a na pewno umiesciles skrypt w document_root serwera i otwierasz go przez http://localhost/skrypt.php?

moze glupie pytanie ale roznie bywa winksmiley.jpg
BENY_PL
Umieszczałem te pliki i w katalogu głównym serwer (localhost/index.html oraz localhost/index.php) a także w katalogu tak że ścieżki dostępu wyglądały tak (localhost/test/index.html oraz localhost/test/index.php) i nic to nie dało.
Zbłąkany
Zmień domyślne wyświetlanie dokumentów przez serwer cool.gif miałem to samo na Apache, zmień z tego jakie masz na text/html bo inaczej przeglądarki mogą mieć problem z zobaczeniem tego co stworzyłeś (szczególnie Mozilla, Netscape i inne na Gecko)
CyklOP
Musisz zmienić ustawienia Apache'a:

powinieneś mieć coś takiego (ewentualnie niewiele się różniącego) w pliku httpd.conf :
Kod
ScriptAlias /cgi-bin/ "C:/Apache/Apache2/cgi-bin/"
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

wtedy dodajesz po prostu:
Kod
AddType application/x-httpd-php .html
AddType application/x-httpd-php .xml (czy co tam sobie chcesz)

albo jeśli chodzi tylko o ten jeden konkretny plik to:
Kod
<Files index.html>
ForceType application/x-httpd-php
</Files>

i już :-)
Powodzenia + pozdrowienia.
BENY_PL
biggrin.gif
Dziękuje wam BARDZO.
Działa, działa działa.
CyklOP tobie dziękuję najbardziej, dodałem odpowiednio zmodyfikowaną linijkę
Kod
AddType application/x-httpd-php .phtml
i działa tongue.gif
kszychu
Ja dodam tylko, że rozszerzenia plików, które php ma interpretować można dodawać w jednej linii, po spacji, np:
Kod
AddType application/x-httpd-php .php .phtml
switch
Cytat(BENY_PL @ 2004-07-13 21:19:47)
<?php echo("BENY<br>"); ?>
<? echo("BENY<br>"); ?>
<script language="php"> echo("BENY<br>"); </script>

Informacyjnie podaję, że lokalnie moze i coś takiego zadzialac, ale juz na "dorosłym serwerze" nie zawsze, gdyz namieszales już w samym kodzie. Zgodnie ze specyfikacją używa się tylko i wyłącznie takiego zapisu:
  1. <? php
  2. //tutaj skrypt
  3. ?>


Uzywanie innego zapisu jest niepoprawne już w samym kodzie.
kszychu
Cytat(switch @ 2004-07-14 13:14:18)
Cytat(BENY_PL @ 2004-07-13 21:19:47)
<?php echo("BENY<br>"); ?>
<? echo("BENY<br>"); ?>
<script language="php"> echo("BENY<br>"); </script>

Informacyjnie podaję, że lokalnie moze i coś takiego zadzialac, ale juz na "dorosłym serwerze" nie zawsze, gdyz namieszales już w samym kodzie. Zgodnie ze specyfikacją używa się tylko i wyłącznie takiego zapisu:
  1. <? php
  2. //tutaj skrypt
  3. ?>


Uzywanie innego zapisu jest niepoprawne już w samym kodzie.

Weź przestań żartować! :-D
http://pl.php.net/manual/pl/language.basic-syntax.php

... "dorosły serwer", myślałem, że zakrztuszę się kawą!
BENY_PL
Cytat(switch @ 2004-07-14 12:14:18)
Cytat(BENY_PL @ 2004-07-13 21:19:47)
<?php echo("BENY<br>"); ?>
<? echo("BENY<br>"); ?>
<script language="php"> echo("BENY<br>"); </script>

Informacyjnie podaję, że lokalnie moze i coś takiego zadzialac, ale juz na "dorosłym serwerze" nie zawsze, gdyz namieszales już w samym kodzie. Zgodnie ze specyfikacją używa się tylko i wyłącznie takiego zapisu:
  1. <? php
  2. //tutaj skrypt
  3. ?>


Uzywanie innego zapisu jest niepoprawne już w samym kodzie.

Chciałbym powiedzieć, żę jeżeli napiszesz
  1. <? php
  2. //tutaj skrypt
  3. ?>


to nawet jeden skrypt php nie będzie działać tongue.gif, bo powinno to wyglądać tak


  1. <?php
  2. //tutaj skrypt
  3. ?>


Bez spacji po "<?" exclamation.gif!
I tak przy okazji stosowanie Znaczników <?php ?> jest poprostu najbezpieczniejsze, gdyż jest on chyba obsługiwany przez każdy serwer z php. Natomiast pozostałe znaczniki są dostępne dpoiero po ich aktywowaniu w pliku konfiguracyjnym.
Używanie innego zapisu nie jest czymś niepoprawny, tylko trzeba się liczyć z tym, że nie na kżdym serwerze będzie on działał.
switch
Czepiasz się o szczegóły i wiesz, że moja pomyłka wynika z pospiechu i dobrze wiesz o co mi chodziło. winksmiley.jpg Natomiast co do dowolności zapisu to mylisz się i nie zaglądałes dawno do specyfikacji.
Cytuje:
"W specyfikacji XHTML nie ma mowy o skryptach takich jak php ale jeśli nadejdzie potrzeba ich użycia to należy posłużyć się instrukcjami przetwarzania (są one zaczerpnięte bezpośrednio ze specyfikacji XML). Proszę zwrócić uwagę na to, że po <? występuje nazwa (<?php). Jest to bardzo ważne, ponieważ nazwa pozwala zidentyfikować dalszy ciąg znaków. W HTML można spotkać treść skryptów w środku znaczników takich jak <? ?>, <% %>. Wszystkie te oznaczenia w XHTML są nie prawidłowe! Nie zaleca się też stosowania <script language="php"></script>"
Czas ucieka i nasz poczciwy html odszedł na emeryturę.
scanner
Szablony, szablony i jeszcze raz szablony.
I tym optymistycznym akcentem wyraząm nadzijeję, ze nie zrobicie tu żadenego flame-waru o jedną spację.
kszychu
Cytat(switch @ 2004-07-15 13:39:56)
Natomiast co do dowolności zapisu to mylisz się i nie zaglądałes dawno do specyfikacji.
Cytuje:
"W specyfikacji XHTML nie ma mowy o skryptach takich jak php ...

Nie no sorry, ale o czym Ty mówisz?? Gdzie jest php a gdzie xhtml?
Ty chyba nie do końca rozumiesz w jakiej kolejności to jest wykonywane. Możesz sobie umieścić skrypt php w dowolnych znacznikach, o ile tak sobie skonfigurujesz serwer. Serwer to przetworzy i wypluje Ci xhtmla takiego jakiego będziesz chcial i bez żadnych znaczników! Nawet bez <?php ?>.

Jeszcze raz sorry, scanner, ale nie mogłem się opanować.
marlowe
@krzychu: nie masz racji. Owszem, oczywiście plik przetwarzany jest najpierw przez php ale jeżeli zawiera on zapis xmlowski (używany w XHTMLU) to wówczas <?xml version="1.0"?> potraktuje jako skrypt php. Więszkość serwerów ma domyślnie włączone krótkie tagi i wyskoczy wówczas błąd "Parse error: parse error, unexpected T_STRING in d:\usr\pliki\tags.htm on line 1". Wiem, bo sam musiałem je wyłączać (php.ini -> short_open_tag = FALSE) żeby działały mi strony XHTML. A drugi zapis jest po prostu "niemodny" i jest wycofywany. Nawiasem mówiąc pierwszy post na XHTML, scannera, właśnie tego dotyczy.
Pozdrawiam.
Bartek
switch
Moja rada miała jedno na celu. Na każdym serwerze to zadziała zawsze i wszędzie. Koniec kropka. Niefortunnie postawiona spacja rozgrzała dyskusję biggrin.gif I bardzo dobrze, bo wszyscy się uczymy od siebie. Cieszę się Kszychu, że Twoja twarz rozjaśniała usmiechem na tekst o "dorosłym serwerze" cool.gif Śmiech to zdrowie. Tyle tylko, że robienie czegoś dla siebie lokalnie jest zabawą a praca na serwerach, które biora za to kasę już nie i tutaj właśnie zaczyna się "dorosłość" . Admin na serwerze nie będzie ustawiał specjalnie dla Ciebie plików konfiguracyjnych z powodu jednego konta. Nie chodzi o to, aby komus prawić morały tylko o to aby to zadziałało do diabła, bo jak rozbuduje kod to będzie szukać wszędzie tylko nie w znacznikach. Nie każdy bowiem serwer udostępnia logi konta. Wtedy sprawa jest prosta. Wystarczy do nich zaglądnąć.
Obiecuję na przyszłośc poprawę w stawianiu spacji cool.gif i nie będę już podczas pisania postów oglądał się na boki do innych zawracających mi głowę ludzi w tym czasie, nie dam się skusić na zerknięcie na mini spódniczkę Pani Zosii własnie przechodzącej koło kompa, nie będę słuchał dowcipów, które opowiada sąsiad, będę sprawdzał zanim wyślę coś co wogóle napisałem, bo tego nie robiłem i ogólnie pozdrawiam wszystkich rolleyes.gif
Dabroz
Cytat(marlowe @ 2004-07-15 16:06:36)
<?xml version="1.0"?> potraktuje jako skrypt php.

Sprobój to wypisać poprzez echo.
kszychu
Cytat("switch")
Moja rada miała jedno na celu. Na każdym serwerze to zadziała zawsze i wszędzie. Koniec kropka. Niefortunnie postawiona spacja rozgrzała dyskusję  biggrin.gif

No nie przesadzaj, tylko Beny_pl zwrócił ci na to uwagę, a dyskusję i tłumaczenia na ten temat to już sam rozpocząłeś i WYŁĄCZNIE TY nawijasz w kółko o tej spacji...
Cytat("switch")
I bardzo dobrze, bo wszyscy się uczymy od siebie.  Cieszę się Kszychu, że Twoja twarz rozjaśniała usmiechem na tekst o "dorosłym serwerze"  cool.gif  Śmiech to zdrowie.

Już tak mam, zawsze śmieję się jak słyszę jakieś głupoty smile.gif
Cytat("switch")
Obiecuję na przyszłośc poprawę w stawianiu spacji  cool.gif  i nie będę już podczas pisania postów oglądał się na boki do innych zawracających mi głowę ludzi w tym czasie, nie dam się skusić na zerknięcie na mini spódniczkę Pani Zosii własnie przechodzącej koło kompa, nie będę słuchał dowcipów, które opowiada sąsiad, będę sprawdzał zanim wyślę coś co wogóle napisałem, bo tego nie robiłem i ogólnie pozdrawiam wszystkich  rolleyes.gif

Nie rozumiem po co to tłumaczenie się? I komu?

A wracając do tematu krótkich i długich tagów i ich kompatybilności z xmlem, to w specyfikacji php jest dokładnie opisane "jak z tym żyć".
A mój post, który wywołał kontrowersje, do tyczył tylko jednego:
według specyfikacji php wszystkie formy tagów, podanych podanych przez Beny'ego są poprawne!
Może "niemodne", może niezalecane, ale poprawne.
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.