[PHP]Dynamische Signatur

11/07/2010 11:33 eph0x#1
So okay ich will euch heute zeigen wie ihr leicht eine dynamische Signatur mit Hintergrundbild machen könnt!
Also erstmal erstellen wir die Datei sig.php oder wie ihr das nennen wollt ;)
1. Erstmal kommen unsere MySQL Daten rein
PHP Code:
$_MySQL = array();
$_MySQL['host'] = "localhost";
$_MySQL['user'] = "signatur";
$_MySQL['pass'] = "lustigespasswort";
$_MySQL['database'] = "signatur"
2. Wir bauen eine Verbindung zur Datenbank auf
PHP Code:
mysql_connect($_MySQL['host'], $_MySQL['user'], $_MySQL['pass']);
mysql_select_db($_MySQL['database']); 
3. Definieren wir unser Hintergrundbild
PHP Code:
define("BG_IMAGE""images/sigback.jpg"); 
4. Die Header definieren damit unser Browser auch das ganze Ding als Bild anzeigen kann
PHP Code:
Header("Cache-Control: no-cache");//Damit das Bild nicht im Browsercache gespeichert wird und sicher immer wieder aktualisiert!
Header("Content-Type: image/png"); 
5. Die UserID abfragen([Only registered and activated users can see links. Click Here To Register...], dieses 123 wird dann abgefragt, das geht auch mit jeder anderen Sache e-Mail oder vieles mehr!)
PHP Code:
$userid $_REQUEST['uid']; 
6. Werte aus der Datenbank auslesen und "abspeichern"
PHP Code:
$query mysql_query("SELECT * FROM user WHERE userID = '".$userid."' LIMIT 1");
$row mysql_fetch_object($query);
$name $row->XXXXX;
$points $row->XXXXX2;
$comp $row->XXXXX3;//Geht auch noch mit mehr oder weniger Werten 
7. Bild erstellen von Hintergrundbild und Schriftfarbe definieren
PHP Code:
$pic imagecreatefromjpeg(BG_IMAGE);//Nimmt Abmaße und Farben vom ebend def. Hintergrundbild!
$rot ImageColorAllocate ($pic25500);// in meinem Fall jetzt rot, können aber auch beliebig andere Farben sein! 
8. Texte auf das Bild schreiben
PHP Code:
ImageString($pic510020"Text1: ".$name$rot);//(Bild, Schriftart 1-5, Abstand in Pixel auf der x-Achse, Abstand in Pixel auf der y-Achse, Text der geschrieben werden soll, Farbe)
ImageString($pic510040"Text2: ".$points$rot);
Imagestring($pic510060"Text3: ".$comp$rot); 
9. Bild erstellen und danach wieder zerstören um den Speicherplatz wieder frei zugeben
PHP Code:
ImagePNG($pic);
ImageDestroy($pic
10. So dann, wenn ihr die Möglichkeit habt schreibt noch was in die .htaccess
PHP Code:
RewriteEngine   On
RewriteRule 
^sig\.png$ /sig.php   [L
Das hat dann zufolge das ihr als Link nicht nur [Only registered and activated users can see links. Click Here To Register...], sondern auch [Only registered and activated users can see links. Click Here To Register...] benutzen könnt!
------
Okay das war es eigentlich bei mir sieht die Signatur so aus:
[Only registered and activated users can see links. Click Here To Register...]

P.S.: Würde auch für euch eine Signatur erstellen, villt bekomme ich dann noch eine kleine Spende :D
Und wenn ihr Probleme habt könnt ihr euch auch gerne bei mir melden, mache sowas gerne ;)
11/12/2010 18:16 Konata-Chan#2
Die Links sind Zensiert....
11/12/2010 21:24 eph0x#3
Die Links sind zensiert, sonder exestieren gar nicht :D

Ich sind nur beispiele ;)

MfG

bei problemen einfach mich anschreiben!
11/15/2010 18:33 Konata-Chan#4
mach aber mal n outcome rein.......

der hier geht nicht aber
[Only registered and activated users can see links. Click Here To Register...]
11/15/2010 19:17 eph0x#5
Ja habe das System nen bisschen umgeändert :D

