Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > dk.edb.internet.webdesign.serverside.php > #7259 > unrolled thread

Noget om include

Started byBertel Lund Hansen <gadekryds@lundhansen.dk>
First post2020-05-01 21:25 +0200
Last post2020-05-04 12:05 +0200
Articles 8 — 4 participants

Back to article view | Back to dk.edb.internet.webdesign.serverside.php


Contents

  Noget om include Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-01 21:25 +0200
    Re: Noget om include Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-01 22:37 +0200
      Re: Noget om include Jan Hansen <jhjjhjhhansen@gmail.com> - 2020-05-01 23:02 +0200
    Re: Noget om include Arne Vajhøj <arne@vajhoej.dk> - 2020-05-01 19:18 -0400
      Re: Noget om include Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-02 08:34 +0200
        Re: Noget om include Arne Vajhøj <arne@vajhoej.dk> - 2020-05-02 14:51 -0400
          Re: Noget om include Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2020-05-03 08:21 +0200
    Re: Noget om include Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2020-05-04 12:05 +0200

#7259 — Noget om include

FromBertel Lund Hansen <gadekryds@lundhansen.dk>
Date2020-05-01 21:25 +0200
SubjectNoget om include
Message-ID<1okx4uv8bffcc.dlg@lundhansen.dk>
Forestil jer et PHP-modul opbygget således:

--------------------------------
function A () {...kode...}
function B () {...kode...}
function C () {...kode...}
// -------- Main
A(1,2,3);
B(4,5,6);
C(7,8,9);
--------------------------------

Hvis jeg inkluderer det med 

  	include_once 'modul.inc.php'

fra en index.php der styrer mange sider (a la fiduso.dk), er det
så ikke rigtigt at main-delen kun aktiveres én gang og f.eks.
ikke vil virke når man beder om en ny side i samme session?

-- 
/Bertel

[toc] | [next] | [standalone]


#7260

FromJan Hansen <jhjjhjhhansen@gmail.com>
Date2020-05-01 22:37 +0200
Message-ID<20200501223723.0d38a6fc87d409a69330dfda@gmail.com>
In reply to#7259
Bertel Lund Hansen skrev:

> Forestil jer et PHP-modul opbygget således:
> 
> --------------------------------
> function A () {...kode...}
> function B () {...kode...}
> function C () {...kode...}
> // -------- Main
> A(1,2,3);
> B(4,5,6);
> C(7,8,9);
> --------------------------------
> 
> Hvis jeg inkluderer det med 
> 
>   	include_once 'modul.inc.php'
> 
> fra en index.php der styrer mange sider (a la fiduso.dk), er det
> så ikke rigtigt at main-delen kun aktiveres én gang og f.eks.
> ikke vil virke når man beder om en ny side i samme session?

Hvis en fil indeholder funktioner, kan den kun includeres én gang. 
Anden gang kommer der fejl, fordi funktionen findes i forvejen.
Hvis filen også indeholder variabler, der skal "nulstilles" ind 
imellem, kan du så ikke dele det op i to filer, en med funktioner, 
og en med variabler?


-- 
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

[toc] | [prev] | [next] | [standalone]


#7261

FromJan Hansen <jhjjhjhhansen@gmail.com>
Date2020-05-01 23:02 +0200
Message-ID<20200501230232.2fafd87ceb82d0d315559f72@gmail.com>
In reply to#7260
Jan Hansen skrev:

> Hvis en fil indeholder funktioner, kan den kun includeres én gang. 

Det var vist noget sludder, jeg fik skrevet, det har jo ikke meget 
med sessioner at gøre. 

-- 
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

[toc] | [prev] | [next] | [standalone]


#7262

FromArne Vajhøj <arne@vajhoej.dk>
Date2020-05-01 19:18 -0400
Message-ID<r8iap1$1rgq$1@gioia.aioe.org>
In reply to#7259
On 5/1/2020 3:25 PM, Bertel Lund Hansen wrote:
> Forestil jer et PHP-modul opbygget således:
> 
> --------------------------------
> function A () {...kode...}
> function B () {...kode...}
> function C () {...kode...}
> // -------- Main
> A(1,2,3);
> B(4,5,6);
> C(7,8,9);
> --------------------------------
> 
> Hvis jeg inkluderer det med
> 
>    	include_once 'modul.inc.php'
> 
> fra en index.php der styrer mange sider (a la fiduso.dk), er det
> så ikke rigtigt at main-delen kun aktiveres én gang og f.eks.
> ikke vil virke når man beder om en ny side i samme session?

Jeg er ikke sikker på hvad du spørger om.

En request er for en PHP fil.

Den PHP fil kan inkludere andre PHP filer.

include 'modul.inc.php'

inkluderer modul.inc.php.

include_once 'modul.inc.php'

inkluderer modul.inc.php *hvis* den ikke er inkluderet tidligere (i 
request).

Så hvis du har:
* index.php inkluderer modul.inc.php og foobar.php
* foobar.php inkluderer modul.inc.php
så er det vigtigt at du bruger include_once og ikke include,
fordi dine funktionskald kan godt udføres to gange men
det kan dine funktions definitioner ikke.

Alt det her er per request.

