[ALG] Afval code: Ik alleen?*

Pagina: 1
Acties:

  • Mir
  • Registratie: Maart 2001
  • Niet online
Ej,

het valt mij op als ik met grote projecten bezig ben (dus vele regels code) ik na een tijd afval code creëer. Hiermee bedoel ik dus bijv. Variabellen gebruiken die ik helemaal niet meer nodig heb voor het process.

Dit kan ik niet zomaar weg halen omdat het geheel veelste complex is geworden zodat ik niet 123 kan zien of iets nou nog echt gebruikt wordt of niet.

Dit gebeurd vaan omdat ik óf iets moet veranderen van iemand waardoor ik het volledig moet omgooien (zoals ik vanavond ah doen ben :7) óf omdat ik ineens een idee krijg hoe ik een niet-lekker-lopend stukje code wel lekker kan laten lopen, snel wat dingen wijzig, daar mee verder ga en dan uiteindelijk niet opruim.

Ben ik nu gewoon slordig? Of hebben hier meer mensen last van?
- of kom ik doordat ik dit op het web gooi _nooit_ meer aan een baan? >:))

Ben benieuwd!

Gr. Maarten

p.s.
Ik heb het hier over bijvoorbeeld C++, PHP, VB6, ASP....dat soort dingen...

[edit]
dit is komt vaak :? :D

  • CV_SmileY
  • Registratie: Februari 2001
  • Laatst online: 11-09 13:16

CV_SmileY

JackOfAllTrades MasterOfNone

Ja, dat is puur een kwestie van slordig werken. Als je tijdens het 'schrijven' een lijst met je variable (goed) bijhoud gaat het al een stuk makkelijker.
En gewoon ff 'commentaar-regels' toevoegen, dan kun je heel snel terug vinden waar iets staat

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 14-09 12:41

Super_ik

haklust!

k herken t probleem ja, zeker als ik in vb ofzo bezig ben. echt lastig bij de wa grootere dingen die echt :) moeten gaan werken .

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 21:26 schreef CV_SmileY het volgende:
Ja, dat is puur een kwestie van slordig werken. Als je tijdens het 'schrijven' een lijst met je variable (goed) bijhoud gaat het al een stuk makkelijker.
En gewoon ff 'commentaar-regels' toevoegen, dan kun je heel snel terug vinden waar iets staat
Het terug vinden van een stuk code is geen probleem..Dat gaat me wel goed af.

Hou jij dan werkelijk alle variabellen bij die je gebruikt?
Ik vind dat irritant werken moet ik zeggen, een stuk code tikken en dan je kladblok erbij moeten pakken.

Het is wat slordig, niet onwijs erg natuurlijk...Maar ik wil weten hoe ik dit kan verbeteren...effectief danwel!

Verwijderd

ik denk dat je dit kan voorkomen door van begin af aan heel netjes te coden, dus ook met include's functie's waar het handig is en alles heel overzichtelijk houden. Duidelijke var namen kunnen ook helpen.
Ik heb dit probleem zelf eigenlijk niet, dus weet niet helemaal precies wat je er tegen kan doen :) ik probeer wel altijd zo duidelijk en overzichtelijk mogelijk te scripten.
Een gouden regel is dat een andere scripter je code meteen moet begrijpen, zonder eerst een uitgebreide studie te doen.
Ej,
[...]
Gr. Maarten
De FAQ schreef ooit(uit m'n hoofd):
Wij tweakers groeten elkaar constant, het is dus niet nodig om onder elke post greetz [gebruikersnaam] te zetten. Wil je dit toch doen, gebruik hiervoor dan je sig

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik spendeer redelijk wat tijd aan het refacturen (dus bijwerken van code) Ongebruikte variablen komt bijna niet voor en methodes dito. Ik denk dat je een strenge programmeer stijl moet aanleren, want werken met afvalcode is echt rampzalig. (spreekt uit ervaring).

ps: ach die baan die komt er wel.. sommige mensen valt het niet eens op dat ze afval code maken :)

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 21:28 schreef jurriebur het volgende:
ik denk dat je dit kan voorkomen door van begin af aan heel netjes te coden, dus ook met include's functie's waar het handig is en alles heel overzichtelijk houden. Duidelijke var namen kunnen ook helpen.
Ik heb dit probleem zelf eigenlijk niet, dus weet niet helemaal precies wat je er tegen kan doen :) ik probeer wel altijd zo duidelijk en overzichtelijk mogelijk te scripten.
Een gouden regel is dat een andere scripter je code meteen moet begrijpen, zonder eerst een uitgebreide studie te doen.
Ja, duidelijk en gestructureerd code kan ik wel....Maar het gebeurd gewoon omdat je een stuk code hebt..die je weg gooit, maar ergens anders nog de variabellen aanmaakt, creëerd oid.

