Ik ben bezig met het maken van functionaliteit om dynamisch een afbeelding te genereren die een random code produceert. Dit om automatische scripts het onmogelijk te maken om mijn formulier automatisch te kunnen submitten.
Ik gebruik hiervoor het component ASPJPEG om het plaatje te genereren. Deze ondersteunt mijn hoster ook, maar ik kan daar verder geen andere componenten installeren.
Met de volgende code genereer ik de afbeelding met daarin de unieke code:
Deze code streamt het plaatje naar de browser zonder deze fysiek op te slaan.
De include file "code.asp" genereert een random nummer als volgt:
Op een andere pagina toon ik dit als volgt:

Bij iedere refresh verandert het nummer.
Nu is het de bedoeling dat men de code invoert in het textveld en er gekeken wordt of ze gelijk zijn aan elkaar.
Het probleem is dat ik het unieke nummer dat in het plaatje staat niet uitgelezen krijg om zodoende te kunnen vergelijk of het ingevoerde gelijk is aan datgeen op het plaatje.
Als ik simpelweg de variabele random_number uitlees op die pagina, dan zijn ze niet gelijk aangezien die dan weer een nieuw nummer genereert.
Iemand een idee ?
Ik gebruik hiervoor het component ASPJPEG om het plaatje te genereren. Deze ondersteunt mijn hoster ook, maar ik kan daar verder geen andere componenten installeren.
Met de volgende code genereer ik de afbeelding met daarin de unieke code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <!--#include file="includes/code.asp" -->
<%
Response.Expires = 0
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath("images/code.gif")
Jpeg.Canvas.Font.Color = &HFF0000
Jpeg.Canvas.Font.Family = "Verdana"
Jpeg.Canvas.Font.Bold = True
Jpeg.Canvas.Font.Quality = 4
Jpeg.Canvas.Font.Size = 20
Jpeg.Canvas.Print 17, 1, random_number
Jpeg.SendBinary
%> |
Deze code streamt het plaatje naar de browser zonder deze fysiek op te slaan.
De include file "code.asp" genereert een random nummer als volgt:
code:
1
2
3
4
5
6
7
8
9
10
| <% lowestNumber = 10000 highestNumber = 99999 randomize random_number = Int((highestNumber - lowestNumber + 1) * Rnd + lowestNumber) %> |
Op een andere pagina toon ik dit als volgt:

Bij iedere refresh verandert het nummer.
Nu is het de bedoeling dat men de code invoert in het textveld en er gekeken wordt of ze gelijk zijn aan elkaar.
Het probleem is dat ik het unieke nummer dat in het plaatje staat niet uitgelezen krijg om zodoende te kunnen vergelijk of het ingevoerde gelijk is aan datgeen op het plaatje.
Als ik simpelweg de variabele random_number uitlees op die pagina, dan zijn ze niet gelijk aangezien die dan weer een nieuw nummer genereert.
Iemand een idee ?
[ Voor 5% gewijzigd door Dutch_guy op 18-02-2005 11:47 ]
Pay peanuts get monkeys !