login  Naam:   Wachtwoord: 
Registreer je!
 Forum

GD image weergeven

Offline Appie_Dijk - 21/08/2006 17:16
Avatar van Appie_DijkLid Wat doe ik fout? hij geeft de code wel maar de image niet...
waarschijnlijk door de volgende zin: /home/account/domains/website.nl/public_html/verdana.ttf
(script van sitemasters.be ;))

  1. <?php
  2. class keygen {
  3. var $sleutel;
  4.  
  5. function keygen () {
  6. $this->sleutel = $this->__generateKey();
  7. }
  8.  
  9. function giveKey () {
  10. return $this->sleutel;
  11. }
  12.  
  13. function __generateKey() {
  14. $lengte = 6;
  15. $tekens = array_merge (range (0, 9), range ('a', 'z'));
  16. $key = "";
  17.  
  18. for ($i = 0; $i < $lengte; $i++)
  19. $key .= $tekens[rand(0, sizeof ($tekens))];
  20.  
  21. return strtoupper($key);
  22. }
  23.  
  24. function makeImage () {
  25. header("Content-Type: image/png");
  26.  
  27. $imagehandle = imagecreate(130, 20);
  28. $white = imagecolorallocate($imagehandle, 255, 255, 255);
  29. $black = imagecolorallocate($imagehandle, 0, 0, 0);
  30. imagettftext($imagehandle, 15, 0, 0, 20, $black, '/home/account/domains/website.nl/public_html/verdana.ttf', $this->sleutel);
  31. imagepng($imagehandle);
  32. imagedestroy($imagehandle);
  33. }
  34. }
  35.  
  36. ?>


  1. <?php
  2. include ("keygen.class.php");
  3. $keygen = new keygen();
  4.  
  5. if($_GET['actie'] === "img")
  6. $keygen->makeImage(); # Headers moeten veranderd worden, de ene met text, de andere met een image, dit is dus de enige oplossing om het figuurtje te tonen
  7.  
  8. echo ("<img src=\"?actie=img\"><br>"); # Geeft de key in de vorm van een image weer
  9. echo ("Key: " . $keygen->giveKey() . "<br>"); # Geeft de key weer, zonder image
  10. ?>

16 antwoorden

Gesponsorde links
Offline BigBug - 21/08/2006 19:10
Avatar van BigBug PHP expert /home/account/domains/website.nl/public_html/verdana.ttf

Moet zijn:

home/account/domains/website.nl/public_html/verdana.ttf
Offline Voldemort - 21/08/2006 19:31 (laatste wijziging 21/08/2006 19:31)
Avatar van Voldemort PHP ver gevorderde @BigBug: Dat denk ik niet hoor, het is gewoon het path /home/...

Ik denk eerder dat het path niet klopt. /[...]/account/[...]/website.nl/[...]

Die 2 dingen moet je aanpassen denk ik naar jouw situatie.
Offline BigBug - 21/08/2006 19:36
Avatar van BigBug PHP expert Maar met die '/' ervoor verander je volgensmij ook het path.. Want met die '/' ervoor geef je volgens mij aan dat het een volgende map is.. ipv de huidige als je me begrijpt.
Offline Maarten - 21/08/2006 20:23
Avatar van Maarten Erelid BigBug, die voorste / slaat op de root. Thankyoucomeagainbyebye.
Offline Gerard - 22/08/2006 01:50 (laatste wijziging 22/08/2006 01:51)
Avatar van Gerard Ouwe rakker Kleine opmerking.

  1. function giveKey () {
  2. return $this->sleutel;
  3. }


Zoiets noemen we een get functie. Je kan deze functie dan ook het beste de naam getKey() geven. Zo word het over het algemeen gedaan.
Offline Appie_Dijk - 22/08/2006 11:28
Avatar van Appie_Dijk Lid @BigBug: Maakt niet uit of er / voorstaat, dan doet hij het nog niet.
@Voldemort: Dit heb ik ook ;)
@Proximus: Zoals ik hem hier heb gepost zo staat ie ook onder de scripts bij deze site.
Offline xSc - 22/08/2006 11:32
Avatar van xSc Onbekend Ik weet het niet zeker hoor, maar komt het niet omdat je

imagedestroy($imagehandle);

gebruikt?

Offline Appie_Dijk - 22/08/2006 11:35 (laatste wijziging 22/08/2006 11:48)
Avatar van Appie_Dijk Lid wat zou hier dan moeten staan? het maakt namelijk niet uit of ik deze weghaal of dat ik hem laat staan.

daarnaast zou het toch moeten werken want anders waren anderen hier op het forum er ook al over gevallen.
Offline Tibbeh - 22/08/2006 12:32
Avatar van Tibbeh Lid @xSc
imagedestroy($imagehandle);
Heeft er echt niets mee te maken,
dat zorgt ervoor dat de image van je hdd van je host word gedaan,
anders slaat hij die image altijd op ...
En het path naar je font kan ook gewoon font/verdana.ttf zijn, dan moet er in de map waar je gd file staat wel zo een map zijn die font noemt.


Grtz
Offline Appie_Dijk - 22/08/2006 13:34 (laatste wijziging 22/08/2006 13:35)
Avatar van Appie_Dijk Lid kan ik er ook een http adres neerzetten???
want op één of ander manier werkt t niet...
Offline Thomas - 22/08/2006 13:58
Avatar van Thomas Moderator Krijg je een "this image cannot be displayed because it contains errors" mededeling (of equivalent)?
Of waaraan kun je zien dat het fout gaat?

Het script is trouwens het plaatje, dus als je een keygen-object maakt in het script blaat.php, dan moet je dit als volgt in HTML zetten: <img src="blaat.php" />.

Wat jij doet kan volgens mij niet.
Offline Maarten - 22/08/2006 14:24
Avatar van Maarten Erelid Het kan wel FangorN, maar dan moet je wel na makeImage() een exit of dergelijke zetten zodat het ?actie=img gedeelte niet meer tot de echo komt.
Offline Appie_Dijk - 22/08/2006 14:48 (laatste wijziging 22/08/2006 14:54)
Avatar van Appie_Dijk Lid ik zie een kruisje dat hij het plaatje niet weer kan geven...
verder zie ik eronder de code staan.

als dit niet zou kunnen waarom staat hij dan bij deze site onder de scripts???

o vergeten te vermelden:
http://www.attractive-webdesign.nl/mail/image.php
staat het script
Offline Thomas - 22/08/2006 14:54 (laatste wijziging 22/08/2006 14:58)
Avatar van Thomas Moderator Geen idee!!!
Vraag het de auteur!!!
enzo!!!

:)

En het kan volgens mij niet, maar goed...
Offline timmie_loots - 22/08/2006 15:07
Avatar van timmie_loots PHP gevorderde Er is ergens output, voor de headers verzonden worden. Je hebt het script ergens geplaatst waar al iets wordt geëcho'ed.
Offline Thomas - 22/08/2006 15:13
Avatar van Thomas Moderator Je moet ergens ook die key "doorgeven". Misschien is dat de reden dat de auteur voor het plaatje geen afzonderlijk script heeft gemaakt, omdat deze niet wist hoe hij dat aan zou moeten pakken?

Als je van het plaatje een bestand bakt, dan zou je dit in één script kunnen zetten, maar als je het on-the-fly genereert, dan zul je dit toch in een apart script moeten doen denk ik - en dan de key op een of andere manier zien te onthouden (via een sessie bvb).
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.289s