[ik groet eigenlijk alleen de eerste keer dat ik in een topic post...laat me ;)]
Op zaterdag 09 februari 2002 21:30 schreef Alarmnummer het volgende:

ps: ach die baan die komt er wel.. sommige mensen valt het niet eens op dat ze afval code maken :)
is er al *D

*wel na heeeeeel veel gedoe..maar hij is er...en ben maar alste blij ;) *

En die stijl..dat doe ik wel...maar het zit hem er gewoon dus in dat ik dingen verwijdern, maar dan niet alles wat er aan vast 'hangt' zegmaar.

[edit]

xtra quote

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Bij java maak ik de variablen aan op het moment dat ik ze nodig hebt bv.
code:
1
2
3
for(int k=0;k<size;k++){
   ...
}

en ik hergebruik ook nooit variablen bv de k zou hier hergebruikt kunnen worden in bv een andere for lus.

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 21:34 schreef Alarmnummer het volgende:
Bij java maak ik de variablen aan op het moment dat ik ze nodig hebt bv.
code:
1
2
3
for(int k=0;k<size;k++){
   ...
}

en ik hergebruik ook nooit variablen bv de k zou hier hergebruikt kunnen worden in bv een andere for lus.
Ja, maar wat als je ergens in een stukje Lus variabellen (arrays) aanmaakt...deze 2 keer gebruikt. Maar op die plek maak je nog meer arrays aan.
iets van
code:
1
2
3
4
5
6
foreach ($sEenVar as $sAnderVar)
{
   $x++;
   $asEeerste[$x] = $sAnderVar;
   $asTweede[$x] = $rs["Test"];
};

(ik doe ook maar wat ;))

En ergens anders, onderaan, gebruik je $asTweede[$x] 2 keer in een verschillende loop...de eerste loop haal je vandaag weg..de andere overmorgen..dan vergeet ik echt
code:
1
   $asTweede[$x] = $rs["Test"];

weg te halen hoor! :)



* Mir is weer eens onduidelijk heb ik zo het idee :P

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je moet dus lusvariablen dus niet hergebruiken. Of je moet niet zoveel lusvariablen aanmaken. En als je het doet alleen met juiste namen, bv k,l,i,index ofzo. Maar maak (liever zoek) strakke regels en hou je daaraan. Trust me, je krijgt dan veel betere code. En je code is beter door andere te lezen.


[edit]
het wil denk ik in jouw geval ook wel eens helpen om kortere methodes/functies/procedures aan te maken. Ik heb eerlijk gezegd nog niet vaak rommel in mijn methodes gehad die ik er niet binnen 10 seconden uit kon halen.

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 21:40 schreef Alarmnummer het volgende:
Je moet dus lusvariablen dus niet hergebruiken. Of je moet niet zoveel lusvariablen aanmaken. En als je het doet alleen met juiste namen, bv k,l,i,index ofzo. Maar maak (liever zoek) strakke regels en hou je daaraan. Trust me, je krijgt dan veel betere code. En je code is beter door andere te lezen.
Ik wil er wel even op wijzen: De benamingen van mijn voorbeeld waren natuurlijk bullshit ;)...normalité (:Y)) gebruik ik betere benamingen.

