De opdrachten van Informatica Actief gaan meestal over rekenwerk. Het lijkt wel of ze door een wiskunde-docent zijn gemaakt. Het omgaan met strings komt te weinig voor. Dus een opdracht met veel strings.

Opdracht in het kort

Maak een script met formulier dat een wachtwoord van 8 of 10 of 12 tekens genereert. Je gebruikt een vaste string met karakters waar telkens random 1 teken uit getrokken wordt.

Als formulier kun je 1 veld nemen met een radio button.

Code

Opmerkingen

  • In de string $tekens zet je geen 0,1,O,l of andere tekens die op elkaar lijken.
  • In de enige variabele uit het form, complex, geef je aan hoe complex het wachtwoord moet zijn. Keuze nu uit 8,10,12.
  • Voordat de loop begint zet je een nieuwe variabele $password op “”. Lege string. Anders klapt ie eruit bij het eerste gebruik in de loop.
  • De lengte van de string $tekens vraag je op met strlen. Zo zorg je dat het script vanzelf uit alle tekens kiest. Zet je het aantal hardcoded op bijv 64 dan werkt het niet meer als je er een teken bij zet.
  • Je gooit de randomizer over de getallen van 0 tot strlen.
  • Daarna pak je het juiste gedeelte van de string $tekens eruit als het nieuwe karakter. Je pakt de string $tekens vanaf het zoveelste karakter. En je neemt een substring met lengte 1.
  • De regel daarna is om te debuggen. <! geeft HTML hiding zodat je klanten niet zien dat je loopt te debuggen. Met Source Code (CTRL-U) zie je de debug code alsnog. Dit soort echo’s gebruik je om problemen op te lossen.
  • De regel daarna append (aanplakken) je het nieuwe teken bij de reeds bestaande string password.
  • Je loopt dit met zoveel herhalingen als $complex.
  • Na de loop geef je het password.