[php] [gd] Plaatje maken van emailadres

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Puntslash
  • Registratie: December 2000
  • Niet online
Hoi,
Ik heb meerdere topics doorgelezen over dit onderwerp maar ik blijf steken op een klein probleem.

Met het volgende scriptje kan ik een plaatje maken:
PHP:
1
2
3
4
5
6
7
8
header ("Content-type: image/png"); 
Header("Cache-Control: no-cache, must-revalidate"); 
$im = ImageCreate (118, 35) 
or die ("Kan image niet maken!"); 
$background_color = ImageColorAllocate ($im, 255, 255, 255); 
$text_color = ImageColorAllocate ($im, 0, 0, 0); 
ImageString ($im, 3, 3, 3,  "Tekst in het plaatje", $text_color); 
ImagePNG($im);


Dus ik weet daarmee zeker dat gd werkt.
Nu wil ik uit een database een email adres halen en die vervolgens om laten zetten. Dus ik heb het script uitgebreid:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
header ("Content-type: image/png"); 
Header("Cache-Control: no-cache, must-revalidate"); 

include("config.inc.php");
$result = mysql_db_query ("$mysql_data", "SELECT * FROM gebruikers WHERE member_id = '$userid'");
mysql_query($query);
while($row = mysql_fetch_array ($result)) 
{
    $email = $row[email];
    $im = ImageCreate (118, 35) 
    or die ("Kan image niet maken!"); 
    $background_color = ImageColorAllocate ($im, 255, 255, 255); 
    $text_color = ImageColorAllocate ($im, 0, 0, 0); 
    ImageString ($im, 3, 3, 3,  $email, $text_color); 
    
    ImagePNG($im); 
}


Als ik dit uitvoer krijg ik rare tekens terug:

‰PNG


IHDRv#{*lPLTEÿÿÿUÂÓ~IDATxœc` 6àa8ÀÀÜb%ƒ8`>c;P Èg‰ù€|f_ZÆæÇLJÝ7çÙüxl–Þ ߓvFÚ°ëææ´„ä´œ#@~™߻oî¯KH>–„A²'áìlÆù
ÉÇß°ùiggvÜßœ–“œþ(¿ßæÌÏçÏ;ål,¹Ï¡º÷F8¸n5ۭIEND®B`‚

Ik denk dat ik iets heel kleins vergeet, of dat mijn manier van uitlezen uit de database niet goed is.

Weet iemand de oplossing hiervoor?

Ik roep het script alsvolgt aan:
code:
1
[img]"mailpng.php?userid=1"[/img]

[ Voor 16% gewijzigd door Puntslash op 24-01-2004 13:49 ]


Acties:
  • 0 Henk 'm!

  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
maak voor de grap van $row[email]; => $row["email"];
en zet error_reporting(E_ALL); is boven in je script.

Pascal


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Overigens is je redenatie niet geheel correct; waarom doe je een while terwijl je member_id uniek is? Maak daar gewoon een if van....

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Puntslash
  • Registratie: December 2000
  • Niet online
0528973 schreef op 24 januari 2004 @ 13:52:
maak voor de grap van $row[email]; => $row["email"];
en zet error_reporting(E_ALL); is boven in je script.
$row[email] vervangen voor $row["email"] heeft gwerkt!
Hoe kan dat verschil maken dan?
Als ik een script maak zet ik er nooit aanhalingstekens tussen..

Bedankt iig!

Acties:
  • 0 Henk 'm!

  • Puntslash
  • Registratie: December 2000
  • Niet online
Spider.007 schreef op 24 januari 2004 @ 13:54:
Overigens is je redenatie niet geheel correct; waarom doe je een while terwijl je member_id uniek is? Maak daar gewoon een if van....
Tja, laat ik maar zeggen dat mijn kennis van php niet zo heel groot is..
Hoe kan ik jou manier toepassen dan?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Dan komt er een notice omdat je gewoon iets vergeet maar PHP er toch nog iets van probeert te maken. Lees de FAQ hiervoor...

Acties:
  • 0 Henk 'm!

  • Puntslash
  • Registratie: December 2000
  • Niet online
djluc schreef op 24 januari 2004 @ 13:56:
Dan komt er een notice omdat je gewoon iets vergeet maar PHP er toch nog iets van probeert te maken. Lees de FAQ hiervoor...
Ok, ik zal een gokje wagen ;)
Bedankt voor de snelle replies
Pagina: 1