Δημοσιεύθηκε: 04/07/2005 14:53 Θέμα δημοσίευσης: [tutorial] Δημιουργία υπογραφής με php
Επειδή πολλοί με ρωτάνε για την υπογραφή μου, είπα να κάνω ένα μικρό tutorial.
Η υπογραφή μου είναι μια στατική εικόνα, η παρακάτω:
και απλά από πάνω γράφω διάφορα στοιχεία χρησιμοποιόντας την GDLibrary της php.
Επειδή το site μου είναι phpnuke με phpbb, ο κώδικας της υπογραφής μου είναι βασισμένος σε αυτά. Όμως με λίγο πείραγμα μπορείτε να κάνετε ότι θέλετε.
Φτιάχνουμε λοιπόν ένα αρχείο signature.php:
Κώδικας:
<?php
define('IN_PHPBB', true);
$phpbb_root_path = 'modules/Forums/';
#include($phpbb_root_path . 'extension.inc');
#include($phpbb_root_path . 'common.php');
include('mainfile.php');
$guest_online_num = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_session WHERE guest='1'"));
$member_online_num = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_session WHERE guest='0'"));
$who_online_num = $guest_online_num + $member_online_num;
$who_online = "On Line now: $guest_online_num Guests & $member_online_num members";
$sql = "SELECT username FROM $user_prefix"._users." ORDER BY user_id DESC LIMIT 0,1";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$lastuser = $row[username];
$numrows = $db->sql_numrows($db->sql_query("SELECT user_id FROM $user_prefix"._users.""));
$sql = "SELECT COUNT(user_id) AS userCount FROM $user_prefix"._users."";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$userCount = $row[userCount]-1; //το -1 επειδή ο πρώτος χρήστης είναι ο anonymous ;)
// Μέχρι εδώ τράβηξα ότι στοιχεία ήθελα από το phpbb. Παρακάτω κάνω τη δουλειά μου:
$image = "images/logo.png"; // η εικόνα που χρησιμοποιώ για να γράψω πάνω
$im = imagecreatefrompng($image); //φτιάχνω μια νέα εικόνα, βασισμένη στην προηγούμενη
$tc = ImageColorAllocate ($im, 0, 0, 0); //μαύρο χρώμα
ImageString($im, 3, 220, 2, "Site's information:", $tc); //αρχίζουμε και γράφουμε τις πληροφορίες.
// οι παράμετροι είναι: η εικόνα που φτιάχνουμε, το font, η θέση χ, η θέση ψ, το κείμενο και το χρώμα.
ImageString($im, 2, 220, 25, "$who_online", $tc);
ImageString($im, 2, 220, 35, "Total registered users: $userCount", $tc);
ImageString($im, 2, 220, 45, "Newest user: $lastuser", $tc);
header("Content-Type: image/png"); //στέλνουμε στον browser την πληροφορία header ότι αυτό που θα πάρει είναι μια εικόνα png
Imagepng($im,'',100); //εμφάνιση της εικόνας
ImageDestroy ($im); //ελευθερώνει τη μνήμη από την εικόνα
?>
Καλέστε το από τον browser σας για να δείτε αν δουλεύει σωστά.
Επειδή όμως σε πολλά forum δεν επιτρέπονται οι εικόνες με κατάληξη png, βάζουμε τα παρακάτω στο αρχείο .htaccess (μιλάμε πάντα για apache):
και έτσι μπορούμε να καλέσουμε το αρχείο signature.php δίνοντας στον browser signature.jpg ή gif ή png.
Τέλος πρέπει να προσθέσουμε στην υπογραφή μας τα παρακάτω (για phpbb):
Κώδικας:
[url=link για το site Μας][img]το site μας/signature.png[/img][/url]
Δείτε ένα άλλο παράδειγμα, για όσους δεν θέλουν μπλεξίματα με το phpnuke ή το phpbb. Για το αρχείο signature.php:
Κώδικας:
<?
$freestuff = file_get_contents("http://www.freestuff.gr/forums/index.php"); //τραβάμε την αρχική σελίδα του forum του freestuff
$totalmessages = "";
$totalmembers = "";
//βρίσκουμε πόσα μηνύματα υπάρχουν συνολικά
if (preg_match("/Τα μέλη μας έχουν γράψει <b>(.*)<\/b> μηνύματα/",$freestuff, $matches)) {
$totalmessages=$matches[1];
}
//βρίσκουμε πόσα μέλη υπάρχουν συνολικά
if (preg_match("/Υπάρχουν συνολικά <b>(.*)<\/b> εγγεγραμμένα/",$freestuff, $matches)) {
$totalmembers=$matches[1];
}
$image = "http://www.pramnos.net/images/freestuff.png"; // μια πρόχειρη εικόνα που έφτιαξα
$im = imagecreatefrompng($image);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageString($im, 3, 220, 2, "Site's information:", $tc);
ImageString($im, 2, 220, 25, "Total messages: $totalmessages", $tc);
ImageString($im, 2, 220, 35, "Total registered users: $totalmembers", $tc);
header("Content-Type: image/png");
Imagepng($im,'',100);
ImageDestroy ($im);
?>
και όταν καλούμε το αυτό το αρχείο από τον browser βλέπουμε το παρακάτω:
που δείχνει μερικά στοιχεία που τραβάει από την αρχική σελίδα του freestuff. _________________ [ Ικαρία | mrpc's blog | Παραπληροφόρηση ]
Δημοσιεύθηκε: 31/07/2006 14:17 Θέμα δημοσίευσης: Re: [tutorial] Δημιουργία υπογραφής με php
Αν είναι εύκολο να με βοηθήσεις λίγο..
έχω τροποιήσει των 2ο κώδικα και τον παραθέτω :
Κώδικας:
<?
$page = file_get_contents("http://animextreme.gr/site/online2.php"); //τραβάμε την σελίδα που έχει τα δεδομένα
$totalever = "";
$totalmembers = "";
//βρίσκουμε πόσα μέλη ήταν ταυτόχρονα Online
if (preg_match("/most ever online: (.*)/",$page, $matches)) {
$totalever=$matches[1];
}
//βρίσκουμε πόσα μέλη υπάρχουν συνολικά
if (preg_match("/Members: (.*)/",$page, $matches)) {
$totalmembers=$matches[1];
}
$image = "image.png"; // μια πρόχειρη εικόνα
$im = imagecreatefrompng($image);
$tc = ImageColorAllocate ($im, 0, 0, 0);
ImageString($im, 3, 220, 2, "AnimEXtreme.gr information:", $tc);
ImageString($im, 2, 220, 25, "Most ever online: $totalever", $tc);
ImageString($im, 2, 220, 35, "Total Members: $totalmembers", $tc);
header("Content-Type: image/png");
Imagepng($im,'',100);
ImageDestroy ($im);
?>
Και μου δίνει
Κώδικας:
Warning: file_get_contents(): URL file-access is disabled in the server configuration in /var/www/vhosts/animextreme.gr/httpdocs/sig/sig.php on line 2
Warning: file_get_contents(http://animextreme.gr/site/online2.php): failed to open stream: no suitable wrapper could be found in /var/www/vhosts/animextreme.gr/httpdocs/sig/sig.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/animextreme.gr/httpdocs/sig/sig.php:2) in /var/www/vhosts/animextreme.gr/httpdocs/sig/sig.php on line 19
�PNG
δλδ μετα το υπόλοιπο είναι το png σε text μορφή...
Τι γίνεται.. αν το βρεις θα με βοηθήσεις πολύ..!
Το είναι αυτό το failed to open stream: no suitable wrapper could be found" & "URL file-access is disabled in the server configuration" κάτι στον hoster μου..?
Προσθηκη στα αγαπημενα Αποστολη θεματος. Δεν μπορείτε να δημοσιεύσετε νέο Θέμα σ' αυτή τη Δ.Συζήτηση Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Δ.Συζήτησης Δεν μπορείτε να επεξεργασθείτε τις δημοσιεύσεις σας σ' αυτή τη Δ.Συζήτηση Δεν μπορείτε να διαγράψετε τις δημοσιεύσεις σας σ' αυτή τη Δ.Συζήτηση Δεν έχετε δικαίωμα ψήφου στα δημοψηφίσματα αυτής της Δ.Συζήτησης You cannot attach files in this forum You can download files in this forum