[PHP] globale array in meerde bestanden

Pagina: 1
Acties:
  • 129 views sinds 30-01-2008
  • Reageer

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Probleem
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
//bestand1.php
function voegtoe($item)
{
   global $lijst;
   $lijst[]=$item;

}
//einde bestand1
//bestand2.php
if($cmd_go)//SUBMIT in formulier
{
   voegtoe($waarde_in_veld);
   echo "<PRE>";
   print_r($lijst);
   echo "</PRE>";
}
?>

Wat ik wil is dat een gebruiker items toevoegd aan een lijst.
Probleem is nu dat alleen het eerste element van de array gevult wordt... (en elke keer weer overschreven)

Wat is mijn denkfout ????

Wat niet kan is nog nooit gebeurd


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

global!=goed

Doet iets met Cloud (MS/IBM)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Variabelen blijven alleen geldig voor de duur dat de php wordt verwerkt.

i.e. eerste.php -> tweede.php

alle variabelen in eerste.php die zijn gebruikt bestaan niet meer.. druk je dan op die pagina op een knop naar pagina 2.. dan bestaan die variabelen nog steeds niet meer.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 07 december 2001 13:25 schreef D2k het volgende:
global!=goed
niet liegen... global == goed... goed fout dat is..

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Ja zoiets heb ik je vaker zien posten.....(D2K)
zal wel niet netjes zijn dan...

Maar goed,
weet je mischien ook een oplossing, ik heb php.net ook al aarder afgestruind maar ik kan niet echt iets nuttig vinden.

Wat niet kan is nog nooit gebeurd


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 07 december 2001 13:25 schreef D2k het volgende:
global!=goed
sterker nog:
global = !goed;

;)

kijk even hier
edit:[quote]
dusty:
niet liegen... global == goed... goed fout dat is..
[/quote]

:D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
OK OK,

De globals gaan eruit..
ben nu aan het lezen..
bedankt voor de link

Wat niet kan is nog nooit gebeurd


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 07 december 2001 13:32 schreef Nexopheus het volgende:
OK OK,

De globals gaan eruit..
ben nu aan het lezen..
bedankt voor de link
Niet overdrijven. Globale variabelen zelf zijn niet fout.
Het gebruik van global als opdracht in een functie is beetje erg fout. Soms is het wel een oplossing maar meestal niet de beste.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op vrijdag 07 december 2001 13:34 schreef drm het volgende:
Niet overdrijven. Globale variabelen zelf zijn niet fout.
Het gebruik van global als opdracht in een functie is beetje erg fout. Soms is het wel een oplossing maar meestal niet de beste.
mm.. Heb het sinds ik programmeer slechts EEN keer nodig gehad. (en dat was voor een "vreemde" template parser..)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op vrijdag 07 december 2001 13:38 schreef dusty het volgende:
mm.. Heb het sinds ik programmeer slechts EEN keer nodig gehad. (en dat was voor een "vreemde" template parser..)
exactly. Zeg nooit nooit :)

offtopic: nog contact gehad met [tb] lately?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Mag ik vragen wat er dan zo slecht aan global is? Ik gebruik het al een hele tijd voor me login area en het werkt prima...

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 13 december 2001 16:27 schreef Freez0r het volgende:
Mag ik vragen wat er dan zo slecht aan global is? Ik gebruik het al een hele tijd voor me login area en het werkt prima...
Omdat je die variabele naam nergens anders meer kan gebruiken, en als je zo programmeert, zal de manier waarop ook niet helemaal goed zijn. Post je code eens :)

Verwijderd

Ok, eerst maak ik dus een cookie aan genaamd user & eentje genaamd pass... En die controleer ik telkens met een functie die deze code uitvoert:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
global $user, $pass;
$query = mysql_query("SELECT * FROM crew");

    while($result = mysql_fetch_object($query)) {
            if (trim($result->naam) == trim($user) &amp;&amp; trim($result->password) == trim($pass))
        return true;
    }
return false;
?>

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Freez0r:
Mag ik vragen wat er dan zo slecht aan global is? Ik gebruik het al een hele tijd voor me login area en het werkt prima...
Omdat je er nooit zeker kan zijn of de waarde tussendoor niet veranderd is, en je zelf bij moet gaan houden welke variabelenamen er allemaal al gebruikt zijn, etc.

Niet handig.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Freex0r, wat returnt hij precies? of je goed inlogt of niet?


Dan is een fijne aanroep,

checklogin($user,$pass); met return true or false.

Snapje?

Verwijderd

