silfverMedlem sedan apr. 200312 679 inlägg Hejsan!
På min sida så gör jag så här för att inkludera innehåll:
<?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
silfverMedlem sedan apr. 200312 679 inlägg
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? :)
PeddaMedlem sedan juni 20006 032 inlägg 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?
BäckmanMedlem sedan nov. 2001274 inlägg <?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.)
silfverMedlem sedan apr. 200312 679 inlägg
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å...
silfverMedlem sedan apr. 200312 679 inlägg Det blir rätt krångligt om man ska ha med bilder och sånt där... :p
MatteMedlem sedan aug. 20002 975 inlägg Varför inte göra så här:
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.
silfverMedlem sedan apr. 200312 679 inlägg
Matte skrev:
Varför inte göra så här:
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?
MatteMedlem sedan aug. 20002 975 inlägg För att lista din "meny", ta en titt på funktionen readdir.
Eventuellt kan du behöva använda filemtime eller filectime för att sortera ordningen.
Ett adminskript sedan som använder fopen/fread och fopen/fwrite 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.
silfverMedlem sedan apr. 200312 679 inlägg 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
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?
tydalMedlem sedan juni 20034 013 inlägg
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.
MatteMedlem sedan aug. 20002 975 inlägg <?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.
silfverMedlem sedan apr. 200312 679 inlägg
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:
if ($handle = opendir('./dagbok')) {
MatteMedlem sedan aug. 20002 975 inlägg 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:
if ($handle = opendir('dagbok')) {
Men det bör inte göra någon skillnad.
silfverMedlem sedan apr. 200312 679 inlägg
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:
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.
MatteMedlem sedan aug. 20002 975 inlägg 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
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.
silfverMedlem sedan apr. 200312 679 inlägg
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
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? :)
MatteMedlem sedan aug. 20002 975 inlägg 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
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);
}
}
?>
silfverMedlem sedan apr. 200312 679 inlägg 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?