Maar wat bedoel je me 'lus vars niet hergebruiken'?

Soms moet je toch de waarde van een variabel 2 keer tonen, of berekennen (in geval van verschillende berekeningen)?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op zaterdag 09 februari 2002 21:42 schreef Mir het volgende:

[..]

Ik wil er wel even op wijzen: De benamingen van mijn voorbeeld waren natuurlijk bullshit ;)...normalité (:Y)) gebruik ik betere benamingen.

Maar wat bedoel je me 'lus vars niet hergebruiken'?

Soms moet je toch de waarde van een variabel 2 keer tonen, of berekennen (in geval van verschillende berekeningen)?
hergebruik:
code:
1
2
3
4
5
6
7
8
9
for(int k=0;k<size;k++){
   ...
}

k=leeftijd*DAGEN_PER_JAAR; //in k staat aantal dagen 

if(k>10000){
   ...
}

Nu ga je k dus voor 2 doeleinden gebruiken namelijk een 'loper' en een om een waarde van een berekening in te stoppen. Dus vraagt dus om problemen.

[edit]
en als er een echt bijzondere reden voor is moet je hem ook maar een bijzondere naam geven

  • Mir
  • Registratie: Maart 2001
  • Niet online
Ja, zo...maar zo bedoel ik het niet :)

Ik bedoel dus dat er gewoon nog stukjes oude code in staan die gebruikt heb...maar dus nu totaal nutteloos zijn geworden.

Dus niet dat ik variabellen voor 2 doeleindes gebruik. Daarmee bedoelde ik meer:
code:
1
2
   echo "Ex btw: "  . $iBedrag 
   echo "Inc btw: " . $iBedrag * 1.06  //(Kappers kosten :p)

nu staan ze dan wel netjes onder elkaar...maar het komt dus voor dat je ze op 2 heel verschillende plekken moet gebruiken.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

[edit]
was iets te snel :)

maar ik ga douchen en ik ga ervandoor.. veel succes ermee en anders moet je maar een keer kijken hoe het bij /14 java afdeling gaat. Ik leer ook elke dag iets bij hoe ik mijn code beter kan krijgen en die problemen die jij hebt die heb ik niet meer (maar doorvoor weer tig andere ;) )

  • Bertrik
  • Registratie: Mei 2000
  • Laatst online: 22-06-2023
Zet compiler warnings aan, dan krijg je bij de meeste compilers vanzelf een melding over ongebruikte variabelen. In principe (vind ik) moet een goed stuk source geheel zonder warnings compileren.

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 21:55 schreef Bertrik het volgende:
Zet compiler warnings aan, dan krijg je bij de meeste compilers vanzelf een melding over ongebruikte variabelen. In principe (vind ik) moet een goed stuk source geheel zonder warnings compileren.
Momenteel zit ik met PHP te werken; ik heb geen idee of dat kan.

Maar dan blijft het gevaarlijk ivm Include bestanden. Je weet nooit of een Var binnen die Include bestand nodig is ergens.


Alarm nummer: Wat jij dus wil zeggen is dat je eigenlijk in een output alleen 1 Var moet gebruiken en niet nog daarin eens moet gaan rekennen?
Dus eerst alles berekend hebben, dan pas in de output gooien.

-[ik heb nog veel te doen met werk + school, rest is allemaal ten carnaval: is niet echt tof ;); zal wel avond werken worden ben ik bang...]-

Verwijderd

<--- Says :D

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 22:01 schreef xtentic het volgende:
<--- Says :D
Jij bent vast in het verkeerde topic beland ;)

anders snap ik je niet echt ofzo... B-)

Verwijderd

Visual Studio.NET zet een blauw lijntje onder niet gebruikte maar wel gedeclareerde variabelen :)

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 22:05 schreef Kerrick het volgende:
Visual Studio.NET zet een blauw lijntje onder niet gebruikte maar wel gedeclareerde variabelen :)
Ja, maar daar declareer je ze... in PHP declareer ik eigenlijk mijn variabellen altijd op een manier van
code:
1
$iBedrag = 0;

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op zaterdag 09 februari 2002 22:07 schreef Mir het volgende:

