---
title: "$månad"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/108434-månad"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "silfver"
published: "2004-08-03T13:29:27.000Z"
updated: "2004-08-06T22:34:41.000Z"
replies: 36
views: 701
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/108434-månad"
---

# $månad

_Sida 1 av 2._

## #1 — silfver, 2004-08-03T13:29Z

Hejsan!

På min sida så gör jag så här för att inkludera innehåll:

```php
<?php
$titel = "sida";
include "/includes/top.php";
?>

//om man ändrar till:

<?php
$titel = "sida";
include "/includes/top.php";
$april_2004 = "<h1>en massa kod</h1><p>massa text osv...</p>"; //Den här.
?>

<html>...

<?php
include "/includes/bottom.php";
?>
```

Hur kan man nu göra för att från en länk få fram innehållet? Går det? Eller måste man använda en annan slags inkluderingskod? Jag är lite snurrig när det gäller php, så jag vet inte om jag beskriver rätt.

Men jag vill i alla fall få det så att när man klickar på en länk; april_2004 till exempel så ska innehållet komma upp. /?datum=april_2004 nåt sånt.

Förstår ni?  :) Och jag använder inga databaser eller liknande, bara ren php. :)

Mvh,
silfver

Permalänk: https://www.webforum.nu/p/108434

## #2 — tydal, 2004-08-03T13:45Z

echo(${$\_GET\['datum'\]});

Permalänk: https://www.webforum.nu/p/1401050

## #3 — silfver, 2004-08-03T16:01Z

> **tydal skrev:**
>
> echo(${$\_GET\['datum'\]});

Hur ska jag göra en länk av det där då? Meningen är att jag ska slippa en massa undersidor. Ändamålet är en dagbok nämligen. Går det att göra en länk av det där? :)

Permalänk: https://www.webforum.nu/p/1401131

## #4 — Pedda, 2004-08-03T16:16Z

```php
if ($_GET['datum'] == 'april_2004') {
    echo "<h1>en massa kod</h1><p>massa text osv...</p>";
}
```

r/ Vad menar du att "göra en länk"? Har du inte länken redan?

Permalänk: https://www.webforum.nu/p/1401133

## #5 — Bäckman, 2004-08-03T16:43Z

```php
<?php
$titel = "sida";
include "/includes/top.php";

switch ($_GET["datum"]) {
case "april_2004":
echo "<h1>en massa kod</h1><p>massa text osv...</p>"; 
break;
case "maj_2004":
echo "Massa kod o grejer för maj månads dagboksinlägg";
break;
default:
echo "Detta kommer fram om du inte angivit någon månad";
}

include "/includes/bottom.php";
?>
```

Länk till Maj månads dagboksinlägg:

```
<a href="dagbok.php?datum=maj_2004">Maj 2004</a>
```

(Hoppas jag fick allt rätt i switch-satsen nu. Inte ofta jag använder såna.)

Permalänk: https://www.webforum.nu/p/1401158

## #6 — silfver, 2004-08-03T17:50Z

> **Bäckman skrev:**
>
> (Hoppas jag fick allt rätt i switch-satsen nu. Inte ofta jag använder såna.)

Ja det var precis så jag ville ha det! Det funkade bra. Tack.

Är det ett lustigt sätt att använda sig av, eller finns det lättare lösningar? Eller måste man använda sig av databaser eller nåt då? :) Eftersom det är en hel del text och sådär så...

Permalänk: https://www.webforum.nu/p/1401180

## #7 — silfver, 2004-08-03T18:25Z

Det blir rätt krångligt om man ska ha med bilder och sånt där... :p

Permalänk: https://www.webforum.nu/p/1401197

## #8 — Matte, 2004-08-03T18:39Z

Varför inte göra så här:

```php
if (file_exists('dagbok/'.$_GET['datum'])) {

   include 'dagbok/'.$_GET['datum'];

} else {

   // Lista dagböcker, kolla upp readdir i manuelan

}
```

Sedan lägger du dina olika månader i egen fil i katalogen 'dagbok'.
Det blir heller inga problem att göra ett adminskript där du kan ändra och lägga till i filer, samt skapa nya filer.
Du kan använda HTML fullt ut eftersom det endast är du som kommer att ha tillgång att ändra.

Listningen av dina månader går då också att göra helt automatiskt. När du lägger till en fil kommer denna automatiskt med i listan.

Permalänk: https://www.webforum.nu/p/1401199

## #9 — silfver, 2004-08-03T18:47Z

> **Matte skrev:**
>
> Varför inte göra så här:
>
>
> ```php
> if (file_exists('dagbok/'.$_GET['datum'])) {
> 
>    include 'dagbok/'.$_GET['datum'];
> 
> } else {
> 
>    // Lista dagböcker, kolla upp readdir i manuelan
> 
> }
> ```
>
> 
> Sedan lägger du dina olika månader i egen fil i katalogen 'dagbok'.
> Det blir heller inga problem att göra ett adminskript där du kan ändra och lägga till i filer, samt skapa nya filer.
> Du kan använda HTML fullt ut eftersom det endast är du som kommer att ha tillgång att ändra.
> 
> Listningen av dina månader går då också att göra helt automatiskt. När du lägger till en fil kommer denna automatiskt med i listan.

