[PHP/GD] Imagecreate - Name für das Bild

PatrickB

Well-known member
ID: 137508
L
24 April 2006
496
13
Hi,

ich versuche gerade einem mit Imagecreate und php erstelltem Bild einen Namen zu geben. Aber irgendwie funktioniert das nicht richtig.
Bis jetzt hab ich nur das gefunden:

PHP:
imagejpeg($image,"",100);

Normalerweiße kann man zwischen die Anführungszeichen doch den Bildnamen mit Endung schreiben damit es so aussieht:

PHP:
imagejpeg($image,"bild.jpg",100);

oder?

Jedenfalls funktioniert das bei mir nicht.
 
:rtfm:

Wenn du einen Dateinamen setzt, leitest du die Ausgabe um. D.h. es wird in der Datei gespeichert, aber nicht ausgegeben.
Willst du beides, brauchst du auch 2 Zeilen ;)
 
theHacker schrieb:
:rtfm:

Wenn du einen Dateinamen setzt, leitest du die Ausgabe um. D.h. es wird in der Datei gespeichert, aber nicht ausgegeben.
Willst du beides, brauchst du auch 2 Zeilen ;)

Wie, das versteh ich jetzt nicht ganz?
Welche 2 Zeilen brauch ich? :hö:
 
happymaster schrieb:
Was willst du dann (eigentlich)? :ugly:

Ich will das erstellte bild NICHT so abrufen:

Code:
<img src="bild.php">

sondern SO:

Code:
<img src="bild.jpg">

und dafür muss ich dem Bild ja einen Namen geben können. In dem Fall heißt das Bild: bild.jpg.
 
PatrickB schrieb:
Code:
<img src="bild.jpg">
und dafür muss ich dem Bild ja einen Namen geben können. In dem Fall heißt das Bild: bild.jpg.
Du darfst aber das Script nicht bild.jpg nennen ;)

Wenn das dynamisch erzeugte Bild statisch gespeichert wird, muss das Script, dass das macht, vorher laufen. D.h. ein Cronjob muss her.
 
Also ich hab gerade nach mod_rewrite geschaut und dadurch kann man doch nur die Adressleiste ändern, oder?

Besser sag ich es mal so. Ich will dem erstellten Bild, Informationen mitgeben die ich hinter das Bild hänge.
 
Was für Informationen willst du denn mitgeben?


Im Prinzip wurde schon alles gesagt...

mit imagecreate() ein Bild erstellen

mit imagejpg($im,$folder,100) speichern
header auf jpg setzen
und mit imagejpg($im) anzeigen lassen...
 
evident schrieb:
Was für Informationen willst du denn mitgeben?


Im Prinzip wurde schon alles gesagt...

mit imagecreate() ein Bild erstellen

mit imagejpg($im,$folder,100) speichern
header auf jpg setzen
und mit imagejpg($im) anzeigen lassen...

Ja, es wurde fast alles gesagt, nur nicht wie ich dem Bild einen namen gebe.

Ich will dem Bild eine Zahl übergeben, damit ich wenn ich das Bild eingebunden habe durch <img....> Die Zahlen abfragen kann.
 
PatrickB schrieb:
Ich will dem Bild eine Zahl übergeben, damit ich wenn ich das Bild eingebunden habe durch <img....> Die Zahlen abfragen kann.
bild.php?zahl=12345 ? :roll:

Was aber wieder auf die .php-Erweiterung bzw. mod_rewrite zurückführt ;)
 
theHacker schrieb:
bild.php?zahl=12345 ? :roll:

Was aber wieder auf die .php-Erweiterung bzw. mod_rewrite zurückführt ;)

Ja, genau sowas. Aber wie soll ich die Zahlen dann übergeben. Die Zahlen kann ich nur in der Datei in welcher ich das Bild erstelle anhängen. (Natürlich nur wenn das auch jetzt irgendwie funktioniert)
 
