Jeg har læst om php en masse steder, og læst en del indlæg herinde. Dog kan jeg stadig ikke helt forstå det med incluce() o.s.v med dynamisk hp og sådan.
Jeg får hele tiden at vide, at jeg kun skal bruge min index.php hvis jeg bruger include. Men hvordan kan jeg holde besøge på min index.php og så include andre sidder, med mine links.
Hvis folk trykker på mit link bliver jeg da nødt til at linke dem videre til en ny fil hvor der er en ny include er jeg ikke?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det er sådan set simpelt nok. Hvis du i dine link sender information om hvilken fil du gerne vil include, så kan du nøjes med at linke til index.php filen. Hvis du har en menu der ligner denne:
Ja. Så vil indholdet blive hvad der findes i page1.php eller page2.php altså efter hvilket link man har trykket på. Du vil sikkert gerne tilføje en standard side..
} elseif($_GET['side'] == 'page.php') { // nu vil linket være index.php?side=page } elseif($_GET['side'] == 'page2.php') { // nu vil linket være index.php?side=page2 } elseif($_GET['page'] == 'page.php') { // nu vil linket være index.php?page=page } elseif($_GET['page'] == 'page2.php') { // nu vil linket være index.php?page=page2
så vil det blive vist i html-cellen hvor php-koden står og url vil blive vist som index.php?side=links, index.php?side=profil og index.php?side=kontakt
Vil du sige jeg har forstået det, hvis jeg går ud fra det hænger sådan sammen? :)
Tillad mig at gøre eksemplet lidt mere elegant (og nemmere at udvide). Hvis vi går ud fra dit behov med siderne: links, profil, kontakt, og at disse linkes med:
if (in_array($_GET["side"], $tilladte_sider)) { $inc_file = $_GET["side"] . ".php"; require_once($inc_file); } else { echo "Beklager, siden er ikke tilgængelig."; } ?>
På denne måde kan du nemt tilføje flere sider. Sidernes navne skal blot placeres i array'et $tilladte_sider.
Metoden med kun at have én indgangsside (som i dette eksempel "index.php") kaldes "action-dispatcher". Dvs. ét script modtager alle kommandoer fra brugeren og uddelegerer arbejdet til det relevante script.
Bla. mange fordele kan nævnes sikkerhed. Hvis nu alle dine sider kræver de samme sikkerhedschecks inden de bliver kørt (f.eks. login eller kontrol af formular-input), kan dette gøres én gang for alle i dispatcheren (index.php). Dette gøres så foran den kode jeg har vist. På den måde kommer alle sikkerhedschecks til at gælde for alle filerne, og du kommer ikke ved et uheld til at glemme et check på en enkelt side.
Mit spørgsmål var lige så meget for at illustrere at du og jeg har præsenteret to forskellige "sikkerheds-metoder". Du har valgt at tillade alle include-filer, undtagen dem du spærrer for i koden (en "negativ-liste". Jeg har valgt kun at inkludere de filer, som er defineret i en "positiv-liste".
Hvad hvis jeg har nogle menu-punkter, med nogle andre punkter inde under dem?
f.eks. når jeg går ind under punktet "webmaster" så jeg har nogle links inde under det som hedder "Kontakt, profil" hvordan gør jeg så så det kommer til at bliver f.eks. index.php?side=webmaster=profil eller noget i den stil?
if (in_array($_GET["side"], $tilladte_sider)) { $inc_file = $_GET["side"] . ".php"; require_once($inc_file); } else { echo "Beklager, siden er ikke tilgængelig."; } ?>
kunne jeg udvide alvion's eksempel? kunne forestille mig noget med et nyt array og if (in_array($_GET['side=webmaster']), $webmaster_array)) eller hvad?
Synes godt om
Ny brugerNybegynder
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.