::: FORUM ManuFrog :::: Funkar inte att parsa PHP-kod i HTML-filer - ::: FORUM ManuFrog :::

Hoppa till innehåll

Sida 1 av 1
  • Du kan inte skapa ett nytt ämne
  • Du kan inte svara i detta ämne

Funkar inte att parsa PHP-kod i HTML-filer

#1 Medlemmen är offline   Benzocaine 

  • VIP Member
  • PipPipPipPipPipPip
  • Grupp: Members
  • Inlägg: 54
  • Gick med: 30-augusti 04

Postad 25 november 2010 - 20:22

Hej!

Jag har inte kollat mina HTML-filer på ett tag. Ser nu att PHP parsing inte funkar som det ska. Vad kan det vara för fel?

Bakgrund: Jag har en enkel sidomeny skriven i PHP. Istället för att behöva uppdatera varje HTML-sida när jag ändrar menyn kan jag då enkelt ändra menyfilen. I HTML-filerna har jag koden:

<?php
include("lmeny.php");
?>


...där lmeny.php är menyfilen som innehåller följande kod:

<ul>
<li id="titel">Meny</li>
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/index.html">Startsida</a>
...
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/kontakt/index.html">Kontakt</a></li>
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/om.html">Om sidan</a></li>
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/om.html#cookies">Om cookies</a></li>
</ul>


.htaccess innehåller raden:

Addhandler application/x-httpd-php .htm .html


Jag har försökt allt möjligt. Att ändra "Addhandler application/x-httpd-php" till "AddType application/x-httpd-php" gör att Windows frågar vilket program jag vill öppna HTML-filen med. Ta bort parentesen från include-funktionen hjälper inte. Jag har ändrat från "<?PHP include()" till "<!--#include virtual="lmenu.php" -->" utan resultat.

Istället för att ovanstående PHP-kod parsas av servern så står texten i min HTML-fil.

Hur får jag servern att exekvera koden istället för att skriva ut den? Enligt mina efterforskningar på en stor sökmotor måste mod_rewrite vara aktiverat i Apache. I så fall, var ser jag om modulen är aktiverad och hur aktiverar jag den om den är inaktiv?

Edit: öppnar jag filen lmeny.php i min webbläsare ser den hur fin ut som helst.
0

#2 Medlemmen är offline   Erik 

  • Administrator
  • PipPipPipPipPipPip
  • Grupp: Admin
  • Inlägg: 7 416
  • Gick med: 13-juli 03

Postad 25 november 2010 - 21:30

Visa inläggBenzocaine på 25 November, 2010, 20:22 sade:

Hej!

Jag har inte kollat mina HTML-filer på ett tag. Ser nu att PHP parsing inte funkar som det ska. Vad kan det vara för fel?

Bakgrund: Jag har en enkel sidomeny skriven i PHP. Istället för att behöva uppdatera varje HTML-sida när jag ändrar menyn kan jag då enkelt ändra menyfilen. I HTML-filerna har jag koden:

<?php
include("lmeny.php");
?>


...där lmeny.php är menyfilen som innehåller följande kod:

<ul>
<li id="titel">Meny</li>
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/index.html">Startsida</a>
...
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/kontakt/index.html">Kontakt</a></li>
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/om.html">Om sidan</a></li>
<li><a href="http://<?=$_SERVER['HTTP_HOST']?>/om.html#cookies">Om cookies</a></li>
</ul>


.htaccess innehåller raden:

Addhandler application/x-httpd-php .htm .html


Jag har försökt allt möjligt. Att ändra "Addhandler application/x-httpd-php" till "AddType application/x-httpd-php" gör att Windows frågar vilket program jag vill öppna HTML-filen med. Ta bort parentesen från include-funktionen hjälper inte. Jag har ändrat från "<?PHP include()" till "<!--#include virtual="lmenu.php" -->" utan resultat.

Istället för att ovanstående PHP-kod parsas av servern så står texten i min HTML-fil.

Hur får jag servern att exekvera koden istället för att skriva ut den? Enligt mina efterforskningar på en stor sökmotor måste mod_rewrite vara aktiverat i Apache. I så fall, var ser jag om modulen är aktiverad och hur aktiverar jag den om den är inaktiv?

Edit: öppnar jag filen lmeny.php i min webbläsare ser den hur fin ut som helst.



Om Du testar att ha följande kod i Din .htaccess fil - fungerar det då?
Addhandler application/x-httpd-php .htm .html
RewriteEngine On


Om ej, testa detta:
AddType x-httpd-php .php .htm .html

::: Have great day! //Erik at psychofrog.se and Webbhotell ManuFrog :::
0

#3 Medlemmen är offline   Benzocaine 

  • VIP Member
  • PipPipPipPipPipPip
  • Grupp: Members
  • Inlägg: 54
  • Gick med: 30-augusti 04

Postad 25 november 2010 - 21:39

Hej Erik!

Jag vet inte om du har hjälpt mig att ändra inställningar på något sätt, men nu går det helt plötsligt med SSI!

Jag ändrade enligt följande:

<!--#config errmsg="[Error loading menu]" -->
<!--#set var="menufile" value="lmeny.php" -->
<!--#if expr="-A $menufile" -->
<!--#include virtual="$menufile" -->
<!--#else -->
File is not accessible
<!--#echo var=$menufile" -->
<!--#endif -->


Av något skäl som jag inte förstår står det aldrig "File is not accessible" om jag ändrar $menufile till ett ogiltigt filnamn, men ovanstående funkar. Ska testa de inställningar du nämner i .htaccess också. Det blir jobbigt att behöva ändra <?php include... ?> till ovanstående kod i alla mina filer.

Edit: Har nu ändrat i alla mina filer till:

<!--#config errmsg="[Error loading menu]" -->
<!--#include virtual="/lmeny.txt" -->


(...där lmeny.txt saknar PHP-koden i lmeny.php). Det funkar som det ska, men jag undrar fortfarande varför det inte går att exekvera PHP-kod i HTML-sidor trots alla modifieringar av .htaccess. Det kan ju finnas andra kunder (eller jag själv) som har nytta av det i framtiden. Man kan ju döpa om filerna till PHP om man vill, men vem orkar göra det och ändra alla länkar på sin site?
0

#4 Medlemmen är offline   Benzocaine 

  • VIP Member
  • PipPipPipPipPipPip
  • Grupp: Members
  • Inlägg: 54
  • Gick med: 30-augusti 04

Postad 25 november 2010 - 21:53

Nu ser .htaccess ut så här och PHP parsing funkar fortfarande inte:

Options +Includes
XBitHack on
RewriteEngine On
AddType application/java-archive jar
AddType text/vnd.sun.j2me.app-descriptor jad
# AddType application/x-httpd-php html
AddType x-httpd-php .php .htm .html
AddHandler server-parsed .html
Addhandler application/x-httpd-php .htm .html
AddOutputFilter INCLUDES .html


Det funkar med SSI-direktiven jag skrev i förra inlägget, men inte med <?php include('lmeny.php'); ?> i HTML-koden. Den senare varianten skiver bara ut exakt den texten. Koden blir inte exekverad.
0

Dela med dig av detta ämne:


Sida 1 av 1
  • Du kan inte skapa ett nytt ämne
  • Du kan inte svara i detta ämne


1 användare läser detta ämne
0 medlemmar, 1 gäster, 0 anonyma medlemmar