[PHP] Random nummer

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15:23
Ik heb een scriptje om een random nummer aan te maken, en in een plaatje te laten geven.

Als ik dat bestand ( http://www.eljakim.info/test/random_number.php ) toevoeg dmv de include functie. Dan krijg ik een error dat dat niet kan.

Ik kan wel de html <img> tags gebruiken en dan laat hij het plaatje netjes zien.

Maar dan kan ik niet kijken welk nummer er nou in de int is geplaatst.

Hoe los ik dit op?:)

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • SilencerNL
  • Registratie: Juli 2002
  • Laatst online: 20:56

SilencerNL

No remorse

2 functies maken... 1 die het plaatje teruggeeft, en 1 die een string teruggeeft...

Don't dream your life, live your dreams!


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15:23
Silencer_NL schreef op vrijdag 23 december 2005 @ 15:14:
2 functies maken... 1 die het plaatje teruggeeft, en 1 die een string teruggeeft...
Hoe doe ik dat dan? mijn php script voor het random number is:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php

$width      = 100; // width of image

$height     =  40; // height of image

$len        =  8; // length of string

$fontsize   =   5; // fontsize


unset($random_text);

$lchar = 0;

$char  = 0;

/**************************************************

$random_text will hold the secret and random text!

**************************************************/

// create 'random' text

for($i = 0; $i < $len; $i++) {

    while($char == $lchar) {

        $char = rand(48, 109);

        if($char > 57) $char += 7;

        if($char > 90) $char += 6;

    } 

    $random_text .= chr($char);

    $lchar = $char;

}



$fontwidth  = ImageFontWidth($fontsize) * strlen($random_text);

$fontheight = ImageFontHeight($fontsize);



// create handle for image

$im = @imagecreate($width,$height);



$background_colour = imagecolorallocate($im, 62,62,62);
$text_colour = imagecolorallocate($im, 111,120,69); 
imagerectangle($im, 0, 0, $width-1, $height-1, $text_colour);



// draw the string horizontally

imagestring($im, $fontsize, rand(3, $width-$fontwidth-3), rand(2, $height-$fontheight-3), $random_text, $text_colour);



// lets output!

header("Content-type: image/png");

imagepng($im,'',80);



imagedestroy($im);

?>

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je kan geen plaatje includen in een PHP-file die HTML uitvoert, je moet gewoon een <img>-tag gebruiken.

Edit: Je kan beter een hash maken van het REMOTE_ADDR en nog wat andere vaste waarden, waaronder bijvoorbeeld een datum of een geheime string. Deze is altijd hetzelfde, en die hoef je dus ook niet door te geven.

Edit 2: sessies kunnen ook een uitkomst bieden.

[ Voor 57% gewijzigd door NMe op 23-12-2005 15:19 ]

'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.


Acties:
  • 0 Henk 'm!

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:40
Logisch PHP weet op dat moment niet wat voor content je probeert te maken.
- Je normale PHP script gaat er vanuit dat er een HTML pagina opgebouwd word.
- Het plaatjes script gaat er van uit dat je een .JPG opgebouwd word.
header("Content-type: image/png");
Oftewel 2 verschillende Content-Types, oftewel je kan nooit via een include er zo maar in gooien. Of je moet iets van index.php gebruiken voor de html pagina en dan index.php?fun=plaatje voor het plaatje, via een switch case...

[ Voor 7% gewijzigd door djexplo op 23-12-2005 15:21 ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15:23
-NMe- schreef op vrijdag 23 december 2005 @ 15:17:
Je kan geen plaatje includen in een PHP-file die HTML uitvoert, je moet gewoon een <img>-tag gebruiken.
Ja maar dan kan ik de string niet meer uitlezen .. :|

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

ZpAz schreef op vrijdag 23 december 2005 @ 15:18:
Ja maar dan kan ik de string niet meer uitlezen .. :|
Zie mijn edit. ;)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Gebruik een sessie om de waarde van de string ook in andere scripts beschikbaar te hebben.

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 15:23
Verwijderd schreef op vrijdag 23 december 2005 @ 15:21:
Gebruik een sessie om de waarde van de string ook in andere scripts beschikbaar te hebben.
Zal eens gaan kijken:)

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik heb es zoiets gemaakt en dan liet ik de random string in de image.php maken en hem in die file ook opslaan in de database. Dan heb je hem zonder tussenkomst van iets anders server-side wel opgeslagen terwijl je er later wel mee kunt rekenen. Dat n idee misschien?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Tussenkomst van een database vind ik redelijk overdreven wanneer het ook met sessies kan. :)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op vrijdag 23 december 2005 @ 18:55:
Tussenkomst van een database vind ik redelijk overdreven wanneer het ook met sessies kan. :)
Je zou natuurlijk ook sessiegegevens kunnen opslaan in een database. Waar en hoe precies je die gegevens bijhoudt is niet zo belangrijk, het gaat natuurlijk om de techniek, niet om de opslagmethode ;)

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Zulke images zijn er toch juist voor om het form proces niet geautomatiseerd te kunnen laten doen? Door het in een sessie te zetten maken je het makkelijker onderschepbaar dan in een database imo. Waarom die dan niet gebruiken als je die toch ter beschikking hebt?

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

g00fy schreef op dinsdag 27 december 2005 @ 17:07:
Zulke images zijn er toch juist voor om het form proces niet geautomatiseerd te kunnen laten doen? Door het in een sessie te zetten maken je het makkelijker onderschepbaar dan in een database imo. Waarom die dan niet gebruiken als je die toch ter beschikking hebt?
Zowel sessie data als data uit de database is niet rechtstreeks onderschepbaar bij de bezoeker van een site. Het is allebei data data alleen serverside wordt afgehandeld.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

.

[ Voor 113% gewijzigd door Verwijderd op 31-10-2023 22:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

.

[ Voor 99% gewijzigd door Verwijderd op 31-10-2023 22:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op dinsdag 27 december 2005 @ 17:28:
Dan nu een wat zinvoller reply. Misschien kun je wel 10 plaatjes kant en klaar maken, namelijk de getallen 0 t/m 9 en daar dan alles mee samenstellen? Lekker simpel en geen moeilijke dingen met plaatjes aanmaken en zo. Kun je ook eenvoudig ieder nummer mee maken.
En waar precies wordt het extra ingewikkeld gemaakt voor een machine om te kunnen "lezen" wat er staat? Als je dan alsnog uit de HTML broncode de tekens kunt achterhalen heb je heel veel moeite gedaan voor niets. De url van het plaatje (of de plaatjes) mag niets verklappen. Je zult dus sowieso ervoor moeten zorgen dat de server bijhoudt wat er in het plaatje stond, en dat per client opslaan, en dat kan dus met een sessie. Ik zie dus niet echt waarom jouw reply zinvoller zou zijn, het lijkt er eerder op dat je het punt een beetje mist.

Acties:
  • 0 Henk 'm!

Verwijderd

.

[ Voor 106% gewijzigd door Verwijderd op 31-10-2023 22:51 ]

Pagina: 1