anoniem Geplaatst: 28 januari 2004 Delen Geplaatst: 28 januari 2004 ik ben net begonnen met php als opdracht voor mijn stage. ik ben bezig met het ontwikkelen van een online toetsingssysteem. met behulp van dit systeem kun je toetsen afnemen en worden alle gegevens opgeslagen in een mysql tabel de toets bestaat uit drie pagina's: de aanmeld pagina, de toets pagina en de resultaten pagina. om te voorkomen dat iemand tweemaal een toets kan doen wil ik een beveiliging inbouwen. deze beveiliging controleerd of iemand al eerder een toets gedaan heeft en ziet er als volgt uit na het afronden van de toets worden opgeslagen: naam, klas, antwoorden en resultaat bij het starten van de toets wordt bij het aanmelden gecontroleerd of degene die zich aanmeld al voorkomt in de database. indien dat zo is wordt het opbouwen van de pagina afgebroken met [ die (toets al gedaan) ] ik wil graag weten hoe je zo'n controle uitvoert[/b] Quote Link naar reactie
anoniem Geplaatst: 28 januari 2004 Auteur Delen Geplaatst: 28 januari 2004 Scriptrequests worden over het algemeen niet echt gewaardeerd. Probeer liever de code te geven en beschrijf het probleem dat je ermee hebt. Hoe dan ook, ik zou als ik jou was ervoor zorgen dat je iedereen die meedoet uniek kunt identificeren, bijvoorbeeld met een collegekaartnummer of studentnummer. Aan dit nummer hang je alle informatie van die persoon, dit hoeft dus maar één keer ingevoerd te worden. Elke volgende keer volstaat in principe het unieke nummer evt icm een wachtwoord. In een andere tabel plaats je de resultaten icm het unieke nummer, via een goede query is vervolgens heel makkelijk te bepalen of een toets al gedaan is. - Bas Quote Link naar reactie
anoniem Geplaatst: 29 januari 2004 Auteur Delen Geplaatst: 29 januari 2004 [code:1:fadfb4923e] mysql_connect('localhost','root','')or die("Sorry, database Problems. <a href=\"javascript:history.go(-1);\">probeer het nog eens</a>."); mysql_select_db('toetsgegevens'); $CONTROLE = ("SELECT vraag1 FROM toetsgegevens WHERE voornaam = $voornaam AND achternaam = $achternaam"); if ($controle) die ("je hebt de toets al eens uitgevoerd <a href=\"javascript:history.go(-1);\">probeer het nog eens</a>.");[/code:1:fadfb4923e] wat ik zoek is een manier om een gegeven uit de database op te slaan als variabele. in dit geval de inhoud van vraag1 aan de hand van voor en achternaam Quote Link naar reactie
anoniem Geplaatst: 29 januari 2004 Auteur Delen Geplaatst: 29 januari 2004 Lijkt mij handig als je ook even de query uitvoert met [url=www.php.net/mysql_query]mysql_query[/url]... Daar staat ook meteen hoe je het weer moet uitlezen etc... Quote Link naar reactie
anoniem Geplaatst: 29 januari 2004 Auteur Delen Geplaatst: 29 januari 2004 ik kom er nog niet uit. ik heb de volgende code nu [code:1:024d2b0215] $controle = failed; //standaardwaarde; echo $controle //failed; mysql_connect('localhost','root','')or die (melding); mysql_select_db('toetsgegevens'); $query = "SELECT vraag1 FROM toetsgegevens WHERE voornaam='$voornaam' AND achternaam='$achternaam'"; echo $query // $voornaam en $achternaam worden correct ingevoerd; $controle = mysql_query($query); print ("controle: $controle") // $controle blijft leeg; if ($controle) die ("je hebt de toets al eens uitgevoerd."); [/code:1:024d2b0215] ik wil graag dat de waarde van "vraag1" wordt opgeslagen als de variabele $controle maar inplaats van die waarde wordt er een lege waarde opgeslagen terwijl er wel een waarde in staat Quote Link naar reactie
anoniem Geplaatst: 29 januari 2004 Auteur Delen Geplaatst: 29 januari 2004 Gokje: $controle = mysql_query($query[b:1e1d12aac7]->value[/b:1e1d12aac7]); Quote Link naar reactie
anoniem Geplaatst: 29 januari 2004 Auteur Delen Geplaatst: 29 januari 2004 [quote:6afdf1332e="snotspill"]ik kom er nog niet uit. ik heb de volgende code nu [code:1:6afdf1332e] $controle = failed; //standaardwaarde; echo $controle //failed; mysql_connect('localhost','root','')or die (melding); mysql_select_db('toetsgegevens'); $query = "SELECT vraag1 FROM toetsgegevens WHERE voornaam='$voornaam' AND achternaam='$achternaam'"; echo $query // $voornaam en $achternaam worden correct ingevoerd; $controle = mysql_query($query); print ("controle: $controle") // $controle blijft leeg; if ($controle) die ("je hebt de toets al eens uitgevoerd."); [/code:1:6afdf1332e] ik wil graag dat de waarde van "vraag1" wordt opgeslagen als de variabele $controle maar inplaats van die waarde wordt er een lege waarde opgeslagen terwijl er wel een waarde in staat[/quote:6afdf1332e] Het resultaat van mysql_query is een [url=http://nl.php.net/manual/nl/language.types.resource.php]resource[/url] Als de query syntaxfouten bevat, is het resultaat FALSE. De query zal waarschijnlijk wel goed gaan (mits alle velden zo heten en de table bestaat) en dat is hetgene wat je test. Wat je [b:6afdf1332e]wil[/b:6afdf1332e] testen is of de query ook resultaten heeft. Dus: [code:1:6afdf1332e] <?php if( mysql_num_rows($controle) > 0 ) { echo "Je hebt de toets al uitgevoerd"; } else { // ga verder met de toets } ?> [/code:1:6afdf1332e] Quote Link naar reactie
anoniem Geplaatst: 2 februari 2004 Auteur Delen Geplaatst: 2 februari 2004 ik heb het werkend gekregen. je voorstel werkte. bedankt voor de hulp Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen