Gå til innhold

Hjelp en stakkars nybegynner


Anbefalte innlegg

Har ei gjestebok på sida mi, som er .php, resten er .htm, men includescriptet (som eg fikk av Mikka) tar berre .htm filer, så eg får 404 når eg prøver å include gjesteboka...

 

<?php
$sjekk_side = isset($side);
if ($sjekk_side == 1)
{ 
if (@fopen("sider/$side.htm", "r"))
{ 
include ("sider/$side.htm"); 
}
if (!(@fopen("sider/$side.htm", "r")))
{
include("sider/404/404.htm");
}
}
if ($sjekk_side <> 1)
{
include("sider/index2.htm"); 
}
?>

 

her blir altså url til sidene index.php?side=path/side .. men funker altså ikkje med php filer, noken som kan komme med et bedre script, evt. forandre dette scriptet til å "takle" php filer også??

/me har NULL peiling...

Lenke til kommentar
Videoannonse
Annonse

Prøv med denne

 

<?php
if(IsSet($_GET['section']) && file_exists($_GET['section']."_include.php"))
{
include($_GET['section']."_include.php");
} else {
include("main_include.php");
}
?>

 

så linkene lager du <a href="index.php?section=dinside">Her</a>

 

Og sidene dine kaller du for dinside_include.php

 

Si ifra hvis det var noe du ikke forstod, eller trenger hjelp med.

 

DanielP

Lenke til kommentar
Gjest Slettet-8fx0y6VV
[quote name='arve87' date='03/11/2003 : 14:59'] Har ei gjestebok på sida mi, som er .php, resten er .htm, men includescriptet (som eg fikk av Mikka) tar berre .htm filer, så eg får 404 når eg prøver å include gjesteboka...

[code]
<?php
$sjekk_side = isset($side);
if ($sjekk_side == 1)
{
if (@fopen("sider/$side.htm", "r"))
{
include ("sider/$side.htm");
}
if (!(@fopen("sider/$side.htm", "r")))
{
include("sider/404/404.htm");
}
}
if ($sjekk_side <> 1)
{
include("sider/index2.htm");
}
?>
[/code]

her blir altså url til sidene index.php?side=path/side .. men funker altså ikkje med php filer, noken som kan komme med et bedre script, evt. forandre dette scriptet til å "takle" php filer også??
/me har NULL peiling... [/quote]
Prøv denne :
[code]
<?php
$sjekk_side = isset($side);
if ($sjekk_side == 1)
{
if (@fopen("sider/$side.htm", "r"))
{
include ("sider/$side.htm");
}
elseif (@fopen("sider/$side.php", "r"))
{
include ("sider/$side.php");
}
if (!(@fopen("sider/$side.htm", "r")) && !(@fopen("sider/$side.php", "r")))
{
include("sider/404/404.htm");
}
}
if ($sjekk_side <> 1)
{
include("sider/index2.htm");
}
?>
[/code]
Lenke til kommentar

<?php
$sjekk_side = isset($side);
if ($sjekk_side == 1)
{ 
if (@fopen("sider/$side.htm", "r"))
{ 
include ("sider/$side.htm"); 
}
if (!(@fopen("sider/$side.htm", "r")))
{
include("sider/404/404.htm");
}
}
if ($sjekk_side <> 1)
{
include("sider/index2.htm"); 
}
?>

 

<?php
$sjekk_side = isset($side);

/*
her legger vi inn litt mer gøy, velg selv hvilken extension du vil at koden skal lete etter
*/
$ext = ".php";

/*$ext kan også være et array så du kan bruke forskjellige extensions på forskjellige  filer
$ext = array(".htm", ".html", ".php");
isåfall bruker du $ext[$x] <--hvor$x <= 1, 1 tilsvarer første alternativ i array 2 andre osv...
*/

if ($sjekk_side == 1)
{ 
if (@fopen("sider/$side.$ext", "r"))
{ 
include ("sider/$side.$ext"); 
}
if (!(@fopen("sider/$side.$ext", "r")))
{
include("sider/404/404.htm");
}
}
if ($sjekk_side <> 1)
{
include("sider/index2.htm"); 
}
?>

 

men du kan jo også prøve noe som dette:

<?php
$sub = basename($_REQUEST['dir']) . '/';

