Gå til innhold

Include funker ikke med PHP: 5.1.2?


Anbefalte innlegg

Hei

 

I dag oppgraderte jeg serveren min med den nye softwaren til Xampp.

 

Bla. oppgraderte jeg til PHP: 5.1.2. Men etter dette fikk jeg problemer med include scriptet mitt. Link til side!

 

Uansett hvilken side jeg skal inn på, kommer hovedside.php inn.

 

Noen som vet hva som er galt?

 

Takker stort for hjelp!

Lenke til kommentar
Videoannonse
Annonse

<?php

/* ______________________________________________________________________

_INCLUDESCRIPT_v1.3___________________________________mortz.tjokk.net_

 

Forfatter: Morten Daniel Fornes

E-post: [email protected]

Hjemmeside: http://mortz.tjokk.net

Sist endret: 21/10/2005

_______________________________________________________________________

*/

 

/*** KONFIGURASJON ***/

 

$default = "hovedside"; // fila som skal inkluderes hvis variabelen er tom.

$directory = "inc"; // mappa filene dine ligger i.

$extension = "php"; // filendingen på filene dine.

 

 

/*** SCRIPTET STARTER HER ***************************************************/

/*** (ikke gjør endringer med mindre du vet hva du gjør! =) *****************/

 

$page = $_GET['page'];

 

// for å hindre at det inkluderes fra uønskede plasser (stopper hackerne)

if (preg_match('/(http:\/\/|^\/|\.+?\/)/', $page)) echo "I'll h4x yuo!!1";

 

 

elseif (!empty($page)) // sjekke at variabelen ikke er tom.

{

if (file_exists("$directory/$page.$extension")) // sjekke om fila eksisterer.

include("$directory/$page.$extension"); // inkluder fila.

else // hvis ikke,

echo "<h1>Error 404</h1>\n<p>Finner ikke siden!</p>\n"; // skriv en feilmelding.

}

else // eller,

include("$directory/$default.$extension"); // inkluder fila som definert som $default.

 

?>

Lenke til kommentar

Hei

 

Feilen ligger nok her:

$page = $_GET['page'];

 

Bytt ut dette med:

$page = $_GET['content'];

Så skal det fungere bedre, tenker jeg...

 

Alle linkene dine ser slik ut:

Altså, du bruker content, og ikke page... Derfor må du også endre dette når du henter variabelen

 

EDIT: Men det virker jo litt rart, hvis akkurat dette scriptet fungerte før oppgraderingen. Det skulle vel ikke gjort det ?

Endret av kakkle
Lenke til kommentar

Hei

 

Takk for hjelp, det fungerte faktisk på den første siden. Men jeg vil benytte anledningen til å spørre om en ting til. Dette scriptet jeg har kopiert inn under her, er det include scriptet jeg alltid har brukt! Hva er det som er galt med dette?

 

Sjekk ut disse sidene jeg har brukt denne på ;

 

Defoundation.com

 

Ilder side

 

<?php
           $check_page = isset($content);
           if ($check_page == 1)
           {
           if (@fopen("content/$content.php", "r")) {
           include ("content/$content.php");
           } else {
           include("content/404.php"); }
           }
           if ($check_page <> 1)
           {
           include("content/hoved.php");
     }?>

Lenke til kommentar

Jeg vil tro at det er Register Globals som er problemet her, kanskje...

Bytt ut de to første linjene (ser bort fra "<?") med dette:

if(isset($_GET["content"])) {
 $content = $_GET["content"];
//
// Her kommer resten av koden din...  (if(@fopen....))
//
}
else {
include("content/hoved.php");
}

 

EDIT E->e

Endret av kakkle
Lenke til kommentar

<?php
    if(isset($_GET["content"])) 
    {
          $content = $_GET["content"];
          if (@fopen("content/$content.php", "r")) {
             include ("content/$content.php");
          } else {
             include("content/404.php");
          }
     }
     else {
          include("content/hoved.php");
     }?>

 

Sånn ca...

 

EDIT: Virker som problemet du hadde, var at du hadde glemt å avslutte php delen med ?> tagen... ?

Endret av kakkle
Lenke til kommentar

Før 96 :

 

</tr>

</table>

</div>

<div id="Layer2" style="position:absolute; left:263px; top:429px; width:596px; height:379px; z-index:2; background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000;">

<?php

<?php

 

Selve 96 :

 

if(isset($_GET["content"]))

 

Etter 96 :

 

{

$content = $_GET["content"];

if (@fopen("content/$content.php", "r")) {

include ("content/$content.php");

} else {

Lenke til kommentar

Kan du se feilen ?

Hint: <?php starter delen hvor det skal være php koding, ?> avslutter det

Innenfor <?php og ?>, kan det bare være koder som php kjenner igjen... Vanlig HTML tags skjønner den ikke ;)

 

Hint2: Det er Linja før linje 96... :)

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å
×
×
  • Opprett ny...