Posts by Stefan.J

    Je zou het buiten de PHP code kunnen halen:



    Je global zorgt er trouwens voor dat je code volledig on-onderhoudbaar wordt, en zou je eigenlijk anders moeten oplossen!


    Daarbij kun je beter werken met views, en geen PHP en HTML code meer mixen.

    Het voorbeeld gaat zo niet werken omdat je JavaScript-code syntaxisch niet klopt. Kijk eens naar de accolades, je sluit niet alle code blokken.

    [qoute]Tenzij er veel bugs inzitten en jij die eruit haalt word het gedeeltelijk jou systeem.
    Dan mag je er wel winst aan maken volgens mij. [/quote]


    Dat is nergens op gebaseerd. Als jij software van iemand afneemt onder een bepaalde licentie, dan moet je je daar aan houden. Zodra je iets aanpast is het niet ineens van jou, en moet je nog steeds ervoor betalen als dat bij jou toepassing van het product de bedoeling is.

    De kwestie die je nu voorlegt is een er eentje tussen security en gebruikersgemak.


    Ik hanteer meerdere wachtwoorden, en als ik ergens een tijdje niet ben geweest is voor mij dan een inlogpoging of 5 zeker niet weinig. Een bruteforce aanval gaat eerder over de 100 duizenden pogingen heen.


    De je gebruikers een lol en geef ze wat ruimte om hun wachtwoord in te vullen. Tot 25 pogingen kan makkelijk.


    Toch meer security? Neem dan iets wat echt invloed heeft, een goede wachtwoord policy. Minimaal 8 tekens met cijfers, speciale tekens, en letters bijvoorbeeld.

    M.Martens: JSON is geen taal en hij programmeert in PHP..


    Waar heb je het PHP fragment wat je post neergezet? Want ik denk te begrijpen dat je een file x hebt met daarin het bovenstaande PHP fragment en daaronder JSON, en een ander PHP bestand dat met fopen file x opent en deze over het netwerk schrijft.


    Dat kan ik verkeerd hebben. Maar het bovenstaande PHP fragment moet in het bestand komen te staan dat de JSON serveert.


    Kun je anders alle code van toepassing eens posten?

    Ik heb je code maar even geformat, want het was een zooitje, enters zijn niet verboden.


    Een action meevoeren klinkt als een rare vraag.. Bedoel je dat je een GET parameter ($_GET) wilt gebruiken in een geïnclude script? Want dan is de oplossing eenvoudig, alle variabele zijn beschikbaar voor geïnclude files uit de betreffende context. Dus ook globals als $_GET en $_POST.

    Ik heb het script even in de debugger gehangen. Het probleem zit hem erin dat wanneer er slechts een element bestaat met de naam price[], er geen array wordt gereturned, maar enkele dat element. Als er meerdere instaan, dan bevat elements['price[]'] wel een array.


    Het beste lijkt me als je de price elementen anders selecteert.


    Overigens zou ik je aanraden een framework als jQuery te gebruiken, en niet alles op de global scope te definiëren.

    Zodra je functies gaat schrijven waarin je het global-keyword nodig hebt betekent dat eigenlijk altijd dat je architectuur niet correct is... Bedenk je dus eerst heel goed waarom je het global-keyword moet gebruiken, en of er geen betere oplossing is.

    rdgweb: Je bent al wel begonnen met je stage zei je?


    Ik heb al meerdere plugins geschreven voor verschillende systemen (voornamelijk Java), dus globale vragen mag je stellen, maar denk niet dat je er veel mee opschiet.


    Wat voor opleiding doe je precies? Hoe groot is het bedrijf waar jij stage loopt?

    Buitenom dat ik dit project geen groot kans van slagen geef (dit soort initiatieven zijn er vaker geweest) vind ik het positief dat het geprobeerd wordt. De meesten mensen hier hebben er hobby aan te programmeren maar zijn zeker geen volwaardige programmeurs. Maar dat is niet erg, van elkaar kun je leren en als je daarin gemotiveerd bent kun je een heel eind komen.


    De deelnemers zou ik willen zeggen: organiseer goed, en respecteer elkaar en elkaars kunnen. Dan zou dit best eens goed kunnen aflopen.


    scarface: Je stelt je erg negatief op tegenover de anderen in dit topic. Maar gezien jou berichten hier en wat ik in eerdere topics van jou zie mag je jezelf ook best onder de categorie beginners plaatsen.. Overigens is het niet JavaScript of jQuery, maar JavaScript met jQuery. Dan kun je er trouwens nog voor kiezen frameworks als AngularJS of Backbone te gebruiken.

    Ik verwacht al wat problemen.


    Euhh, wat voor problemen?


    Voor de gebruiker zal het niet veel invloed hebben. De snelheid van het laden van pagina's overigens ook niet hoor. Advertentiesystemen en gebruikersstatistieken zullen er vast onder leiden inderdaad.

    Spreekwoorden en wel of niet Anonymous aanhangers kan ik me niet echt druk om maken, misschien moeten jullie dat ook maar niet meer doen.


    Grote bedrijven zoals banken hebben vaak een heel applicatielandschap. In het verleden zijn er allerlei softwarepakketten aangeschaft of gerealiseerd voor specifieke taken binnen deze bedrijven. De software wordt vaak via allerlei lijntjes met elkaar verbonden. Echter, doordat softwarepakketten verouderen en soms de originele ontwikkelaars niet meer beschikbaar zijn kan het een langslepende en dure kwestie worden om software te vervangen waar veel kennis voor nodig is. Miljoenen regels zijn dan zeker niet ongebruikelijk.


    Natuurlijk sluipen er in de software van banken ook bugs. Kijk eens hoeveel security patches Windows heeft gekregen? Het is wellicht niet te vergelijken, maar je kunt zeker niet verwachten dat er in de software van banken nooit iets mis zal gaan. Je kunt ze hooguit dwingen aan protocollen te voldoen, en dat gebeurt ook echt wel.

    @Fils: De tweede 'oplossing' lijkt me niet zo verstandig. Je onderdrukt simpelweg de foutmelding, maar de header zal nooit worden meegestuurd in de response.


    Waarschijnlijk staat er op de allereerste regel een witregel, zo aan het script te zien.


    Overigens vind je via Google op 'headers already sent' miljoenen records..

    Het is tijd op de oplossing prijs te geven. Ik zal beginnen met de oplossing van EternalFlamez. Deze oplossing geeft het juiste resultaat, en er is geen gebruik gemaakt van recursie.



    De oplossing van victor geeft op dit moment nog niet exact het juiste resultaat. Hij is er nog mee bezig en wil dat nog oplossen. Zijn oplossing geeft wel alle oplossingen maar enkele dubbele (2 + 1 + 1 en 1 + 2 + 1 bijvoorbeeld). Zijn oplossing is (tot nu toe) als volgt:



    Dan als laatste nog mijn eigen oplossing, die wel gebruik maakt van recursie:



    Wat vinden jullie van de oplossingen? En wat vinden jullie van de uitdaging? Is dit voor herhaling vatbaar? Zou je wel meedoen als de opdracht makkelijker is (mocht je nu niet hebben meegedaan)? Ik hoor graag feedback!

    @Fils: Het stukje sarcasme leek me wel duidelijk, maar goed.


    Ik heb inmiddels ook een mooie oplossing van victor gekregen. Met veel gepruts heb ik op de macbook van een vriend van me de code kunnen uitvoeren :P. De hoeveelheid code is lekker compact, maar de oplossing geeft helaas wel dubbele oplossingen (ook 1 + 1 + 3 bijvoorbeeld terwijl alleen 3 + 1 + 1 erin hoort te staan). Ik zal morgen nog eens iets beter naar de oplossing kijken, want hij ziet er wel interessant uit. In ieder geval ook voor deze oplossing mijn complimenten!

    Het is gelukt! Ik heb de eerste werkende oplossing ontvangen van EternalFlamez. Hoewel zijn oplossing lang niet de meest efficiënte is (in regels code), ben ik wel positief verrast. Het ziet er netjes uit, en er is duidelijk tijd aan besteed, mijn complimenten!


    Dus, iedereen die niet met een valide oplossing kan komen is wat mij betreft een mindere programmeur dan EternalFlamez. :rolleyes:


    Wie gaan het nog meer proberen?

    Ik niet, het is een onmogelijk opdracht omdat er ontelbaar veel getallen zijn. Zelfs met recursie lukt dit niet.


    Dat is zeker niet het geval. Als ik het afdrukken van de oplossing (wat verreweg het meeste tijd kost) achterwege laat, dan is het voor het getal 50 bijvoorbeeld in ongeveer een seconde uitgerekend. En dat is dan in PHP, een taal als Java of zelfs C is nog vele malen sneller.


    Daarbij gaat het ook niet zozeer om de performance. Het is eigenlijk helemaal geen moeilijke opdracht!