Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

beperkte toegang tot link

Pagina: 1
Acties:

  • rebeccadj
  • Registratie: September 2014
  • Laatst online: 26-04-2018
Hallo,

Ik ben op dit moment bezig met het maken van een webapplicatie. Dit zal een soort quiz worden.
Ik heb daarbij een indexpagina waar 5 links op staan. Vier hiervan leiden naar vragen die je moet beantwoorden.
De antwoorden van deze 4 links vormen samen een 4-cijferige code.
Die staat weergegeven op de pagina waar de vijfde link naartoe verwijst.

Zoals de het nu in elkaar zit kun je meteen door naar de 5e pagina zonder de vragen te beantwoorden en kun je de code dus al zien.

Nu probeer ik het voor elkaar te krijgen dat als je op de 5e link klikt, dat er eerst word gecontroleerd of de andere pagina’s zijn bezocht en/of zijn beantwoord.

Op de pagina’s met vragen is het me gelukt met de if/else constructie en de gewenste waardes in te vullen voor ze de pagina mogen verlaten.
Ik heb alleen geen idee of de if/else constructie ook zal werken voor wat ik met de 5e link wil en wat de voorwaarden daarbij zijn die ik dan in zal moeten vullen.

is dit wel mogelijk wat ik wil, en zoja weet iemand hier op het forum hoe dat werkt?
Ik hoop dat jullie snappen wat ik bedoel haha.

Alvast bedankt!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Natuurlijk is dat mogelijk maar zonder een klein beetje inzicht in hoe je het aangepakt hebt kunnen we daar verder weinig over zeggen. Heb je wat relevante (dus niet alle!) code voor ons?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • rebeccadj
  • Registratie: September 2014
  • Laatst online: 26-04-2018
Dat snap ik!
Op het moment heb ik nog helemaal niks aangepakt. Het is nu gewoon een pagina met alleen html erin en een verwijzing naar css sheet. Met de linkjes die verwijzen naar andere pagina's.

Ik kan je wel laten zien hoe ik het op de andere pagina's heb aangepakt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
function checkFormulier(form)
{
    if (txtNaam.value == 4)
    {
        return true;
    }
    else
    {
        alert ("Dit antwoord is niet juist, probeer het opnieuw!");
        return false;
    }
}
        </script>

(Dit staat dan in de head)

En de volgende twee staan in de body op de pagina:
HTML:
1
2
3
4
5
<input name="txtNaam" id="txtNaam" size="1" />

<div onclick="return checkFormulier(this)">
            <a href="elements1.html">Ga verder</a>
            </div>


Dit werkt gewoon, maar zal niet op de betreffende pagina werken, omdat daar geen input-vakjes zijn.
Ik ben best nieuw hierin en weet dus niet hoe ik het op de betreffende pagina aan moet pakken.
Kan ik zo'n zelfde code toepassen, maar dan met: if(html pagina is bezocht).

Of is er ook een mogelijkheid dat ik naar de input-vakjes op andere pagina's kan verwijzen?

Ik hoop dat jullie hier wat meer mee kunnen.

In ieder geval alvast bedankt!

[ Voor 1% gewijzigd door RobIII op 17-09-2014 14:28 . Reden: Code tags toegevoegd ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dit wil je met een server-side taal als PHP, ASP.Net ofzo oplossen, niet met JS. Maar als je dan toch met JS wil blijven fröbelen dan zou je op pagina X een cookie kunnen zetten en op pagina Y kijken of de cookie gezet is waarmee je makkelijk de "if(html pagina is bezocht)" implementeert. Besef alleen goed dat je dit nooit "dicht" krijgt; alles wat client-side gebeurt heb je zo-goed-als-geen invloed op en is dus easy te omzeilen.

Verder: als je code post gebruik dan a.u.b. code tags.
Ook stellen we 't op prijs als je tekstomloop aan 't forum over laat.
Het leest nogal vervelend als je na elke zin op enter mept. ;)