Intressant. Vad kommer den leta efter för filer? Vill du ge mig en länk till 'manualen' så jag kan ta mig en titt?

Permalänk: https://www.webforum.nu/p/1401204

## #10 — Matte, 2004-08-03T19:04Z

För att lista din "meny", ta en titt på funktionen [readdir](http://se2.php.net/manual/en/function.readdir.php).
Eventuellt kan du behöva använda [filemtime](http://se2.php.net/manual/en/function.filemtime.php) eller [filectime](http://se2.php.net/manual/en/function.filectime.php) för att sortera ordningen.

Ett adminskript sedan som använder [fopen](http://se2.php.net/manual/en/function.fopen.php)/[fread](http://se2.php.net/manual/en/function.fread.php) och [fopen](http://se2.php.net/manual/en/function.fopen.php)/[fwrite](http://se2.php.net/manual/en/function.fwrite.php) för att hämta och spara filerna till/från ett formulär.

I din katalog 'dagbok' ska du inte ha någonting annat än dessa filer.

Permalänk: https://www.webforum.nu/p/1401209

## #11 — silfver, 2004-08-03T19:12Z

Tackar. Men återigen, vad är det för filer den kommer lista? .txt? .php-filer? :e 

> **Matte skrev:**
>
> I din katalog 'dagbok' ska du inte ha någonting annat än dessa filer.

```php
<?php
if (file_exists('/dagbok/'.$_GET['datum'])) {
   include '/dagbok/'.$_GET['datum'];
} else {

   // Lista dagböcker, kolla upp readdir i manuelan
}

if ($handle = opendir('.')) {
   while (false !== ($file = readdir($handle))) {
       if ($file != "." && $file != "..") {
           echo "$file\n";
       }
   }
   closedir($handle);
}
?>
```

Jag borde inte ge mig in på nåt jag inte vet hur det fungerar. :p Men den listar i alla fall -alla- filer i mappen nu. Hur hade du tänkt att jag skulle göra? Att den ska skapa en txt-fil för varje månad?

Permalänk: https://www.webforum.nu/p/1401214

## #12 — tydal, 2004-08-03T19:32Z

> **silfver skrev:**
>
> Hur ska jag göra en länk av det där då?

Du hade ju redan skrivit i ditt inlägg att länken skulle vara /?datum=april_2004 och att du hade en variabel som hette $april_2004 som du ville skriva ut.

Raden echo(${$\_GET\['datum'\]}); skriver ut variabeln som heter som det står efter ?datum=

I det här fallet skriver den alltså ut variabeln $april_2004 men hade du klickat på länken /?datum=maj_2004 hade den skrivit ut variabeln $maj_2004.

Permalänk: https://www.webforum.nu/p/1401221

## #13 — Matte, 2004-08-03T19:36Z

```php
<?php

if (file_exists('./dagbok/'.$_GET['datum'])) {

   include './dagbok/'.$_GET['datum'];

} else {

   if ($handle = opendir('./dagbok')) {

      while (false !== ($file = readdir($handle))) {
         if ($file != "." && $file != "..") {
            echo "<a href=\"{$_SERVER['PHP_SELF']}?datum=$file\">$file</a><br>\n";
         }
      }

      closedir($handle);

   }

}

?>
```

Låt filerna bara heta typ april_2004 och liknande, utan någon filändelse.
Tills du har gjort ditt adminskript (inte särskilt avanderat), så kan du så länge ändra dom i din editor och ladda upp dom med FTP.

Permalänk: https://www.webforum.nu/p/1401223

## #14 — silfver, 2004-08-03T19:59Z

> **tydal skrev:**
>
> > **silfver skrev:**
> >
> > Hur ska jag göra en länk av det där då?
>
> 
> 
> Du hade ju redan skrivit i ditt inlägg att länken skulle vara /?datum=april_2004 och att du hade en variabel som hette $april_2004 som du ville skriva ut.
> 
> Raden echo(${$\_GET\['datum'\]}); skriver ut variabeln som heter som det står efter ?datum=
> 
> I det här fallet skriver den alltså ut variabeln $april_2004 men hade du klickat på länken /?datum=maj_2004 hade den skrivit ut variabeln $maj_2004.

Nja, jag hade ingen länk. Jag skrev bara hur jag ville att det skulle se ut. Men nu efter ditt inlägg så förstår jag precis hur man ska göra. Tack för det.

> **Matte skrev:**
>
> Låt filerna bara heta typ april_2004 och liknande, utan någon filändelse.
> Tills du har gjort ditt adminskript (inte särskilt avanderat), så kan du så länge ändra dom i din editor och ladda upp dom med FTP.

Jag får ett felmeddelande av din kod: 

> **servern skrev:**
>
> Warning: OpenDir: Invalid argument (errno 22) in C:\\Program\\FoxServ\\www\\dagbok\\index.php on line 58

(Det kanske är servern som är är felkonfad eller nåt...) Rad 58 är den här: 

```php
   if ($handle = opendir('./dagbok')) {
```

Permalänk: https://www.webforum.nu/p/1401235

## #15 — Matte, 2004-08-03T20:06Z

Har du skapat någon katalog 'dagbok' än som ligger under katalogen du har skriptet i ?
Annars bör det bli felmeddelande.

Du kan också skriva: 

```php
if ($handle = opendir('dagbok')) {
```

Men det bör inte göra någon skillnad.

Permalänk: https://www.webforum.nu/p/1401243

## #16 — silfver, 2004-08-03T20:08Z

> **Matte skrev:**
>
> Har du skapat någon katalog 'dagbok' än som ligger under katalogen du har skriptet i ?
> Annars bör det bli felmeddelande.
> 
> Du kan också skriva: 
>
>
> ```php
> if ($handle = opendir('dagbok')) {
> ```
>
> Men det bör inte göra någon skillnad.

Menar du att jag ska skapa en mapp som heter 'dagbok' i min mapp 'dagbok'? :) Börjar bli trött nu... Men det hjälpte inte att ändra så som du skrev.

Permalänk: https://www.webforum.nu/p/1401246

## #17 — Matte, 2004-08-03T20:20Z

Du kan kalla katalogen 'filer' eller 'databas' eller vad du vill :)

Du ändrar då bara 'dagbok' i skriptet till det namn du har valt på katalogen, t.ex

```php
<?php

if (file_exists('./databas/'.$_GET['datum'])) {

   include './databas/'.$_GET['datum'];

} else {

   if ($handle = opendir('./databas')) {

      while (false !== ($file = readdir($handle))) {
         if ($file != "." && $file != "..") {
            echo "<a href=\"{$_SERVER['PHP_SELF']}?datum=$file\">$file</a><br>\n";
         }
      }

      closedir($handle);

   }

}

?>
```

 
Förmodar att den katalog du har detta skript i heter dagbok.
Katalogen databas lägger du under katalogen dagbok.

Permalänk: https://www.webforum.nu/p/1401250

## #18 — silfver, 2004-08-06T17:10Z

> **Matte skrev:**
>
> Du kan kalla katalogen 'filer' eller 'databas' eller vad du vill :)
> 
> Du ändrar då bara 'dagbok' i skriptet till det namn du har valt på katalogen, t.ex
>
>
> ```php
> <?php
> 
> if (file_exists('./databas/'.$_GET['datum'])) {
> 
>    include './databas/'.$_GET['datum'];
> 
> } else {
> 
>    if ($handle = opendir('./databas')) {
> 
>       while (false !== ($file = readdir($handle))) {
>          if ($file != "." && $file != "..") {
>             echo "<a href=\"{$_SERVER['PHP_SELF']}?datum=$file\">$file</a><br>\n";
>          }
>       }
> 
>       closedir($handle);
> 
>    }
> 
> }
> 
> ?>
> ```
>
>  
> Förmodar att den katalog du har detta skript i heter dagbok.
> Katalogen databas lägger du under katalogen dagbok.