En session kan bestå af mange requests, men hvordan en request
håndterer include påvirkes ikke af om requesten er en del af
en session eller af hvad der er sket i tidligere requests
i samme session.

Arne

PS: Hvorfor ikke bruge require_once fromfor include_once? Du ønsker
     vel ikke at fortsætte hvis modul.inc.php mangler?





[toc] | [prev] | [next] | [standalone]


#7263

FromBertel Lund Hansen <gadekryds@lundhansen.dk>
Date2020-05-02 08:34 +0200
Message-ID<1usaqh0opm96c.dlg@lundhansen.dk>
In reply to#7262
Arne Vajhøj skrev:

> Jeg er ikke sikker på hvad du spørger om.

Et eksempel:

Hvis man har nogle brugere som man ikke bryder sig om, kan man
ønske at der på hver webside de vælger fra menuen, står "Du er en
uønsket gæst".

index.php inkluderer så et modul der tjekker om IP-nummeret er
uønsket og skriver beskeden hvis det er.

Modulet er opbygget som beskrevet før. Hvis main-delen ikke
aktiveres, sker der intet tjek af brugeren.

Nu er mit spørgsmål:

Hvis jeg bruger "require_once", så hentes modulet når man åbner
index.php og ellers ikke. Hvis man så i menuen åbner en underside
(som styres af index.php), vil der så stå "Du er en uønsket gæst"
igen - altså på hver side man åbner fra menuen - fordi tjekket
aktiveres, eller bliver det kun aktiveret allerførste gang
modulet inkluderes?

Jeg har ikke et praktisk problem. Og jeg har brugt "require" -
det havde jeg bare glemt.

-- 
/Bertel

[toc] | [prev] | [next] | [standalone]


#7264

FromArne Vajhøj <arne@vajhoej.dk>
Date2020-05-02 14:51 -0400
Message-ID<r8kfgf$1cop$1@gioia.aioe.org>
In reply to#7263
On 5/2/2020 2:34 AM, Bertel Lund Hansen wrote:
> Arne Vajhøj skrev:
>> Jeg er ikke sikker på hvad du spørger om.
> 
> Et eksempel:
> 
> Hvis man har nogle brugere som man ikke bryder sig om, kan man
> ønske at der på hver webside de vælger fra menuen, står "Du er en
> uønsket gæst".
> 
> index.php inkluderer så et modul der tjekker om IP-nummeret er
> uønsket og skriver beskeden hvis det er.
> 
> Modulet er opbygget som beskrevet før. Hvis main-delen ikke
> aktiveres, sker der intet tjek af brugeren.
> 
> Nu er mit spørgsmål:
> 
> Hvis jeg bruger "require_once", så hentes modulet når man åbner
> index.php og ellers ikke. Hvis man så i menuen åbner en underside
> (som styres af index.php), vil der så stå "Du er en uønsket gæst"
> igen - altså på hver side man åbner fra menuen - fordi tjekket
> aktiveres, eller bliver det kun aktiveret allerførste gang
> modulet inkluderes?

Det afhænger helt af hvad "underside som styres af index.php" dækker over.

Browser sender en reqest for index.php, index.php laver require_once
som inkluderer dit modul, index.php laver require_once igen
efter underside.php, underside.php laver require_once
som inkluderer dit modul - her vil PHP ikke gøre noget da det er
inkluderet allerede.


Browser sender en reqest for index.php, index.php laver require_once
som inkluderer dit modul, index.php outputter <a href='underside.php'>,
bruger klikker på link, browser sender 1 request for underside.php,
underside.php laver require_once som inkluderer dit modul - her vil
PHP udføre inkludering, da denne request ikke har noget med den
foregående request at gøre.

Arne

[toc] | [prev] | [next] | [standalone]


#7265

FromBertel Lund Hansen <gadekryds@lundhansen.dk>
Date2020-05-03 08:21 +0200
Message-ID<1tno36q1aak8w.dlg@lundhansen.dk>
In reply to#7264
Arne Vajhøj skrev:

> Browser sender en reqest for index.php, index.php laver require_once
> som inkluderer dit modul, index.php outputter <a href='underside.php'>,
> bruger klikker på link, browser sender 1 request for underside.php,
> underside.php laver require_once som inkluderer dit modul - her vil
> PHP udføre inkludering, da denne request ikke har noget med den
> foregående request at gøre.

Tak, det besvarede mit spørgsmål.

-- 
/Bertel

[toc] | [prev] | [next] | [standalone]


#7273

FromMartin Larsen <martin+spamfree+larsen@bigfoot.com>
Date2020-05-04 12:05 +0200
Message-ID<5eafe902$0$698$14726298@news.sunsite.dk>
In reply to#7259
On 01.05.2020 21.25, Bertel Lund Hansen wrote:

> fra en index.php der styrer mange sider (a la fiduso.dk), er det
> så ikke rigtigt at main-delen kun aktiveres én gang og f.eks.
> ikke vil virke når man beder om en ny side i samme session?

Arne har allerede svaret, men meget kort: includes bliver loadet hver 
gang, uanset sessionen.

-- 
tv4ever.dk
bedrevejr.dk

[toc] | [prev] | [standalone]


Back to top | Article view | dk.edb.internet.webdesign.serverside.php


csiph-web