Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP w kodzie XHTML
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
radac78
Witam
Pomimo zaznajomienia sie ze standartami jezyka xhtml (wraz z implementacja kodu php w tym jezyku), mam problem ze wstawieniem kodu php na stronie napisanej w xhtml. Dokladnie chodzi mi o wywolanie zewnetrznego skryptu (*.php3), a tego co skrypt zwraca umieszczeniu pomiędzy <p></p>.
Probowalem umiescic caly kod php pomiedzy znacznikami <?php i niestety nie dziala sad.gif
W jaki sposob mozna wywolac skrypt php ze strony napisanej w xhtml questionmark.gif
Dzieki zapomoc ...
xarr
Wywolanie kodu php w xhtmlu nie ma znaczenia. Pewnie skrypt php ma jakies znaczniki html`a, ktore nie sa zgodne z xhtml.

Jak sobie nie poradzisz wklej ten kod html`a i php.
hmmm
a moze problem twki w rozszerzeniu pliku?
powinno byc *.php jezeli zawiera on kod php :)
Vertical
Cytat
powinno byc *.php jezeli zawiera on kod php smile.gif

Rozszerzenie powinno być takie, jakie jest ustawione na serwerze
xarr
Nazwa moze sobie byc jaka ci pasuje, najwyzej nie odpali sie skrypt php. Wogole wklej chociaz jaki ci blad wywala, bo domyslac sie o co chodzi to troszke ciezko winksmiley.jpg
nibytak
w wamp5 nalezy:

1 w php.ini - short_open_tag = Off
2 stosowac rozszerzenie .php do plikow XHTML

nie wiem jak ustawic aby mozna stosowac rozszerzenie .xhtml, zapewne mozna, pytanie tylko po co skoro po stronie klienta nic sie nie zmieni.
radac78
Przyklad tego co chce zrobic: (calosc strony to poprawny xhtml - sprawdzone val.)
Pomiedzy znacznikami div chcialbym wywolac skrypt php, ktory wstawia imiona - solenizantow. Tak zeby wygladalo to jak osobny blok.
Tresc skryptu imieniny.php3 ponizej. Skrypt pobiera imiona z osobnych plikow ...

<?php
$sciezka="imieniny/";
$datam = date("m");
$datad = date("d");
$d="$datad";
$m="$datam";
$month = array(0,stycznia,lutego,marca,kwietnia,maja,czerwca,lipca,sierpnia,września,paźd
iernika,listopada,grudnia);
$d = str_replace("01","1",$d);
$d = str_replace("02","2",$d);
$d = str_replace("03","3",$d);
$d = str_replace("04","4",$d);
$d = str_replace("05","5",$d);
$d = str_replace("06","6",$d);
$d = str_replace("07","7",$d);
$d = str_replace("08","8",$d);
$d = str_replace("09","9",$d);
$m = str_replace("01","1",$m);
$m = str_replace("02","2",$m);
$m = str_replace("03","3",$m);
$m = str_replace("04","4",$m);
$m = str_replace("05","5",$m);
$m = str_replace("06","6",$m);
$m = str_replace("07","7",$m);
$m = str_replace("08","8",$m);
$m = str_replace("09","9",$m);
$imie=file("$sciezka$m.inc");
echo"Imieniny obchodzą: $imie[$d]"
?>

Dodam, ze niechcialbym calego kodu wklejac w pliku xhtml. Chcialbym go wywolac jako zewnetrzny plik.. (tak jak w php - include). Jest taka mozliwosc questionmark.gif
hmmm
dlaczego tak jak w php, a nie po prostu przez php?
jest mozliwosc - wlasnie php.

wstawiasz w <div> kod:
  1. <?php
  2. include('plik.inc');
  3. ?>
moze tez byc rozszerzenie np. *.php

a w pliku plik.inc (badz plik.php) pomiedzy znaczniki <?php i ?> wstawiasz skrypt.
koniec smile.gif
nibytak
przeciez wystarczy uzyc google zeby znalezc odpowiedz.

mozna w xhtml osadzac php pomiedzy <?php i ?>, to sa poprawne tagi xml! nalezy tylko upewnic sie ze zmienna short_open_tag w pliku php.ini jest ustawiona na Off, oraz zmienic rozszerzenie .xhtml na .php jesli skrypt nie jest interpretowany. upewnij sie rowniez ze stosujesz prawidlowy doctype i namespace. nie wierze ze problem jest bardziej skomplikowany, ze masz cos pomieszane w ustawieniach php/apacza.

z tego twojego ostatniego postu wywnioskowalem ze po prostu nie umiesz osadzic php w xhtml? chyba wiesz co to takiego include skoro chcesz je stosowac? o co tu wlasciwie chodzi bo ja sie pogubilem angrysmiley.gif chyba ze chcesz wywolac php z zewnetrznego pliku na zasadzie osadzania css/javascript?
xarr
Nom, google, albo nawet search na tym forum smile.gif
radac78
Dzieki za podpowiedzi...
Faktycznie jak widac fachowcem nie jestem ale to wlasnie dlatego szukam tu porad a nie ich udzielam. Wasza pomoc pomogla (polowicznie).
Moim bledem byl sposob includowania funkcji - uzywalem znaku " " zamiast ' ' . Na lokalnym serwerze postawionym na krasnalu i zmienieniu wspomnianych opcji dziala all. Jednak po skopiowaniu wszystkiego na serwer :

Parse error: parse error, unexpected T_STRING in /adresl/httpd/www/cz/index.php on line 1

Pewnie to dlatego ze zmienilem rozszerzenie pliku xhtml na php nie zmieniajac niczego w kodzie. Jednak na serwerze (krasnal) nie ma zadnych bledow...

Moj poczatek kodu ....

<?xml version="1.0" encoding="iso-8859-2"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">

i dalej w div zamiescilem wywolanie skryptu:

<?php
include('cos.php');
?>
hmmm
teoretycznie, to zamiana rozszerzenia nie powinna nic zmienic.
tak mi sie wydaje.
moze masz cos niedomkniete, jakis apostrof, srednik?

wkej skrypt tongue.gif
nibytak
Kod
Parse error: parse error, unexpected T_STRING in /adresl/httpd/www/cz/index.php on line 1


linia 1 twojego pliku:

Kod
<?xml version="1.0" encoding="iso-8859-2"?>


co robi parser:
otwiera twoj index.php, skanuje go od poczatku w poszukiwaniu kodu php, masz wlaczone krotkie tagi wiec wszystko pomiedzy <? a ?> traktuje jako kod php, czyli probuje zinterpretowac xml version="1.0" encoding="iso-8859-2", co mu wybitnie nie pasuje, wiec zwraca blad.

na obcym serwerze najprostszym rozwiazaniem jest zastapienie pierwszej linii twojego pliku, czyli

Kod
<?xml version="1.0" encoding="iso-8859-2"?>


czyms takim:

  1. <? echo '<?xml version=\"1.0\" encoding=\"iso-8859-2\"?>' ?>


sprawdz to i napisz jak biega.

ps. zostaw rozszerzenie .php
radac78
Wielkie dzieki 4all. Dziala wszystko tak jak powinno.
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.