Den där koden funkade fint. Men när man klickar på ett datum som den listar så visar den inte innehållet. Måste man ändra nåt mer i koden?

Du skrev nåt om fopen osv. Måste man skriva till nåt sånt för att den ska visa innehållet? :)

Permalänk: https://www.webforum.nu/p/1403102

## #19 — Matte, 2004-08-06T17:29Z

Den koden fungerar utmärkt, så länge det är textfiler du lägger i katalogen databas.

Har gjort en smärre modifikation, för att användaren inte ska kunna öppna andra filer:

```php
<?php

if (!empty($_GET['datum']) && file_exists('./databas/'.basename($_GET['datum']))) {

   include './databas/'.basename($_GET['datum']);

} else {

   if ($handle = opendir('./databas')) {

      while (false !== ($file = readdir($handle))) {
         if ($file != "." && $file != "..") {
            echo "<a href=\"{$_SERVER['PHP_SELF']}?datum=$file\">$file</a><br>\n";
         }
      }

      closedir($handle);

   }

}

?>
```

Permalänk: https://www.webforum.nu/p/1403109

## #20 — silfver, 2004-08-06T17:40Z

Aha, så det ska vara textfiler. Testade att ändra men får det inte att funka ändå. Ta en titt: <http://silfver.se/temp>

Vad kan vara galet?

Ja just det. Nu har jag endast din kod där. Jag har inget annat. Jag antar att man måste ha en liten kod också så den vet vart den ska printa innehållet. Eller?

Permalänk: https://www.webforum.nu/p/1403112

---

Tråden på webben: https://www.webforum.nu/amne/php/108434-månad  
Nästa sida: https://www.webforum.nu/amne/php/108434-månad/page2.md