Aangezien mijn admin area uit meerdere files bestaat (ivbm overzichtelijkheid) moet hij natuurlijk bij elk file kijken of je wel ingelogd bent, dat doe ik dus zo :
PHP:
1
2
3
4
5
6
7
<?
if (checklogin()) {
 // hier de code als je ingelogd bent 
} else {
 // hier de code als je niet ingelogd bent
}
?>

Verwijderd

PHP:
1
2
3
4
5
6
<?
function writeBackend($type) {
   global $gp_backend_filename;
   ...
}
?>

Wat is hier mis met mijn globale variabele voor een filename ? Ik geef zo mooi een prefix gp_, wil je anders elke keer de filename via de functie parameter meegeven ?

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 13 december 2001 16:38 schreef Freez0r het volgende:
Aangezien mijn admin area uit meerdere files bestaat (ivbm overzichtelijkheid) moet hij natuurlijk bij elk file kijken of je wel ingelogd bent, dat doe ik dus zo :
PHP:
1
2
3
4
5
6
7
<?
if (checklogin()) {
 // hier de code als je ingelogd bent 
} else {
 // hier de code als je niet ingelogd bent
}
?>
en als je nou een trash.php?user=12 wilt maken? >:)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op donderdag 13 december 2001 16:39 schreef c9melvin het volgende:
PHP:
1
2
3
4
5
6
<?
function writeBackend($type) {
   global $gp_backend_filename;
   ...
}
?>

Wat is hier mis met mijn globale variabele voor een filename ? Ik geef zo mooi een prefix gp_, wil je anders elke keer de filename via de functie parameter meegeven ?
Ja.

Tenzij $gp_backend_filename een constante is. Maar dan "moet" je hem in hoofdletters doen, of er een define van maken.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op donderdag 13 december 2001 16:40 schreef Nielsz het volgende:
en als je nou een trash.php?user=12 wilt maken? >:)
:?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Op donderdag 13 december 2001 16:40 schreef Nielsz het volgende:

[..]

en als je nou een trash.php?user=12 wilt maken? >:)
Ja dan verzin ik wel een andere variabele, niet zo'n probleem lijkt me :P

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 13 december 2001 16:41 schreef drm het volgende:

[..]

:?
Dan gaat hij proberen in te loggen onder user 12.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
En als je geen globals gebruikt kan je je code beter hergebruiken. (== belangrijk)

Verwijderd

En toch hou ik het erop dat in dit geval globals best handig zijn >:)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Freez0r:
En toch hou ik het erop dat in dit geval globals best handig zijn >:)
Handig, jah. Gemakzuchtig, jah. Gestructureerd, neeh. Netjes, neeh. Verantwoordlijk, neeh... ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Tja, er zijn ook mensen zoals Drm en /me, die lui zijn en die het meteen goed doen zodat ze er later niet op terug hoeven te komen :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op donderdag 13 december 2001 16:51 schreef Nielsz het volgende:
Tja, er zijn ook mensen zoals Drm en /me, die lui zijn en die het meteen goed doen zodat ze er later niet op terug hoeven te komen :)
Ach in kleine scripts is het ook niet zo'n problem imo.
Het is alleen een slechte gewoonte, want zodra je wat groters moet gaan ontw(erpen/ikkelen) raak je het overzicht kwijt.

* drm is then again in love with OO

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 13 december 2001 16:53 schreef drm het volgende:

[..]

Ach in kleine scripts is het ook niet zo'n problem imo.
Het is alleen een slechte gewoonte, want zodra je wat groters moet gaan ontw(erpen/ikkelen) raak je het overzicht kwijt.

* drm is then again in love with OO
En toen was je me weer kwijt ;)
OO >> :r en dat is dan imho.
Leutig, maar ik gebruik het niet.
Leutig in C++, maar niet in PHP.
imho.

/offtopic ;)

Verwijderd

Op donderdag 13 december 2001 16:33 schreef drm het volgende:
Omdat je er nooit zeker kan zijn of de waarde tussendoor niet veranderd is, en je zelf bij moet gaan houden welke variabelenamen er allemaal al gebruikt zijn, etc.

Niet handig.
Nou hier ben ik het dus niet mee eens, waarom niet?... als jij je code zelf goed kan lezen haal je dit soort stommiteiten er echt wel uit en zorg je er voor dat dat gewoon niet mogelijk is...

In mijn CODE kan ik er zeker van zijn dat bepaalde dingen niet veranderen omdat ik weet wat me code doet! :)

Ik vind GLOBAL liev :* en waarom? daarom. :+

Verwijderd

-edit yeah let the discussion begin again >:) edit-

[ot]of juist niet[/ot]
Pagina: 1