Gå til innhold

xhtml side med php script inni


Anbefalte innlegg

jeg har en xhtml side, og vil gjerne ha php script inne i body'n.

 

Det jeg har er:

 

<form action="index.shtml" method="post">
<select name="news">
<option value="itavisen">ITavisen</option>
<option value="newyorktimes">New York Times</option>
</select>
<input type="submit" value="Select" />
</form>
<?php
$rss = $_POST["news"];

if ($rss == itavisen) {
 echo "<!--#exec cmd=\"perl ../../misc/rss2html.pl http://www.itavisen.no/rss.php\" -->";
}
else if ($rss == newyorktimes) {
 echo "<!--#exec cmd=\"perl ../../misc/rss2html.pl http://www.nytimes.com/services/xml/rss/userland/Technology.xml\" -->";
}
?>

 

Men dette funker ikke, fordi det som da kommer etter vises ikke. er det mulig og ordne dette på en måte?

med tanke på at alt etter forsvinner, er det bare å sette inn start xhtml inn etter ?> eller er det bare å gi opp og lagre det som en php side?

 

EDIT:

Fant en feil i scriptet, men funker fortsatt ikke. rettet feilen i alle fall.

Endret av Thurloc
Lenke til kommentar
Videoannonse
Annonse

Hæ, hva prøver du på her? Skrive ut apache kommandoer gjennom php? Som du kanskje har merka, vil ikke det virke.. Veit ikke hvordan du gjør det med #exe ,men med #include kan du se her: http://no2.php.net/manual/en/function.virtual.php

 

EDIT: ah, nå forstår jeg. Du kan ikke kjøre .html/.xhtml filer som php per default. Da må du enten bytte til .php ,pluss at du legger på denne koden (før output begynner):

<?php
       $charset = 'ISO-8859-1';
       $mime    = (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml')) ? 'application/xhtml+xml' : 'text/html';
       header('content-type:' . $mime . ';charset=' . $charset);

       echo '<?xml version="1.0" encoding="ISO-8859-1"?>
       <?xml-stylesheet type="text/xsl" href="copy.xsl"?>';

 

copy.xls:

<stylesheet version="1.0"
    xmlns="http://www.w3.org/1999/XSL/Transform">
   <template match="/">
       <copy-of select="."/>
   </template>
</stylesheet>

Ellers så kan du bruke .htaccess til å få apache til å parse .html/.xhtml-filer som php.

 

.htaccess:

AddType application/x-httpd-php .php .html . xhtml

Endret av dabear
Lenke til kommentar

ok, siden forumet har vært nede fant jeg ut dette først nå.

 

men uansett, funnet en løsning, nå har jeg et problem jeg kan løse på to måter.

 

jeg har funnet ut at det er mulig og kjøre programmer fra php, jeg har tenkt på å kjøre perl scriptet fra php, og echo'e output'n. men når jeg bruker exec eller system så får jeg ikke noe ut fordi dette tar kun siste linje i følge det jeg har fått med meg. er det mulig og få ut hele output'n til programmet? kanskje jeg må bruke pasthru? men får den ikke til å virke...

 

 

andre er at jeg klarer å inkludere denne:

<!--#exec cmd=\"perl ../../misc/rss2html.pl http://www.itavisen.no/rss.php\" -->

men den blir bare der, og blir ikke utført av apache. er det mulig og få denne til å bli utført på en eller annen måte?

 

takker, men virtual() hjelper ikke med tanke på at jeg må kjøre et script.

 

EDIT:

Får prøve å lage siden som php og da kjøre scriptet igjennom der. da burde det gå med exec commandoen.

 

EDIT 2:

Løst problemet, får kjørt programmet nå.

brukte shell_exec ;)

 

problemet er nå å returnere verdien, ved bruk av header location på php filen så får jeg en feilmelding:

 

Warning: Cannot modify header information - headers already sent by (output started at /www/docs/stian/hjemmeside/v1/links/rss.php:2) in /www/docs/stian/hjemmeside/v1/links/rss.php on line 9

 

Noen som vet hva jeg kan gjøre?

skal jo returnere til siden med da echo.

siden:

http://stian.bang.dot.no/hjemmeside/v1/links/index.shtml

siden består av en <!--#include virtual="rss.php" -->

som da inkluderer denne:

http://stian.bang.dot.no/hjemmeside/misc/rss.php

         <form action="rss.php" method="post">
           <select name="news">
             <option value="itavisen">ITavisen</option>
             <option value="newyorktimes">New York Times</option>
           </select>
           <input type="submit" value="Get news" />
         </form>
<?php
header("Location: index.shtml");
$rss = $_POST["news"];

if ($rss == itavisen) {
 $print = shell_exec("perl ../../misc/rss2html.pl http://www.itavisen.no/rss.php");
}
else if ($rss == newyorktimes) {
 $print = shell_exec("perl ../../misc/rss2html.pl http://www.nytimes.com/services/xml/rss/userland/Technology.xml");
}
echo $print;
exit;
?>

Endret av Thurloc
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...