Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > dk.edb.internet.webdesign.serverside.php > #7259 > unrolled thread
| Started by | Bertel Lund Hansen <gadekryds@lundhansen.dk> |
|---|---|
| First post | 2020-05-01 21:25 +0200 |
| Last post | 2020-05-04 12:05 +0200 |
| Articles | 8 — 4 participants |
Back to article view | Back to dk.edb.internet.webdesign.serverside.php
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
| From | Bertel Lund Hansen <gadekryds@lundhansen.dk> |
|---|---|
| Date | 2020-05-01 21:25 +0200 |
| Subject | Noget 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]
| From | Jan Hansen <jhjjhjhhansen@gmail.com> |
|---|---|
| Date | 2020-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]
| From | Jan Hansen <jhjjhjhhansen@gmail.com> |
|---|---|
| Date | 2020-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]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2020-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]
| From | Bertel Lund Hansen <gadekryds@lundhansen.dk> |
|---|---|
| Date | 2020-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]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2020-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]
| From | Bertel Lund Hansen <gadekryds@lundhansen.dk> |
|---|---|
| Date | 2020-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]
| From | Martin Larsen <martin+spamfree+larsen@bigfoot.com> |
|---|---|
| Date | 2020-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