Quizz 1.01 (1/3) |
Organisez des concours sur votre site ! |
|
 |
Dans le cadre de ses partenariats, ASP-PHP.net organise parfois des concours sous forme de Quizz permettant de faire gagner des lots divers à ses visiteurs... Une page ASP a donc été écrite pour permettre la gestion complète de ce jeu. Si elle peut vous servir...
|
Télécharger l'exemple complet
Introduction -
Tirage aléatoire -
Envoi de mail -
Script complet
1. Le lien d'appel
Un simple lien javascript permet d'ouvrir la page dans un popUp :
<A href="javascript:void(0)" onclick="window.open('quizz.asp',null,'width=600,height=560,left=20,top=20,' + ' status=no, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, resizable=no')" >PARTICIPEZ AU CONCOURS !</A>
|
2. La base de données
J'utilise ici une base MSAccess quizz.mdb générée par AxS et comportant une table joueurs ayant les champs suivants :
|
ID NumAuto (entier long auto-incrémenté)
Nom Texte (100)
Prenom Texte (100)
Adresse Texte (100)
CP Texte (20)
Ville Texte (100)
|
Email Texte (100)
Date Date/Heure
Score Octal
NbQuest Octal
IP Texte (20)
|
3. Remarques
Ce quizz n'autorise qu'un jeu par connexion (stockage de l'IP dans la BD)... pour permettre plusieurs jeux successifs adaptez ou supprimez les lignes concernées :
<% ' === PAGE 1 : Questions ===
if request.form.count = 0 and request.queryString.count = 0 then
' 1 seule participation par IP Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & database SQL = "SELECT * FROM joueurs where IP='" & IP & "'" RS.open SQL,conn,3,3 test = RS.eof RS.close Conn.close
if not test then%> <script>location.replace("quizz.asp?redir")</script> <%end if %>
|
4. Tirage aléatoire
A l'issue du jeu, un tirage aléatoire doit être fait parmi les joueurs ayant répondu correctement aux questions... cette petite procédure (à appeler dans une page "admin") devrait vous aider à l'automatiser :

| _tirage.asp |  |  | |
| <% ' TIRAGE ALEATOIRE DANS LA BD
sub tirage(tours,base,requete) dim alea,Conn,RS,cpt,mem ' Connexion Set Conn = Server.CreateObject("ADODB.Connection") Set RS = server.createobject("ADODB.Recordset") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & base ' Sélection de tous les enregistrements RS.Open requete,Conn,3,3 cpt = 0 : mem = "|" ' En-têtes du tableau response.write "<table border cellspacing=0 cellpadding=2><tr>" for each champ in RS.Fields response.write "<td><b>" & champ.name & "</b></td>" next response.write "</tr>" ' Tirage parmi les enregistrements randomize while cpt < tours alea = Int(RS.recordCount * Rnd) ' Déjà sorti ? if instr(mem, "|" & cStr(alea) & "|") < 1 then cpt = cpt + 1 mem = mem & cStr(alea) & "|" RS.moveFirst : RS.move(alea) ' Affiche l'enregistrement response.write "<tr>" for each champ in RS.Fields response.write "<td>" & RS(champ.name) & "</td>" next response.write "</tr>" end if wend response.write "</table>" ' Déconnexion RS.close Conn.close end sub
' Exemple d'appel : ' database = Server.MapPath("../../") & "\database\asphp2\quizz.mdb" ' SQL = "SELECT * FROM joueurs WHERE Score = NbQuest" ' tirage 2,database,SQL %>
|
Didier le
26/02/2005 (100 487 hits) |
|
|