|
|
|
dynamische Signatur
Zurück zur Übersicht Erzeugt dynamische Signaturen zur Verwendung in Foren o.ä.
Hallo Community,
falls jemand auch solch eine Dynamische Signatur haben möchte, wie bei xfire, oder sämtlich anderen Foren, Boards, etc. wo eure Daten eingetragen werden sollen, dann gibt es mehrere Möglichkeiten. Einmal mithilfe von einer Datenbank oder mit Textdatein. Aber hier in diesem Codeschnipsel, welches auch als Tutorial dienen soll, wird nur erklärt, wie es mit MySQL funktioniert. Übrigens sollte die gd-Funktion des Server vorhanden bzw. aktiviert sein. Dies könnt ihr am besten mit phpinfo(); herausfinden.
Zuerst einmal sollte eine Tabelle in der Datenbank vorhanden sein. Wenn nicht, dann beschäftigt euch bitte mit dem Loginscript von php-einfach.de klick mich.
Nun kommen wir zum 1. Abschnitt des php-scriptes. Wir nennen unsere Datei signatur.php
| PHP |
1:
2:
3:
|
<?php
Header("Content-Type: image/png"); // Hier kann man sich aussuchen, ob es sich um ein .png-, oder .jpeg Bild handeln soll.
?>
|
|
Das waren nun die Angaben zum Header bzw. zum Bild, um welche Art von Bildes es sich handeln soll. Hierbei ist zu beachten, das nur .jpeg (nicht .jpg) und .png empholen sind.
Hiermit erstellen wir nun das Rechteck für die dynamische Signatur..
| PHP |
1:
2:
3:
4:
5:
|
<?php
$width = 500; // Später die Breite des Rechtecks
$height = 90; // Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
?>
|
|
Anstelle von ImageCreate($wert1, $wert2) kann man auch gleich die Zahlen in ImageCreate setze. Also zum Beispiel so: ImageCreate(400, 100)
Wir haben zwar jetzt ein Rechteck, welches wir aber nicht sehen können, da die Farbwerte noch nicht vorhanden sind. Das wäre der nächste Schritt:
| PHP |
1:
2:
3:
4:
5:
6:
|
<?php
$schwarz = ImageColorAllocate($img, 0, 0, 0);
$weiß = ImageColorAllocate($img, 255, 255, 255); //WEIß
// Die drei Nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
?>
|
|
Hier habe ich schon alles beschrieben. Und falls ihr jetzt nicht mehr durchsehen solltet, mit den Farbwerten? Es gibt nicht nur die Farbbezeichnung, den Hex-Code (#000000) sondern auch RGB-Farbcodes. Diese findet man überall im Internet.
Da unser Script noch nicht fertig ist, kommen wir gleichmal zum nächsten Abschnitt.
| PHP |
1:
2:
3:
|
<?php
ImageFill($img, 0, 0, $schwarz);
?>
|
|
Mit ImageFill wird das Bild komplett so gefüllt, wie wir es in die Variable $schwarz eingetragen haben. In diesem ist es auch schwarz. ;)
Mit einem "nur schwarzen Bild", ohne Text wollen wir uns aber nicht zufrieden geben. Daher folgt nun der Text mit den eigenen Farben.
| PHP |
1:
2:
|
<?php
ImageString($img, 2, 20, 15, "Name:", $weiß);
|
|
Nun zur Erläuterung:
- Die erste Zahl ist ist für die Größe des Bildes. Hierbei ist auch noch zu beachten, das nur die Größen: 1-5 Möglich sind.
- Die zweite Zahl steht für die Position von links in Pixel (px)
- Die dritte Zahl steht für die Position von oben (auch px)
- Und "Name:" steht momentan für das, auf was wir hinauswollen.
- Wie man nur unschwer erkennen kann, gilt "$weiß" für die Farbe, die wir oben schon angegeben haben.
Nun kommen wir zu Datenausgabe der Daten, die in der Datenbank stehen.
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?php
// Verbindungsaufbau zur Datenbank
$verbindung = mysql_connect("servername",
"euerBenutzername","euerPasswort");
$id = $_GET['id'];
// Hier findet die Datenbankabfrage statt
$abfrage = "SELECT * FROM `user` WHERE id = '".mysql_real_escape_string($id)."' LIMIT 1;";
$loesung = mysql_query($abfrage) or die(mysql_error());
$ausgabe = mysql_fetch_assoc($loesung);
?>
|
|
Das Limit 1;, wie es im Tutorial steht, ist halt dafür, das nur alle Einträge, die der id und der Tabelle user zugeordnet sind.
Wenn wir nun das Grundgerüst für die Datenbank fertig haben, dann können wir ja mit der Ausgabe der Daten beginnen.
| PHP |
1:
2:
3:
4:
|
<?php
// Tabellen für die dynamischen Einträge
ImageString($img, 2, 100, 15, "".$ausgabe['name']."", $gold);
?>
|
|
Hierzu brauch ich eigentlich nichts mehr zu erklären, außer das hier statt "Name:" nun der Ausgabebefehl bzw. die Variable steht. Diese Datensätze werden nun ausgegeben.
Nun wären wir fast am Ende. Hier seht ihr noch, wie mein Script umgesetzt wird. Natürlich habe ich meine Signatur etwas angepasst.
Jetzt folgt eigentlich nur noch das, was eigentlich mit am wichtigsten ist.
| PHP |
1:
2:
3:
4:
|
<?php
ImagePNG($img);
ImageDestroy($img);
?>
|
|
ImagePNG heißt soviel wie, dass das Bild ein .png Bild sein soll.
Das ImageDestroy ist dafür da, damit der Speicherplatz (cache) nicht unnötig vom gleichen Bild gefüllt wird.
Und nun kommt das gesamte PHP-Script.
| PHP |
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:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
|
<?php
Header("Cache-Control: no-cache");
Header("Content-Type: image/png");
// Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
$width = 500; // Später die Breite des Rechtecks
$height = 90; // Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
$schwarz = ImageColorAllocate($img, 0, 0, 0);
$weiß = ImageColorAllocate($img, 255, 255, 255); //WEIß
// Die drei Nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
ImageFill($img, 0, 0, $schwarz); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $schwarz
// Tabellen für die Standarteinträge
ImageString($img, 2, 20, 15, "Name:", $weiß);
// Verbindungsaufbau zur Datenbank
$verbindung = mysql_connect("servername",
"euerBenutzername","euerPasswort");
$id = $_GET['id'];
// Hier findet die Datenbankabfrage statt
$abfrage = "SELECT * FROM `user` WHERE id = '".mysql_real_escape_string($id)."' LIMIT 1;";
$loesung = mysql_query($abfrage) or die(mysql_error());
$ausgabe = mysql_fetch_assoc($loesung);
// Tabellen für die dynamischen Einträge
ImageString($img, 2, 100, 15, "".$ausgabe['name']."", $weiß);
// Legende:
# Die erste Zahl steht für die Schrifthöhe (geht nur bis zur 5).
# Die zweite Zahl bzw. 250 steht für die Position von Links.
# Die dritte Zahl steht für die Postion von Oben.
# Der Text, ist der, der später im Bild erscheinen soll.
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img); # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
|
|
//edit: Dein Bild kannst du dann wiefolgt aufrufen: http://www.DeineDomain.de/signatur.php?id=DeineUserID
Für Kritik bin ich immer gerne offen. Sollte es irgendwelche Fehler geben, so schreibt mir diese Fehler.
In diesem Sinne wünsche ich euch viel Spaß mit diesem Script.
Gruß
BerlinerBaer
Kommentare
Zurück zur Übersicht
Autor Gast
|
|
|
|