if (!empty($sub) && is_dir($includes_dir . $sub)) $includes_dir .= $sub;

$includes_dir = '/';
// path to your inclusion files

$includes_ext = '.php';
// extension name of your files

$var_name = 'm';
// the variable name to be used in the query string

$default_page = 'main';
// the default page to include

$error_page = '404.html';
// redirects this page if the requested file is not found


if (empty($var_name)) {
 $var = $_SERVER['QUERY_STRING'];
} else {
 $var = $_REQUEST[$var_name];
}

if (empty($var)) {
$var = $default_page;
}

$file = $includes_dir.basename($var).$includes_ext;

if (file_exists($file)) {
include($file);
} else {
header('Location: '.$error_page);
}

?>

Lenke til kommentar

Takker! Trur den funka, men no er det noke trøbbel med sjølve gjesteboka.. Får denne meldinga:

Warning: fopen("gb.dat", "w") - Permission denied in /mnt/home3/o/om/ompatut/public_html/sider/gjestebok/ardguest.php on line 52

Error !!Can't create data file.

 

På linje 52 står det

    if ($f = fopen($data_file,"w")) fclose($f);

 

"data_file" er der info. som er lagra i gjesteboka ligger, og denne fila er CHMODa til 777 (som readme.txt sa)

 

forslag til løsninger, eller trenger dere heile koden til gjesteboka?

Lenke til kommentar
Magikern: ka blir linkane vist eg bruker den nederste kodegreia du kom med? index.php?path/side ??

glem det scriptet jeg fant en nyere mye bedre version av det nå:

 

index.php?page=/aboutme/photos/photo1.html <-- sånn skriver du da linken til fil i "subdir"

 

index.php?about <-- den skal fungere også, men bare på enkelt inkludering, altså du kan ikke bruke flere sånne i samme script...

 

bruker en fil for selve scriptet og så inkluderer du det i f.eks index fila di:

 

dynamic.php

<?php

error_reporting(E_ALL ^ E_NOTICE);

$basepath = '/apache2/htdocs/dynamic2/';

function fixpath($file) {
  $file = preg_replace('/\.{2,}/', '', $file);
  return $file;
}

function dynamic($inc_dir='', $inc_ext='', $var_name='', $default_page, $error_msg='') {
  global $basepath;
  if (!empty($_POST[$var_name])) {
      $var = fixpath($_POST[$var_name]);
  } elseif (!empty($_GET[$var_name])) {
      $var = fixpath($_GET[$var_name]);
//}elseif (!empty($_SERVER['QUERY_STRING'])) {
//  $var = fixpath($_SERVER['QUERY_STRING']);
  } else {
      $var = $default_page;
  }

  $file = $inc_dir.$var.$inc_ext;
  // echo "<h2>$file</h2>";

  if (file_exists($file)) {
      if (!include_once($file)) {
          echo $error_msg;
      }
  } else {
      echo $error_msg;
  }
}

?>

 

nå kommer all koden i funksjoner så man kan inkludere flere ganger

 

på denne måten kalles funksjon:

 

dynamic([includes_dir], [includes_ext], [var_name], [default_page], [error_msg]);

 

<?php include_once('dynamic.php'); ?>
<html>
<head>
<title>Test Page</title>
</head>

<body>

<div id="news">
<?php dynamic('news/', '.html', 'id', 'index', 'File does not exist!'); ?>
</div>

<div id="content">
<?php dynamic('files/', '.html', 'page', 'welcome', 'File does not exist!'); ?>
</div>

</body>
</html>

 

spør hvis du har noen spørsmål...

Lenke til kommentar

EDIT : Fant ut at scriptet til Raptor funka allikevel, og at eg må fikse noke i sjølve gjesteboka for å få den til å funke.. :p

 

Prøvde med ei anna php fil, det funka flott - men ikkje gjesteboka - då får eg trøbbel :

Warning: fopen("innlegg.dat", "w") - Permission denied in /mnt/home3/o/om/ompatut/public_html/sider/gjestebok/ardguest.php on line 52

Error !!Can't create data file.

 

if (!file_exists($data_file)) {
   if ($f = fopen($data_file, "w")) fclose($f);
   else { echo "<B>Error !!</B>Can't create data file.<BR>"; exit; }

 

Det er henholdsvis linje 51 52 og 53... noken som ser noken feil elns?

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...