Avatar billede zerocrash Nybegynder
22. september 2007 - 19:28 Der er 11 kommentarer og
1 løsning

Implementering af php i links

Jeg står og undrer mig lidt over hvordan jeg kan gøre mit site lidt mere prof. i udseende - jeg er ikke den store php-guru så jeg vil gerne udbede mig lidt hjælp.

Mange steder ser man links se ud som dette eksempel

www.domain.dk/index.php?side=2

Men hvordan laver man dette?

jeg har i øjeblikket 5 sider som jeg gerne vil have "implementeret" i et sådan setup - hvis det er muligt.

Findes der et script der kan løse mit problem fremfor at jeg linker til 5 forskellige sider fra index.php - hvor URL'en så ville hedde

www.domain.dk/side2.php
www.domain.dk/side3.php
osv

På forhånd tak
Avatar billede kurdo Novice
22. september 2007 - 19:48 #1
meget nemt faktisk! :)

<?php
error_reporting(o);
$filnavn = $_GET['s'];
$filendelse = '.php';
if (!$filnavn) {
$filnavn = 'home';
}
if (!eregi("^((.*)/)", $filnavn)) {
  include $filnavn . $filendelse;
}
else {
  include "404.php";
}
?>

vis du sætte koden ind i index.php kan du linke dig frem til:
index.php?s=filnavn
Avatar billede kurdo Novice
22. september 2007 - 19:51 #2
eller brug denne:

<?php $page =  isset($_GET['page']) ?    (file_exists('page/'.$_GET['page'].'.php') ?  $_GET['page'] : '404') :    'info'; include('page/'.$page.'.php');  ?>

vis du sætte den kode ind i index.php skal dine andre sider ligger i mappen page/
og du få index.php?page=filnavn

men du kan selvfølgelig også laver om på page så den fx hedde index.php?visside=filnavn! :)
Avatar billede zerocrash Nybegynder
22. september 2007 - 21:13 #3
Wow... fantastisk simpelt egentlig, når man lige skimmer koden :D

Men så skal jeg bare lige have det hele forstået korrekt - de 2 eksempler erstatter
<a href="http://domain.dk/side1.php" og skal indtastes istedet for linket til de forskellige sider samme sted som jeg pt. linker til fx. side 1 på index.php?
Avatar billede zerocrash Nybegynder
22. september 2007 - 21:34 #4
Der err noget jeg ikke har fattet.
Når jeg tilføjer eks. #1 efter <body> tilføjer siden automatisk den valgte side i toppen (den finder den valgte side så SÅ langt er jeg da kommet) - det skal den jo ikke. Den skal kalde siden når jeg klikker på linket.. Jeg tilføjede så <a href="http://domain.dk/index.php?s=kontakt"> med og uden .php - men den tilføjede stadig siden i toppen?

Jeg prøvede så at forsøge eks #2 efter body med samme resultat.

Jeg er vist ved at være halvtræt for jeg ved der er noget jeg overser, jeg kan bare ikke finde ud af HVAD jeg gør forkert.
Avatar billede zerocrash Nybegynder
22. september 2007 - 21:35 #5
Som en ekstra info hedder de 5 sider

index.php
profil.php
firma.php
kontakt.php
mailform.php
Avatar billede kurdo Novice
23. september 2007 - 00:30 #6
hej igen, jeg har ikke selv lavet koden, ved også fundet på nettet..

men det du gør er:
sætte den kode ind i index.php der hvor indeholdet skal være..
så laver du en php fil der hedder forside.php

også laver du "$filnavn = 'home';" om til "$filnavn = 'forside';"

så som start side includere den forside.php, men husk det eneste du behøves at putte ind i forside.php er det som skal står i startsiden. håber det hjælpe, ellers prøv giv et link? fordi det burder være meget simpel.. ellers brug den anden kode som er næsten det samme, men bare smid de andre filer i mappen page :)
Avatar billede zerocrash Nybegynder
23. september 2007 - 10:10 #7
Godmorgen... :)

