Schrift
[thread]444[/thread]

use GD + ein Tutorial = Error



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Gast Gast
 2005-02-25 18:09
#4490 #4490
Hallo allesamt!

Ich habe die Such funktion auf meine Frage benutzt, jedoch ist zum Stichwort GD nichts gekommen, welches meinem Problem entsprach.

Heute habe ich mit perl angefangen, damit ich per cron job Images erstellen kann. (Mit PHP habe ich kein Problem Images zu erstellen, nur ist Perl viel mehr Systemschohnend und weniger Rechnungs Intensiv. Also habe ich mich für Perl entschieden! :) )
Ich habe diese Page gefunden, welche auch die Offizielle Page darstellt, wenn mich nicht alles täuscht. Jetzt habe ich das 1. Beispiel in eine Datei verpackt (mit dem richtigen Pfad an mein Perl Verzeichnis) und raufgeladen. "Internal Server Error" wird ausgegeben.

Darauf kam meine Vermutung auf, dass es ja schliesslich sein könnte das mein Provider die GD lib nicht insalliert hat. Auf Anfrage habe ich folgendes vom Provider nur mit der Erklährung, dass die GD Lib installiert sei erhalten;
Code: (dl )
1
2
3
 main::(-e:1):   1
DB<1> use GD
DB<2>



Kann mir irgendjemand erklähren was dies aussagt?

mfg, Tschetsch
mordur
 2005-02-25 18:29
#4491 #4491
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
poste doch mal den Code, Dateirechte richtig gesetzt? Ich vermute du gehst über einen Webserver. Was sagt dessen Logfile?
Tschetsch
 2005-02-25 18:44
#4492 #4492
User since
2005-02-25
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
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
#!/usr/bin/perl

#print "Content-type: image/x-png\n\n";

use GD;


# create a new image
$im = new GD::Image(100,100);

# allocate some colors
$white = $im->colorAllocate(255,255,255);
$black = $im->colorAllocate(0,0,0);
$red = $im->colorAllocate(255,0,0);
$blue = $im->colorAllocate(0,0,255);

# make the background transparent and interlaced
$im->transparent($white);
$im->interlaced('true');

# Put a black frame around the picture
$im->rectangle(0,0,99,99,$black);

# Draw a blue oval
$im->arc(50,50,95,75,0,360,$blue);

# And fill it with red
$im->fill(50,50,$red);

# make sure we are writing to a binary stream
binmode STDOUT;

# Convert the image to PNG and print it on standard output
print $im->png;




Wo sind diese Logfiles und wie kann ich diese anschauen? Das Script habe ich auf CHMOD 755 gesetzt. Sollte also keine Fehler geben.

Danke jetzt schon für die Antworten!


mfg, Tschetsch
ptk
 2005-02-25 18:54
#4493 #4493
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Guest,25.02.2005, 17:09]
Code: (dl )
1
2
3
 main::(-e:1):   1
DB<1> use GD
DB<2>



Kann mir irgendjemand erklähren was dies aussagt?[/quote]
Kleiner Denkanstoss: gib im Debugger
Code: (dl )
use Gibtsnicht

und
Code: (dl )
use CGI

ein und vergleiche die Ergebnisse
Tschetsch
 2005-02-25 19:19
#4494 #4494
User since
2005-02-25
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wie gesagt, ich bin neu zu perl und weiss nicht was der debugger ist! Kannst mir das erklähren? Wie, wo und was?

dank dir!
ptk
 2005-02-25 19:43
#4495 #4495
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Den Debugger hast du ja gestartet, wie ich an
Code: (dl )
1
2
3
main::(-e:1):   1
DB<1> use GD
DB<2>

sehen kann.
Tschetsch
 2005-02-25 20:18
#4496 #4496
User since
2005-02-25
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Habe jetzt dieses als .cgi abgespeichert und geuploaded.

Code: (dl )
1
2
3
4
#!/usr/bin/perl
main::(-e:1): 1
DB<1> use GD
DB<2>


Folglich bekomm ich dieses ausgespuckt bei einem aufruf über Opera;
Code: (dl )
1
2
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.



Und leider kann ich aus dem Post oberhalb von mir wenig erfahren, den ich weiss nicht was der debugger machen sollte, wenn er nichts schlaues auf den Screen ausgibt, wie ein debugger eigentlich sollte!
Ich bitte euch um Hilfe, den ich verzweifle langsam in meinem unwissen!
Dubu
 2005-02-26 00:08
#4497 #4497
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Vergiss den Debugger.

Aber entferne mal das '#' vor der Zeile mit dem print("Content-type ...") in deinem Skript.
Tschetsch
 2005-02-26 00:54
#4498 #4498
User since
2005-02-25
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Habe ich auch schon ausprobiert. Es ergibt bei text/html eine Weisse Seite ohne nichts. Und mit image/png-x gibt es anschliessend das süsse kleine rote X. Anders gesagt, muss es wohl intern einen Fehler geben, dass kein Image angezeigt werden kann. Könnte es sein, dass beim Provider das GD::Image fehlt? Und ist es möglich die Fehler ausgabe anzuschauen von einem perl script?

sorry dass ich so Noob Fragen stelle aber ich habe bis jetzt keine halbwegs sinnvolle page gefunden.


mfg, Tschetsch...
Dubu
 2005-02-26 01:56
#4499 #4499
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Bei einem PNG-Bild muss der Content-type image/png oder image/x-png sein, das war schon korrekt.

Zum Testen, wo sonst noch Fehler sein koennten, aendere mal die ersten Zeilen des Skriptes wie folgt ab:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl

use CGI::Carp qw/fatalsToBrowser/;
use GD;

print "Content-type: image/x-png\n\n";

# create a new image
$im = new GD::Image(100,100);
# der Rest wie gehabt

Dann sollten fatale Fehler eigentlich im Browser zu sehen sein.
Das Skript funktioniert uebrigens sonst.

Was das Error-Log angeht: Du musst deinen Provider fragen, ob du daran kommst und wo das auf dem Server liegt.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2005-02-25 18:09.