Zum Inhalt springen

Imageerstellung


Empfohlene Beiträge

Hallo Leute,

ich will für ein Onlineprojekt einen sicheren login programmieren.

Ein Bestandteil dieses Logins ist, dass ein Bild mit zufälligem String erzeugt wird, den der User zur kontrolle abtippen muss.

ich habe nun folgendes php-script geschrieben (testzwecke):

<?php
header("Content-type: image/png");
$image = imageCreateFromPng('test.png');

imagestring($image,12,30,9,'test123',imagecolorallocate($image,0,0,0));

imagepng($image);
?>[/PHP]

mit imagepng kann ich optional auch in eine Datei schreiben.

Meine Umgebung besteht zum einen aus den Scripten und zum anderen aus Smarty-Templates.

Ich möchte die Ausgabe des Bildes also an das Template übergeben, da es sonst nicht mit dem Design klappt.

Jetzt die Frage: wie mache ich das am besten?

Eine Möglichkeit wäre, das bild ans Template zu übergeben per assign, aber ich bezweifle das das so funktioniert.

Eine andere Möglichkeit ist, das Bild auf die Platte zu schreiben (evtl eigenes verzeichniss, wegen sicherheit). Als Dateiname stelle ich mir einen Mix aus Session_id und Timestamp vor, so wäre sichergestellt, das es keine Namenskonflikte gibt...

Ausserdem: wie entsorge ich bei dieser Möglichkeit den anfallenden Datenmüll sicher?

Hat hier jemand Erfahrungen mit so einem System und will mir einen denkanstoß geben?

Link zu diesem Kommentar
Auf anderen Seiten teilen

du könntest das script auch direkt aus einem php script jedes mal neu generieren:

img.php:


<?php
header("Content-type: image/png");
$image = imageCreateFromPng('test.png');

imagestring($image,12,30,9,$_GET["teststring"],imagecolorall ocate($image,0,0,0));

imagepng($image);
?>
[/PHP]

und im template dann so:

[code] <img src="img.php?teststring=12-43TE-ADSF-242"> [/code]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Idee mit dem img-src ist schon gut. Aber ich würde aber keine Angaben (ausser eventuell die SessionID) ranhängen sondern in einer Session ablegen.

Du kannst nämlich dann später die Eingabe mit dem Wert in der Session vergleichen und must dir keine Gedanken über irgendwelche Dateien machen. Wichtig dabei ist aber, dass du sichergehst, dass die Session servergespeichert ist. Wenn du nämlich die Session-Daten im Cookie speicherst, dann ist das das alles vergebene Liebesmüh.

Einfach noch einfügen:


session_start();
$_SESSION['image_check'] = unique();
[/PHP]

Auf der nächsten Seite dann abfragen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...