Avatar billede egeriis Nybegynder
15. april 2003 - 13:35 Der er 19 kommentarer og
1 løsning

Include af ekstern fil

Hej, jeg sidder netop i et større problem; jeg skal inkludere end fil som er halvt eksternt, dvs. man har ikke adgang til php-delen. I denne fil er der en "funktion" til at kalde en funktion. Det vil sige, at hvis man kalder fil.php?f=funktion så henter den funktion(); og udfører de jobs der er i denne.
Mit problem ligger i at jeg ikke kan definere get-vars i adresselinien i min require_once(); eller tager jeg fejl?
Hvordan kan man på anden vis gøre dette?
Avatar billede sukos Juniormester
15. april 2003 - 13:37 #1
if(isset($_GET["f"]) && $_GET["f"] == "funktion") {
include("din/sti/til/fil.php");
}
Avatar billede egeriis Nybegynder
15. april 2003 - 13:41 #2
Den blev vist misforstået.. Jeg vil ikke tjekke f for noget, jeg ved at f indeholder en værdi som er navnet på en funktion.
Det kan siges på den måde at jeg vil køre funktionen $f ();
Avatar billede sukos Juniormester
15. april 2003 - 13:41 #3
Og har du flere forskellige filer at include, så lav et array med filnavne:

$filnavne = array("funktion", "funktion2", funktion3");

if(isset($_GET["f"]) && in_array($_GET["f"], $filnavne)) {
include("din/sti/til/". $_GET["f"] .".php");
Avatar billede sukos Juniormester
15. april 2003 - 13:42 #4
ah, men princippet er vel det samme?
Avatar billede sukos Juniormester
15. april 2003 - 13:43 #5
Men du kan jo IKKE vide med sikkerhed at en get "f" rent faktisk svarer til en funktion
Avatar billede sukos Juniormester
15. april 2003 - 13:43 #6
Medmindre du laver et array hvor funktionsnavnet er defineret :O)
Avatar billede erikjacobsen Ekspert
15. april 2003 - 13:43 #7
$var1 = "hej";
$var2 = 17;
include("...");

så er de variablet tilgængelige - hvis det altså er PHP kode du inkluderer
Avatar billede egeriis Nybegynder
15. april 2003 - 13:44 #8
Nej, fordi jeg skal give fil.php en varibel, hmm, ligesom i adresselinien, dvs. $_get. Altså vil jeg inkludere fil.php?f=funktion.
Men men, dette kan ikke lade sig gøre? Dur ihvertfald ikke :)
Og det virker ikke at jeg laver dette trick:

$f = "funktion";
require_once ("fil.php");

Jeg skal blot have en metode til at hente $f fra fil.php. :/
Avatar billede egeriis Nybegynder
15. april 2003 - 13:45 #9
sukos: jeg definerer selv $f, så jo, jeg kan godt være sikker på det er en funktion!
Avatar billede egeriis Nybegynder
15. april 2003 - 13:47 #10
erikjacobsen: hmm, det virker nu ellers ikke? eller er det bare mig der er en tumpe? du kan lige se den jeg har opgivet som "fil.php" her:

<?
require_once ("wd_functions.php");
require_once ("wd_config.php");

if (verify ($w, $p)) {
  $f ($w);
}
?>

wd_functions.php indeholder alle mine funktioner, sjovt nok ;)

Men det er så i denne fil jeg skal bruge den før definerede $f, $w og $p.
Avatar billede tipsen Nybegynder
15. april 2003 - 13:47 #11
kig på eval() - men bemærk, at den er farlig (=sikkerhedsrisiko)

http://dk.php.net/manual/en/function.eval.php
Avatar billede sukos Juniormester
15. april 2003 - 13:48 #12
domain.dk/fil.php?f=var

Her kan du ikke vide med sikkerhed at var svarer til en funktion du vil bruge!
Avatar billede egeriis Nybegynder
15. april 2003 - 13:49 #13
sukos: jo, jeg definerer den selv...



--
OK, det var mig der var lidt af et kvaj, men nu fandt jeg da ud af det.. Ved ikke om nogle vil have et par point? :/
Avatar billede egeriis Nybegynder
15. april 2003 - 13:49 #14
- answer
Avatar billede erikjacobsen Ekspert
15. april 2003 - 13:51 #15
Fortæl os hellere hvad du kvajede dig med ... ;) Ingen point til mig
Avatar billede sukos Juniormester
15. april 2003 - 13:53 #16
Ja, du definerer den, men du kan jo ikke vide hvad en bruger skulle finde på at skrive i adresselinien?
Avatar billede sukos Juniormester
15. april 2003 - 13:55 #17
he, men der findes vel en function som tester om en function er defineret? :O)
Avatar billede egeriis Nybegynder
15. april 2003 - 13:59 #18
sukos, jeg inkluderer filen, altså bestemmer jeg selv adressen til den :)
Avatar billede egeriis Nybegynder
15. april 2003 - 14:00 #19
hvad jeg gjorde galt? vil I ikke vide.. hehe, jeg havde glemt at jeg havde smidt to vigtige variabler ind i en if ($mode == "save") og eftersom mode!=save så kom den jo ikke derind, doh :)
Avatar billede sukos Juniormester
15. april 2003 - 14:04 #20
nåh, ok! :O)
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