[ Voor 24% gewijzigd door RobIII op 17-09-2014 14:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • rebeccadj
  • Registratie: September 2014
  • Laatst online: 26-04-2018
Oh, sorry. Ik was nog niet bekend met de code tags. In ieder geval bedankt voor je reactie! Dan zal ik me daar in gaan verdiepen!

  • JJ93
  • Registratie: Maart 2013
  • Laatst online: 21-11 11:31

JJ93

Error 418

Het beste zou inderdaad server side zijn, maar gezien je huidige kennis zou ik het voor nu oplossen met behulp van localStorage.

Het opslaan:
localStorage.setItem(key, value);

Het ophalen:
localStorage.getItem(key);

Voorbeeld:
Pagina1 is bezocht: localStorage.setItem("pagina1", "bezocht");
Pagina5 check uitvoeren:
code:
1
2
3
4
var pagina1 = localStorage.getItem("pagina1");
if(pagina1 !== "bezocht") {
  alert("Je moet pagina1 eerst bezoeken!");
}

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 18-11 15:23
Ook daarvoor geldt:
RobIII schreef op woensdag 17 september 2014 @ 14:28:
Besef alleen goed dat je dit nooit "dicht" krijgt; alles wat client-side gebeurt heb je zo-goed-als-geen invloed op en is dus easy te omzeilen.

Full-stack webdeveloper in Groningen


  • rebeccadj
  • Registratie: September 2014
  • Laatst online: 26-04-2018
Ah super! Het is gelukt met behulp van localStorage. Bedankt!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Waarom localstorage als het in een cookie past?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Merethil
  • Registratie: December 2008
  • Laatst online: 21:36
Waarom een cookie als 't serverside kan? Wat hier nu gebeurt is dat er iets wat veilig gemaakt moet worden, clientside wordt "beveiligd".
Ik snap dat het nu makkelijker is voor TS omdat hij dan geen server-side oplossingen hoeft te bedenken en implementeren (want daar is TS niet zo bekend mee lijkt het), maar als TS aan het leren is lijkt het me juist zaak dit direct goed te regelen.

Zoiets als dit voor de vragen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
function checkFormulier(form)
{
    if (txtNaam.value == 4)
    {
        return true;
    }
    else
    {
        alert ("Dit antwoord is niet juist, probeer het opnieuw!");
        return false;
    }
}
</script>


is bijvoorbeeld ook ver van veilig. TS is dus geholpen, maar op een manier waarop ik het zelf nooit zou doen (en met mij velen zo te lezen).

@TS
Wat ik zou doen (voor een volgende keer óf gewoon om nu je applicatie veiliger te maken) is alle resultaten van de pagina's opslaan in een serverside (PHP, ASP, Java etc.etc.) object, waarbij je het makkelijkst kan werken met iets als $_SESSION (of soortgelijk uit een andere taal) die steeds aangemaakt wordt voor elke bezoeker van je site.
Daarin kan je dan opslaan welke vragen goed beantwoord zijn (en dus welke pagina's al bezocht zijn), en pas wanneer alle vragen zijn beantwoord en goed zijn gekeurd laat je de link naar de eindpagina zien. De eindpagina bescherm je weer door middel van een check die kijkt of in het session object inderdaad alle benodigde pagina's zijn bezocht en de vragen juist zijn beantwoord, waarna de persoon in kwestie ook pas écht die pagina mag zien.

Als je wilt kan je het ook doen via een database, kunnen mensen op een later moment terugkomen om de vragen alsnog te beantwoorden (en hun tot nu toe behaalde resultaten dus op te slaan).

  • rebeccadj
  • Registratie: September 2014
  • Laatst online: 26-04-2018
Heel erg bedankt voor jullie reacties! Ik ben inderdaad niet bekend met serversides. localStorage is voor mij nu een goede tijdelijke oplossing. Ik volg op dit moment een online cursus over PHP en ik hoop daarna de webapplicatie te kunnen verbeteren. Wat Merethil schrijft is inderdaad precies wat ik bedoel!
Pagina: 1