[..]

Ja, maar daar declareer je ze... in PHP declareer ik eigenlijk mijn variabellen altijd op een manier van
code:
1
$iBedrag = 0;
Het is inderdaad belangrijk dat je variabelen op een centrale plek geinitialiseerd worden. Met talen als C/C++ of Java ben je verplicht die te initialiseren, met PHP (helaas) niet. PHP heeft ook nog eens het nadeel dat form-variabelen automatisch variabelen worden. Ik had liever een Request("")-functie gezien.

Maar om rommel tegen te gaan: Herlees je code of herschrijf je code. Vooral dat laatste kan soms heel handig zijn en optimaliserend werken, zeker als je 'volgens het LEGO-systeem' programmeert, dwz dat je telkens er iets bijvoegt en dan test, vervolgens weer iets erbij voegt etc.

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 09 februari 2002 23:32 schreef elnino het volgende:

[..]



Maar om rommel tegen te gaan: Herlees je code of herschrijf je code. Vooral dat laatste kan soms heel handig zijn en optimaliserend werken, zeker als je 'volgens het LEGO-systeem' programmeert, dwz dat je telkens er iets bijvoegt en dan test, vervolgens weer iets erbij voegt etc.
Ja, dat is inderdaad wat ik doe. Welke manier(en) is er/heb je dan nog meer? Dat vraag ik me soms wel eens af.

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op zaterdag 09 februari 2002 23:59 schreef Mir het volgende:
Ja, dat is inderdaad wat ik doe. Welke manier(en) is er/heb je dan nog meer? Dat vraag ik me soms wel eens af.
Je kan een programma helemaal van tevoren uitplannen, alle variabelen bepalen, functies enz. allemaal van tevoren bepalen. Dan heb je een duidelijk werkplan, en kan er niet veel misgaan. Maar stel dat je ergens een fout hebt gemaakt, dan is verbeteren moeilijk omdat je volgens een bepaald model gewerkt hebt.

Bovendien als je programmeert als hobby is dit vaak ook niet erg prettig, als je programmeert is het namelijk wel leuk om eerst iets te schrijven en dan te testen, dan te schrijven en dan te testen (volgens het LEGO-systeem dus).

Als ik een forum in PHP schrijf, dan doe ik dat ook geleidelijk aan. Eerst het gehele usersysteem, vervolgens de topiclijst, vervolgens de mogelijk heid berichten toe te voegen, daarna editen etc. Zo heb je telkens resultaat en dat maakt (hobby-)programmeren leuk.

  • CV_SmileY
  • Registratie: Februari 2001
  • Laatst online: 11-09 13:16

CV_SmileY

JackOfAllTrades MasterOfNone

Op zaterdag 09 februari 2002 21:28 schreef Mir het volgende:
Hou jij dan werkelijk alle variabellen bij die je gebruikt?
Ik vind dat irritant werken moet ik zeggen, een stuk code tikken en dan je kladblok erbij moeten pakken.
Mijn Kladblok = Notepad, dus ik zit echt niet met pen en papier mijn variable bij te houden

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Fijn he, zo'n taal waarin je moeilijk een variabele lokaal kan houden.

Ik los dit soort dingen op door goed gebruik te maken van de lokaliteits regels van een taal. Ik heb het dan wel over Java en C++.

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op zaterdag 09 februari 2002 22:03 schreef Mir het volgende:

[xtentic wees op ondertitel (Kisssss)]

Jij bent vast in het verkeerde topic beland ;)

anders snap ik je niet echt ofzo... B-)
Keep
Iit
Simple
Sucker ....

Een van de basisprincipes voor programmeren ;)