PatrickB schrieb:
Ja, genau sowas. Aber wie soll ich die Zahlen dann übergeben. Die Zahlen kann ich nur in der Datei in welcher ich das Bild erstelle anhängen. (Natürlich nur wenn das auch jetzt irgendwie funktioniert)
Der Trick is ein DB-System mit einer TAN. Guck dir mal an, wie das Vergütungsfenster von klamm funktioniert, dann sollten deine restlichen Fragen eigentlich alle überflüssig werden bzw. beantwortet sein :)
 
neue datei: .htaccess

inhalt:
AddType application/x-httpd-php .jpg



neue datei: bild.jpg
inhalt:
<?php

bild hier machen, header setzen + ausgeben

?>


fertig... (img src="bild.jpg")
 
theHacker schrieb:
Der Trick is ein DB-System mit einer TAN. Guck dir mal an, wie das Vergütungsfenster von klamm funktioniert, dann sollten deine restlichen Fragen eigentlich alle überflüssig werden bzw. beantwortet sein :)
Jo, im Prinzip will ich das gleiche machen wie dort.
Kopfgeldjaeger schrieb:
neue datei: .htaccess

inhalt:
AddType application/x-httpd-php .jpg



neue datei: bild.jpg
inhalt:
<?php

bild hier machen, header setzen + ausgeben

?>


fertig... (img src="bild.jpg")
Versteh ich nicht ganz :think:

edit:
Also das von Klamm hab ich mir jetzt angeschaut.
Aber ich versteh immer noch nicht mehr :(

Irgendwie werden dort ja die Zahlen verschlüsselt übergeben.
Aber die Bilder stehen doch in einer Datenbank, oder?
Die sehen ja immer gleich aus wenn es die gleichen Zahlen sind wenn ich mich nicht irre. Und so wie ich das mache muss man das mit dem Sicherheitscode bei der Registrierung vergleichen.

Es wird also immer eine neue Zeichenfolge generiert.

edit2:
Ok, mir ist gerade eingefallen, dass ich die zu übergebenden Zahlen auch vorher definieren könnte und dann per include in jeweils die Datei in der das Bild erstellt wird, als auch in die Datei wo ich das Bild einfüge include. Dann kann ich ja ganz einfach an die Daten verschlüsseln und übergeben.

Wäre das so sicher?
 
Also ich denke mal ich gehe jetzt richtig in der Annahme, dass du auch so Zufallszahlen möchtest, oder?

Was du dann machen musst:
du lässt in einer PHP-Datei die Zahlen zufällig auswählen.

Dann speicherst du sie zum einen einmal in einer Datenbank, damit du sie behältst, halt so wie du sie brauchst.

und dann verschlüsselst du die Zahlen ein wenig und hängst das verschlüsselte an die URL des Bildes an.

Beispiel:

PHP:
$zahl=264; // Kannst du meinetwegen auch per rand() bestimmen
--> einmal $zahl irgendwo speichern, damit du einen Vergleichswert hast (DB)
$code=base64_encode($zahl);

echo"<img src=\"bild.php?zahl=$code\">";

Damit hast du die Zahlen verschlüsselt an das Bild übergeben.

In der bild.php müsste sowas stehen:
PHP:
$zahlen=base64_decode($_POST['zahl']);
imagecreate...
imagestring...

usw...
weiteres dazu hier:
https://www.codeschnipsel.net/index.php?action=7&art=php&id=1063986767

dann wird dem Benutzer ein Bild angezeigt, welches die Zahlen enthält.

Bei Klamm packt Lukas noch ein paar andere geometrische Teile hinzu und verdreht das ganze ein wenig, damit wir es auch schön schwer haben, es zu lesen... :p

ich hoffe, ich konnte helfen!

-Flori-
 
Wenn die Zahl verschlüsselt über die URL übergeben wird, bringt das gar nix.
Ein Bot kann sie auch decodieren.

Nur ein TAN-System hilft da.
 
ja stimmt... das wäre natürlich noch sicherer...

aber man kann ja auch viele schöne eigene Verschlüsselungsmethoden entwickeln... da kommt auch ein Bot nicht so schnell dahinter...

sicher, base64_encode und so sind auch ziemlich leicht zu knacken... :D