[Only registered and activated users can see links. Click Here To Register...]

Code:
http://beta.german-gta.de/sig/3.png
01/11/2013 22:38 wirt1002#6
Keines der Beispiel Links geht. Bitte änder das. Bin glaub ich einer der, der sich es mal im Beispiel ansehen möchte.
Aber sonst gut gemacht!

M.f.G

Alex.W
01/12/2013 00:02 eph0x#7
Quote:
Originally Posted by wirt1002 View Post
Keines der Beispiel Links geht. Bitte änder das. Bin glaub ich einer der, der sich es mal im Beispiel ansehen möchte.
Aber sonst gut gemacht!

M.f.G

Alex.W
Das tutorial wird dieses Jahr 3 Jahre alt.
02/27/2013 21:16 wirt1002#8
Könntest du mir verraten wie ich das mache das man das Bild auch mit ...../NAME.png aufrufen kann?

M.f.G
02/28/2013 14:18 Croco™#9
Das geht nicht da du nicht auf ein Bild verlinkst sondern erst auf das PHP script, dass dieses Bild generiert.
05/14/2013 20:06 Cooltek#10
Quote:
dieses 123 wird dann abgefragt, das geht auch mit jeder anderen Sache e-Mail oder vieles mehr!)
Genau, zum Beispiel lustige SQL Queries..

Hey,
ist zwar alt aber egal, sowas muss gesagt werden:
Nicht benutzen, SQL-Injection möglich!
Variable wird zugewiesen:
PHP Code:
 $userid $_REQUEST['uid']; 
und ohne Weiteres verwendet:
PHP Code:
 $query mysql_query("SELECT * FROM user WHERE userID = '".$userid."' LIMIT 1"); 
06/02/2013 17:30 xyNNNNNN#11
Quote:
Originally Posted by Croco™ View Post
Das geht nicht da du nicht auf ein Bild verlinkst sondern erst auf das PHP script, dass dieses Bild generiert.
Stimmt nicht ganz. Mit der Hilfe von mod_rewrite wäre es möglich die Requests mit verschiedenen Parametern auf ein Skript umzuleiten.

Erstell eine .htaccess und füge den folgenden Quellcode hinzu. Wenn deine Domain direkt auf das Verzeichnis leitet, kannst du die RewriteBase so belassen. Passe dann noch das gewünschte Format des Aufrufes an und rufe deine Seite auf ([Only registered and activated users can see links. Click Here To Register...]).

Ab sofort wird jedes Bild, was über diesen Pfad aufgerufen wird, an das angegebene Skript weitergeleitet. Über $_GET kannst du auf die gewünschten Parameter zugreifen.

Code:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^images/(.*).jpg$ index.php?image=$1 [L]
</IfModule>
06/28/2013 00:24 Syfox™#12
Ist, nicht gerade so toll, werde später genauere dinge erklären.
12/14/2013 21:08 Galaxy200#13
Funktioniert nicht.

[Only registered and activated users can see links. Click Here To Register...]
12/15/2013 21:17 EvolutionClip#14
Quote:
Originally Posted by Cooltek View Post
Genau, zum Beispiel lustige SQL Queries..

Hey,
ist zwar alt aber egal, sowas muss gesagt werden:
Nicht benutzen, SQL-Injection möglich!
Variable wird zugewiesen:
PHP Code:
 $userid $_REQUEST['uid']; 
und ohne Weiteres verwendet:
PHP Code:
 $query mysql_query("SELECT * FROM user WHERE userID = '".$userid."' LIMIT 1"); 
Kann man aber leicht verhindern in dem man mysql_real_escape_string() hinzufügt z.b. so:

PHP Code:
 $userid mysql_real_escape_string($_REQUEST['uid']); 
12/15/2013 22:41 IchVerabschiedeMich#15
Quote:
Originally Posted by EvolutionClip View Post
Kann man aber leicht verhindern in dem man mysql_real_escape_string() hinzufügt z.b. so:

PHP Code:
 $userid mysql_real_escape_string($_REQUEST['uid']); 
Oder direkt mit Prepared statements arbeitet.