Mij is altijd geleerd bij het definieeren van een functie vast te leggen wat ie doet, welke variabelen vereist zijn/welke 'erin' gaan/welke 'global' zijn/ en (indien van toepassing) wat de return value is
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
function test(Var1) {
   global Var2;
/*
Purpose: Doet iets met Var1 waar Var2 voor nodig is en geeft Var3 als return
PRE: Var1 moet een getal zijn
IN: Var1
IN/OUT: Var2
OUT: Var3
*/

     $Var3 = $Var1 * $Var2;

return $Var3
}
?>

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

dusty

Celebrate Life!

Op zaterdag 09 februari 2002 22:00 schreef Mir het volgende:
[..]
Maar dan blijft het gevaarlijk ivm Include bestanden. Je weet nooit of een Var binnen die Include bestand nodig is ergens.
[..]
Als jij bepaalde variabelen moet declareren buiten jouw include bestanden dan zit er binnen jouw include bestanden toch echt wat mis.

Als je functies aanroept geef je uiteraard alle variabelen mee aan die functie en ben je uiteraard niet zo dom om global variabelen te gebruiken.

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


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
In talen zoals C++, Delphi,... (compiled languages dus) geeft de compiler toch altijd een warning of een hint als er een variable gedeclareerd is maar nergens gebruikt wordt?
In scripting talen (heb daar niet zo veel ervaring mee) zal dit idd niet mogelijk zijn, maar als je nu eens in je code searcht op alle variablenamen die je gedeclareerd hebt, dan kan je toch ook gemakkelijk zijn welke je nodig hebt en welke niet?

Ik declareer m'n variablen ook altijd op een centrale plaats, d.i. aan het begin van iedere method/functie. Een uitzondering daarop zijn de gekende loop-variablen [i, j, k] die ik bij de for lus zelf declareer. (Als de taal dat toelaat tenminste).

Ik ga er ook altijd voor zorgen dat mijn code compiled zonder warnings en hints. Desnoods schrijf ik wel een regeltje bij zodat een warning/hint vermeden wordt.
Bijvoorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.OnButton1Click(Sender : TObject)
var
  frmDetail  : TfrmDetailForm;
begin

  try
    frmDetail := TfrmDetailForm.Create(Self);
    ...
  except
    on ...
  end;

end;

Deze code zal een compiler warning genereren, nl iets in de trant van:
code:
1
Warning : frmDetail may not have been initialized

ofzo.

Om dit te voorkomen maak ik er dit van:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.OnButton1Click(Sender : TObject)
var
  frmDetail  : TfrmDetailForm;
begin

  frmDetail := nil;

  try
    frmDetail := TfrmDetailForm.Create(Self);
    ...
  except
    on ...
  end;

end;

https://fgheysels.github.io/


Verwijderd

Code alles lekker in overzichtelijke en goed ge-commenteerde functies.. deze ruimen je ge-initializerde variabelen weer op..

  • Mir
  • Registratie: Maart 2001
  • Niet online
Hmm guys :)

Ik merk wel dat mijn code altijd steeds beter wordt, ook om naar andere code te kijken...maar het moet nog beter vind ik!

Comments wat erin/uit gaat doe ik al...Maar ik gebruik de includes zegmaar ook als een soort Functie.

Bijvoorbeeld:
ik geef voor de include een $bSorteer = False mee ofzo..In de include wordt er dat gekeken of er een sorteer 'functie' in de HTML gezet moet worden of niet. Dit omdat ik het include bestand meerdere malen gebruik in andere bestanden, maar telkens net even anders.

Of is dit juist volledig fout wat ik doe?


Werken doet het het natuurlijk altijd :7 .... Maar het moet Netjes gecoded zijn!! *D

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 14-09 10:21

me1299

$ondertitel

Op zaterdag 09 februari 2002 23:32 schreef elnino het volgende:

[..]

Het is inderdaad belangrijk dat je variabelen op een centrale plek geinitialiseerd worden. Met talen als C/C++ of Java ben je verplicht die te initialiseren, met PHP (helaas) niet. PHP heeft ook nog eens het nadeel dat form-variabelen automatisch variabelen worden. Ik had liever een Request("")-functie gezien.