"så som start side includere den forside.php,"
--> Her er problemet at index.php INDLÆSER forside.php med det samme og smider den hvor jeg indsætter enten det ene eller andet script. Uanset hvor i php'en jeg smider scriptet bliver includer php forside.php i index.php og det kan jeg desværre ikke bruge til noget.

Men jeg tror at jeg gør noget forkert - for den finder jo siden og indsætter den i index.php - men hvad gør jeg for, at kalde filen i linket? Jeg benytter pt. <a href="forside.php"> og har forsøgt med <a href="forside"> hvilket ikke gav et resultat. Jeg har en idé om, at jeg overser at jeg skal putte en variabel af en art ind i link-tagget - men hvilket?
Avatar billede kurdo Novice
23. september 2007 - 13:43 #8
jeg er desværre ikke god til php, men du laver de andre links ved at i menuen laver :

<a href="index.php?s=forside">Forside</a><br>
<a href="index.php?s=profil">Profil</a><br>
<a href="index.php?s=firma">Firma</a><br>
<a href="index.php?s=kontakt">Kontakt</a><br>
<a href="index.php?s=mailform">Mailform</a><br>

men vis du ikke vil have den skal kalder på forside.php når man første gang besøger siden, så tror jeg bare du skal slette den ligne, ellers ved jeg nemlig ikke. :) hehe,.
Avatar billede zerocrash Nybegynder
23. september 2007 - 13:59 #9
Jeg tilføjer efter <body> dette:

<?php
error_reporting(o);
$filnavn = $_GET['s'];
$filendelse = '.php';
if (!$filnavn) {
$filnavn = 'kontakt';
}
else {
  include "404.php";
}
?>

og indsætter følgende i mit <a>-tag:
<a href="index.php?s=kontakt">Kontakt</a> Men det virker ikke - eller jo, noget gør. For nu tilføjer den ikke kontakt-siden i toppen længere. Men jeg kan stadig ikke kalde kontakt.php via index.php?s=kontakt.php

Jeg tror snart jeg dropper projektet og affinder mig med kontakt.php hvis ikke andre kan hjælpe med dette lille projekt som jo egentlig ikke burde være så skide svært
Avatar billede kurdo Novice
23. september 2007 - 18:16 #10
altså, det er jo nemt det du vil have, det er bare dig der gør det hele sværere.

men du skal ikke laver om på denne kode:

<?php
error_reporting(o);
$filnavn = $_GET['s'];
$filendelse = '.php';
if (!$filnavn) {
$filnavn = 'forside';
}
if (!eregi("^((.*)/)", $filnavn)) {
  include $filnavn . $filendelse;
}
else {
  include "404.php";
}
?>

lav 5 links :

<a href="index.php?s=forside">Forside</a><br>
<a href="index.php?s=profil">Profil</a><br>
<a href="index.php?s=firma">Firma</a><br>
<a href="index.php?s=kontakt">Kontakt</a><br>
<a href="index.php?s=mailform">Mailform</a><br>

og nu hver gang du går ind i index.php viser den forside.php og når du klikker på fx. Profil viser den profil.php. jeg synes ikke det er kan være nemmere?
Avatar billede zerocrash Nybegynder
23. september 2007 - 18:37 #11
Nu skrev du følgende tidligere:
"men vis du ikke vil have den skal kalder på forside.php når man første gang besøger siden, så tror jeg bare du skal slette den ligne, ellers ved jeg nemlig ikke. :) hehe,."  -- hvilket jeg gjorde - men uden effekt.

Pt. virker scriptet på den måde, at det includer den side som jeg be'r den linke til, hvilket jeg ikke kan bruge. Jeg har åbenbart misforstået meningen med det.

Hvis jeg skal flytte min index.php over på forside.php for, at få links til at virke - kan jeg lige så godt undlade at lave menuen således - så mener jeg, at der er noget der ikke er værd at kaste sig over.
Avatar billede zerocrash Nybegynder
23. september 2007 - 18:38 #12
Lukker - tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester