Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP: Dynamisches Bild mit Text -> Text fehlt sehr oft

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 10.04.2010, 10:25

Hallo zusammen,

ich habe ein kleines Script das mit ein Captcha erstellt, also nix besonderes, aber es macht mich noch kirre...

Die grobe Abarbeitung:
1. Ein Code wird generiert
2. Der Code wird in der Session gespeichert
3. Im eigentlichen Template wird das Bild über ein extra Script generiert (Hintergrund und Code)

Und bei Punkt 3 liegt irgendwo der Hund begraben. Der Hintergrund ist immer da, der Code fehlt sehr oft - ca. in 6 Fällen von 10. Das war aber nicht immer so, erst seit meinem Serverumzug.

Dabei kann ich schon mal sagen, dass der Code aus der Session immer vorhanden ist (direkte Ausgabe im Template). Auch eine direkte Ausgabe im "Bild-Script" anstelle der Bilderstellung ist immer möglich. Der Code ist immer vorhanden. Schalte ich aber wieder zurück zur Bilderstellung, dann fehlt er fast immer wieder.

Hat einer von euch eine Idee was das sein könnte? Ist zwar nicht so wichtig, aber nach nun fast einem Jahr würde ich das nun doch schon mal gerne lösen.

Probleme mit dem Caching könnte ich eigentlich ausschließen, denn da habe ich eigentlich schon alles durch, bis hin zur kompletten Abschaltung. Auch die direkte Auslieferung hatte ich schon umgangen und jedes einzelne Bild auf der Platte abgelegt. Auch dort dann meist ohne Code. Schriftarten hatte ich auch schon in Verdacht (obwohl die gleiche wie sonst) und hab die gewechselt - ohne Erfolg.

Debug-Ausgaben im Bild-Script hatte ich auch, damit der mir entsprechende Meldungen bringt, wenn irgendwo was fehlt, Session leer ist, Code falsch oder ein Fehler bei einer der Bildfunktionen. Nichts da, keine Meldungen, aber Code fehlt.

Eine der Optionen war z.B., dass "imagettfbbox" eventuell einen Wert außerhalb des Bildes hätte und der Code somit nicht geschrieben wird, aber das ist nicht der Fall, die Werte dort stimmen alle und immer.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 10.04.2010, 11:08

Du vermutest einen Fehler in deinem Code, nennst deinen Code aber nicht. Wie soll man dazu Tipps geben, geschweige denn was Konkretes sagen?

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 10.04.2010, 11:15

Hi Mork,
das ist natürlich richtig. Der Code ist

Code: Alles auswählen

// Leerräume zwischen Zeichen einfügen
$ImgSecCode = '';
for &#40;$i = 0; $i < 6; $i++&#41;
&#123;
	$ImgSecCode .= $SecCode&#91;$i&#93;.' ';
&#125;

$ImgSecCode = trim&#40;$ImgSecCode&#41;;
$schrift = $_SERVER&#91;'DOCUMENT_ROOT'&#93;.'/mistral.ttf';


# Berechnung der Grafikmaße
$rahmenmass = imagettfbbox&#40;20, 0, $schrift, $ImgSecCode&#41;;
$rahmenmass&#91;5&#93; *= -1;
$TextBreite = &#40;200-$rahmenmass&#91;2&#93;&#41; / 2;
$TextHoehe = &#40;&#40;50-$rahmenmass&#91;5&#93;&#41; + &#40;$rahmenmass&#91;5&#93;*2&#41;&#41; / 2;

# Grafik erzeugen
$grafik = imagecreatefrompng&#40;$_SERVER&#91;'DOCUMENT_ROOT'&#93;.'/hintergrund.png'&#41;;

# Schrift einfügen
$schriftfarbe = imagecolorallocate&#40;$grafik, 128, 128, 128&#41;;

$imagettftext = imagettftext&#40;$grafik, 20, 0, $TextBreite, $TextHoehe, $schriftfarbe, $schrift, $ImgSecCode&#41;;

# Grafik ausgeben
header&#40;'Content-type&#58; image/jpeg'&#41;;
imagejpeg&#40;$grafik&#41;;
imagedestroy&#40;$grafik&#41;;
Und ja, da muss ein Fehler sein. Erstmals sehe ich nun auch in etwa wo

das schaut noch normal aus, auch wenn nur bedingt.

Code: Alles auswählen

rahmenmass
array&#40;8&#41; &#123; &#91;0&#93;=>  int&#40;-2&#41; &#91;1&#93;=>  int&#40;2&#41; &#91;2&#93;=>  int&#40;102&#41; &#91;3&#93;=>  int&#40;2&#41; &#91;4&#93;=>  int&#40;102&#41; &#91;5&#93;=>  int&#40;21&#41; &#91;6&#93;=>  int&#40;-2&#41; &#91;7&#93;=>  int&#40;-21&#41; &#125;

TextBreite
int&#40;49&#41;

TextHoehe
float&#40;35.5&#41;

imagettftext
array&#40;8&#41; &#123; &#91;0&#93;=>  int&#40;47&#41; &#91;1&#93;=>  int&#40;38&#41; &#91;2&#93;=>  int&#40;152&#41; &#91;3&#93;=>  int&#40;38&#41; &#91;4&#93;=>  int&#40;152&#41; &#91;5&#93;=>  int&#40;14&#41; &#91;6&#93;=>  int&#40;47&#41; &#91;7&#93;=>  int&#40;14&#41; &#125; 
das aber nicht

Code: Alles auswählen

rahmenmass
array&#40;8&#41; &#123; &#91;0&#93;=>  int&#40;-2&#41; &#91;1&#93;=>  int&#40;2&#41; &#91;2&#93;=>  int&#40;-2147483648&#41; &#91;3&#93;=>  int&#40;2&#41; &#91;4&#93;=>  int&#40;-2147483648&#41; &#91;5&#93;=>  int&#40;21&#41; &#91;6&#93;=>  int&#40;-2&#41; &#91;7&#93;=>  int&#40;-21&#41; &#125; 

TextBreite
float&#40;1073741924&#41;

TextHoehe
float&#40;35.5&#41;

imagettftext
array&#40;8&#41; &#123; &#91;0&#93;=>  int&#40;1073741922&#41; &#91;1&#93;=>  int&#40;38&#41; &#91;2&#93;=>  int&#40;1073742027&#41; &#91;3&#93;=>  int&#40;38&#41; &#91;4&#93;=>  int&#40;1073742027&#41; &#91;5&#93;=>  int&#40;14&#41; &#91;6&#93;=>  int&#40;1073741922&#41; &#91;7&#93;=>  int&#40;14&#41; &#125;
Irgendwo hat der da ein Problem mit der Breite und dem float.... Soweit war ich allerdings noch nie, das sehe ich nun zum ersten mal. Nur float darf der Wert ja gar nicht sein. Werde das nun mal ändern. Nur das Ding lief ja schon einige Jahre, da gab es das Problem nie (anderer Server)

Wo zum Geier das rahmenmass (imagettfbbox) den Wert "[2]=> int(-2147483648)" (untere rechte Ecke, X-Position) her bekommt wäre wohl der Punkt... An dem liegt es nämlich, so wie es aussieht.

Edit: Nun finde ich es langsam witzig: Endlich mal ein sichtbarer Fehler nach dem man suchen kann, und dann gleich das: https://bugs.php.net/bug.php?id=50014