Maar om rommel tegen te gaan: Herlees je code of herschrijf je code. Vooral dat laatste kan soms heel handig zijn en optimaliserend werken, zeker als je 'volgens het LEGO-systeem' programmeert, dwz dat je telkens er iets bijvoegt en dan test, vervolgens weer iets erbij voegt etc.
Global Vars probeert PHP tegenwoordig steeds meer te weren in nieuwe versies.

Daarom heb je ook al jaren:

$HTTP_POST_VARS[Invoerveld]

Dus niet ze snel zeggen dat je iets mist ofzo.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zondag 10 februari 2002 12:56 schreef DeathKnight het volgende:

[..]

Global Vars probeert PHP tegenwoordig steeds meer te weren in nieuwe versies.

Daarom heb je ook al jaren:

$HTTP_POST_VARS[Invoerveld]

Dus niet ze snel zeggen dat je iets mist ofzo.
zal dit betekennen dat na loop van de tijd de huidige PHP pagina's die wel gewoon die variabellen pakken zonder $HTTP_POST_VARS[], niet meer zullen werken met de nieuwste php versie's ?

Of blijven ze het er altijd wel in houden?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op zondag 10 februari 2002 13:30 schreef Mir het volgende:

[..]

zal dit betekennen dat na loop van de tijd de huidige PHP pagina's die wel gewoon die variabellen pakken zonder $HTTP_POST_VARS[], niet meer zullen werken met de nieuwste php versie's ?

Of blijven ze het er altijd wel in houden?
Nou het zal voor hele lange tijd nog in te stellen zijn in het configuratie bestand.

Maar ik denk dat het niet zo lang meer zal duren voordat de globale variabelen default uit staan. Ik gebruikte altijd al $HTTP_POST_VARS alleen al om te zorgen dat niet iemand ff snel een GET url'tje in elkaar kon prakken die de boel zou verneuken.
Op deze manier maken ze het internet weer een stukje veiliger :)

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op maandag 11 februari 2002 00:29 schreef Orphix het volgende:
Nou het zal voor hele lange tijd nog in te stellen zijn in het configuratie bestand.

Maar ik denk dat het niet zo lang meer zal duren voordat de globale variabelen default uit staan. Ik gebruikte altijd al $HTTP_POST_VARS alleen al om te zorgen dat niet iemand ff snel een GET url'tje in elkaar kon prakken die de boel zou verneuken.
Op deze manier maken ze het internet weer een stukje veiliger :)
POST-variabelen zijn ook na te bootsen. Regel 1 van webprogrammeren: vertrouw nooit input.

Alleen nu het punt van de verschillende manieren om input te krijgen. Ik wordt hier persoonlijk niet echt goed van, omdat er nu drie manieren zijn om POST/GET-variabelen te krijgen:
  • $varnaam - Deze mag wat mij betreft meteen afgeschaft worden, anderen kunnen namelijk jouw variabelen veranderen buitenaf. Helaas nog veel gebruikt :(
  • $HTTP_POST/GET_VARS["varnaam"] - Is al een eind op de goede weg, wel een beetje lang en bovendien pas in latere versies van PHP ondersteund (Ja er zijn nog providers die nog PHP 3 hebben, helaas).
  • $_POST["varnaam"], $_GET["varnaam"] - Dit zijn de nieuwe global-variabelen van PHP. Helaas pas vanaf versie 4.1.0 ondersteund.
    Waarschuwing: Pas altijd op bij global-variabelen! Een functie heeft argumenten als input en een return als output en globals kunnen gevaarlijke dingen doen. Hou de variabelen dus binnen je eigen scope!
Ik vind het jammer dat er drie zijn, het geeft namelijk niet veel orde...
maar het is dan ook PHP

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op maandag 11 februari 2002 00:39 schreef elnino het volgende:
POST-variabelen zijn ook na te bootsen. Regel 1 van webprogrammeren: vertrouw nooit input.
Ja ik weet het, maar 97% hou je er wel mee buiten (schat ik zo) ... ik heb zelf nog nooit de moeite genomen om headers te gaan faken, maar vaak genoeg zit ik wat url'tjes te veranderen om te kijken wat er gebeurt ;)

De meeste input bij mij doorgaat nog wel wat meer testjes trouwens. Ik vind trouwens die 3 conventies ook niet alles, ik heb vaak het gevoel dat de beslissingen bij PHP overnacht worden genomen, direct uitgebracht en een maand later blijkt het toch niet zo handig te zijn. Maar voor backwards-compatibility moet het er dan wel in blijven |:(

  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op zondag 10 februari 2002 08:49 schreef TheRookie het volgende:

[..]

Keep
Iit
Simple
Sucker ....
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
function test(Var1) {
   global Var2;
/*
Purpose: Doet iets met Var1 waar Var2 voor nodig is en geeft Var3 als return
PRE: Var1 moet een getal zijn
IN: Var1
IN/OUT: Var2
OUT: Var3
*/

     $Var3 = $Var1 * $Var2;

return $Var3
}
?>
Ik snap wat je bedoeld hoor.. maar dit vind ik dus precies iets wat tegen KISS ingaat (overbodig commentaar).. iedereen zit hier wat er gebeurt, en het commentaar is compleet nutteloos. Maar ik snap dat het maar een voorbeeld is :P

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Op maandag 11 februari 2002 00:39 schreef elnino het volgende:<li>$HTTP_POST/GET_VARS["varnaam"] - Is al een eind op de goede weg, wel een beetje lang en bovendien pas in latere versies van PHP ondersteund (Ja er zijn nog providers die nog PHP 3 hebben, helaas).
</li>

Het helpt om in het begin van je code een regel neer te zetten als:
PHP:
1
2
3
<?
$HPV = &amp;$HTTP_POST_VARS;
?>

Dan wordt t al een stuk korter... :)

Rustacean


  • Mir
  • Registratie: Maart 2001
  • Niet online
Als ik het zo lees is PHP dus eigenlijk helemaal niet zo veilig als het gaat om Variabellen die vanaf buitenaf 'bestuurd' kunnen worden?

Wat is dan eigenlijk het beste om te doen?
Natuurlijk is het slim om altijd je variabellen in het begin te declareren... Wordt altijd de, vanaf buitenaf gekomen, waarde overschreven.

Of heb ik dit nu mis?

Momenteel ben ik nog op een Intranet bezig met gebruikers die blij zijn dat ze de muis kunnen bewegen...maar ik zal vast wel eens verder gaan uitbreiden, ik geloof dat dat ook hier de bedoeling is.

  • Mir
  • Registratie: Maart 2001
  • Niet online
Op zondag 10 februari 2002 12:37 schreef Mir het volgende:

ik geef voor de include een $bSorteer = False mee ofzo..In de include wordt er dat gekeken of er een sorteer 'functie' in de HTML gezet moet worden of niet. Dit omdat ik het include bestand meerdere malen gebruik in andere bestanden, maar telkens net even anders.

Of is dit juist volledig fout wat ik doe?
Hier wil ik toch nog graag even antwoord op hebben ;)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Ja, is eigenlijk volledig fout :)..

Waarom zet je in die include niet gewoon 1 functie waaraan je die sorteer boolean mee kunt geven?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op maandag 11 februari 2002 11:09 schreef Mir het volgende:
Als ik het zo lees is PHP dus eigenlijk helemaal niet zo veilig als het gaat om Variabellen die vanaf buitenaf 'bestuurd' kunnen worden?

Wat is dan eigenlijk het beste om te doen?
Natuurlijk is het slim om altijd je variabellen in het begin te declareren... Wordt altijd de, vanaf buitenaf gekomen, waarde overschreven.

Of heb ik dit nu mis?
Dat heb je goed begrepen. Het is ook slim om je error_reporting zo hoog mogelijk te zetten. Dan geeft PHP het namelijk aan of je ongedefinieerde variabelen gebruikt.

Gebruik ook altijd isset($var) als je wilt weten of een variabele gedefinieerd is of niet.
Pagina: 1