• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[PHP]Sygnaturka w informacjach postaci

Status
Not open for further replies.

Cziquita

Rasta Lion!
Joined
Nov 9, 2008
Messages
54
Reaction score
1
Location
Poland!
Mam najnowszy acc Maker by Gesior i nie działa sygnatura w informacjach postaci, zamiast imienia w linku tworzy id postaci :/
przykład:
powinno być: http://localhost/signature.php?character=cziquita&image=1
a jest: http://localhost/signature.php?character=3&image=1
Skrypt:
PHP:
// Signature by makr0mango.
function randomSignature( $folder ) {
    $files = scandir ( "./$folder/" );
    $signature = array();
    
    foreach ( $files as $file ):
        if ( substr ( strtolower ( $file ) , -4 ) == ".png" )
            $signature[] = $file;
    endforeach;
    
    return rand(0,count($signature)-1);
}
$random = randomSignature("signatures");
$main_content .= '<br><TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Signature</B></TD></TR>';
$main_content .= "<TR BGCOLOR=".$config['site']['darkborder']."><TD WIDTH=20%>Forum Link:</TD><TD><input type='text' size='75' onclick='this.select();' value='[url=http://" . $_SERVER['HTTP_HOST'] . "/?subtopic=characters&name=" . $name . "][IMG]http://" . $_SERVER['HTTP_HOST'] . "/signature.php?character=" . $name . "&image=" . $random . "[/IMG][/url]' /></TD></TR>";
$main_content .= "<TR BGCOLOR=".$config['site']['lightborder']."><TD WIDTH=20%>Direct Link:</TD><TD><input type='text' size='60' onclick='this.select();' value='http://" . $_SERVER['HTTP_HOST'] . "/signature.php?character=" . $name . "&image=" . $random . "' /></TD></TR>";
$main_content .= "<TR BGCOLOR=".$config['site']['darkborder']."><TD COLSPAN='2' style='text-align: center;'><a href='http://" . $_SERVER['HTTP_HOST'] . "/?subtopic=characters&name=" . $name . "'><img src='signature.php?character=" . $name . "&image=" . $random . "' /></a></TD></TR>";
$main_content .= '</TD></TR></TABLE>';
// Signature by makr0mango.
Da się podpowiedzieć co przerobić ? :) Bawiłem się i próbowałem poprzerabiać trochę ale nic z tego :/
 
Sorry, ale ja u siebie na localhoscie tego nie mam, wiec nie sprawdze.
 
Musisz tez posiadać drugi plik signature.php
Bo ten co masz to signatures.php
Łap:
PHP:
<?PHP

	class signature
    {
    	
    	# v-- CONFIGURATION BELOW --v #
    	var $config = array
	    (
	        'database'    => array ( "localhost" , "root" , "PASSWORD" , "DATABASE" ),
	        'vocations'   => array ( "No Vocation" , "Sorcerer" , "Druid" , "Paladin" , "Knight" , "Master Sorcerer" , "Elder Druid" , "Royal Paladin" , "Elite Knight" ),
	        'towns'       => array ( 1 => "Ab'dendriel", 2 => "Kazordoon", 3 => "Thais", 4 => "Venore", 5 => "Carlin", 6 => 'Ankrahmun', 7 => 'Darashia', 8 => 'Port Hope', 9 => 'Edron', 10 => 'GM Island', 11 => 'Greenshore', 12 => 'Cormaya', 13 => 'Rookgaard', 14 => 'Liberty Bay', 15 => 'Liberty Bay', 16 => 'Svargrond', 19 => 'Yalahar' ),
	        'groups'      => array ( 2 => "Tutor" , 3 => "Senior Tutor" , 4 => "Gamemaster" , 5 => "Community Manager" , 6 => "God" ),
	        'hidechars'   => array ( 'Account Manager' , 'Rook Sample' , 'Sorcerer Sample' , 'Druid Sample' , 'Paladin Sample' , 'Knight Sample' ),
	        'backgrounds' => array ( 'signatures/blue' , 'signatures/red' , 'signatures/green' ),
	        'color'       => "#FFFFFF",
	        'statuscolor' => array ( "#358f0d" /* online */ , "#c40808" /* offline */ ),
	        'font'        => "signatures/arial.ttf",
	        'size'        => array ( 2 /* without font */ , 8 /* with font */ )
	    );
    	# ^-- CONFIGURATION ABOVE --^ #
	    
        
        
        
        
        // Database functions.
        function connectDatabase ( $database ) { @mysql_connect ( $database[0] , $database[1] , $database[2] ); @mysql_select_db ( $database[3] ); }
        function query ( $query ) { return @mysql_query ( $query ); }
        function fetchArray ( $query ) { return @mysql_fetch_array ( $query ); }
        function secure ( $query ) { return @mysql_real_escape_string ( $query ); }
        function numRows ( $query ) { return @mysql_num_rows ( $query ); }
		
		
        function convertHex ( $hex )
		{
			
			$hex   = ereg_replace ( "#" , "" , $hex );
			$color = array();
		
			if ( strlen ( $hex ) == 6 ):
			
				$color['r'] = hexdec ( substr ( $hex , 0 , 2 ) );
				$color['g'] = hexdec ( substr ( $hex , 2 , 2 ) );
				$color['b'] = hexdec ( substr ( $hex , 4 , 2 ) );
			
			endif;
			
			return $color;
			
		}


        // Signature functions.
        function character ( $character )
        {
            
            // Define presets.
            $query     = "SELECT `id` , `account_id` , `group_id` , `name` , `sex` , `promotion` , `vocation` , `town_id` , `rank_id` , `online` , `level` , `lastlogin` FROM `players` WHERE `name` = '{$character}'";
            $fetchRow  = $this -> fetchArray ( $this -> query ( $query ) );
            $numRows   = $this -> numRows    ( $this -> query ( $query ) );
            $rank      = $this -> fetchArray ( $this -> query ( "SELECT `guild_id` , `name` FROM `guild_ranks` WHERE `id` = '{$fetchRow[rank_id]}'" ) );
            $guild     = $this -> fetchArray ( $this -> query ( "SELECT `name` FROM `guilds` WHERE `id` = '{$rank[guild_id]}'" ) );
            $premium   = $this -> fetchArray ( $this -> query ( "SELECT `premdays` FROM `accounts` WHERE `id` = '{$fetchRow[account_id]}'" ) );
            
            // Define certain arrays into one variable.
            $arrays['name']		= ( addslashes ( $fetchRow["name"] ) );
            $arrays['status']   = ( $fetchRow['online'] == 1 ? ' ONLINE' : 'OFFLINE' );
            $arrays['gender']   = ( $fetchRow['sex'] == 1 ? 'Male' : 'Female' );
            $arrays['vocation'] = ( $fetchRow['group_id'] < 2 ) ? "Profession: " . ( $fetchRow['promotion'] != 0 ? $this -> config['vocations'][$fetchRow['vocation'] + ( 4 * $fetchRow['promotion'] )] : $this -> config['vocations'][$fetchRow['vocation']] ) . "\q" : NULL;
            $arrays['guild']    = ( ( $fetchRow['rank_id'] > 0 and $fetchRow['group_id'] < 2 ) ? "Guild: " . ( $fetchRow['sex'] == 1 ? 'He' : 'She' ) . " is " . $rank['name'] . " of the " . $guild['name'] . "\q" : NULL );
            $arrays['position'] = ( $fetchRow['group_id'] > 1 ? "Position: " . $this -> config['groups'][$fetchRow['group_id']] . "\q" : NULL );
			$arrays['lastlogin']= ( $fetchRow['lastlogin'] != 0 ? date ( "M d Y, H:i:s" , $fetchRow['lastlogin'] ) : 'Never logged in' );
			$arrays['premium']  = ( ( $fetchRow['group_id'] < 2 ) ? $premium['premdays'] > 0 ? '(Premium Account)' : '(Free Account)' : NULL );
            $arrays['level']    = ( $fetchRow['group_id'] < 2 ? "Level: " . $fetchRow['level'] . "\q" : NULL );
            
            // Showable fields (\q equals new line, had to create my own shortcut as I clear all whitespaces further down in the script).
            $return = "
				Name: 		{$arrays[name]} 	{$arrays[premium]}			\q
				Sex: 		{$arrays[gender]}								\q
							{$arrays[level]}
							{$arrays[vocation]}
				Residence: 	{$this -> config[towns][$fetchRow[town_id]]}	\q
							{$arrays[guild]}
							{$arrays[position]}
				Last Login: {$arrays[lastlogin]}
			";
			
			// Make certain fields bold.
			$bolds = "Name: \nSex: \n" . ( $fetchRow['group_id'] < 2 ? "Level: \n" : NULL ) . ( ( $fetchRow['group_id'] < 2 ) ? "Profession: \n" : NULL ) . "Residence: \n" . ( ( $fetchRow['rank_id'] > 0 and $fetchRow['group_id'] < 2 ) ? "Guild: \n" : NULL ) . ( $fetchRow['group_id'] > 1 ? "Position: \n" : NULL ) . "Last Login:";
			
			// Return output.
            if ( $numRows == 1 and !in_array ( $fetchRow['name'] , $this -> config['hidechars'] ) )
                return $return . "|||" . $bolds . "|||" . $arrays['status'];
            else
                return "A character with that name does not exist.";
            
        }
        
        // Create a function to generate the signature.
        function generate ( $character , $background )
        {
            
	    	// Connect to the database.
	    	$this -> connectDatabase ( $this -> config['database'] );
	        $split = explode ( "|||" , $this -> character ( $this -> secure ( $character ) ) );
	        
	        if ( strtolower ( substr ( $split[2] , -5 , 1 ) ) == 'n' )
	        	$statuscolor = $this -> convertHex ( $this -> config['statuscolor'][0] );
	        else
	        	$statuscolor = $this -> convertHex ( $this -> config['statuscolor'][1] );
	    
	    	header ( "Content-type: image/png" );
	        
	        // Check if the background exists, if not - create one.
	        if ( file_exists ( "{$this -> config[backgrounds][$background]}.png" ) != 1 ):
			                  
	            $image = imagecreatetruecolor ( 500 , 120 );
	            imagefilledrectangle ( $image , 0 , 0 , 500 , 120 , imagecolorallocate ( $image , 255 , 255 , 255 ) );
	            $color = imagecolorallocate ( $image , 0 , 0 , 0 );
	            imagesetthickness ( $image , 1 );
	            imagerectangle ( $image , 0 , 0 , 499 , 119 , $color );
	            $split[0] = "The requested image does not exist.";
	            $split[1] = NULL;
	            
	        else:
	        
	            $image = imagecreatefrompng ( $this -> config['backgrounds'][$background] . ".png" );
	        	$color	 = $this -> convertHex ( $this -> config['color'] );
	           	
	        endif;
	        
	        $content = explode ( "\q" , str_replace ( array ( "\n" , "\r" , "\t" , "\o" , "\xOB" ) , '' , $split[0] ) );
	        $bolds   = explode ( "\n" , str_replace ( array ( "\r" , "\t" , "\o" , "\xOB" ) , '' , $split[1] ) );
	        
	        // Print text.
	        if ( $this -> config['font'] != "" ):
		        for ( $i = 0; $i <= count ( $content ); $i++ ):
		        	$o = ( $i == 0 ) ? 2.4 : $i + 2.4;
		        	imagettftext ( $image , $this -> config['size'][1] , 0 , 7, 12 * $o , imagecolorallocate ( $image , $color['r'] , $color['g'] , $color['b'] ) , "./{$this -> config[font]}" , "    " . $content[$i] );
				endfor;
				for ( $i = 0; $i <= count ( $bolds ); $i++ ):
		        	$o = ( $i == 0 ) ? 2.4 : $i + 2.4;
		        	imagettftext ( $image , $this -> config['size'][1] , 0 , 8, 12 * $o , imagecolorallocate ( $image , $color['r'] , $color['g'] , $color['b'] ) , "./{$this -> config[font]}" , "    " . $bolds[$i] );
				endfor;
				if ( $split[0] != "The requested image does not exist." ):
					imagettftext ( $image , $this -> config['size'][1] , 0 , 250 , 10+round ( ( imagesy ( $image ) / 2 ) - ( imagefontheight ( $this -> config['size'][1] ) / 2 ) ) , imagecolorallocate ( $image , 0 , 0 , 0 ) , "./{$this -> config[font]}" , $split[2] );
					imagettftext ( $image , $this -> config['size'][1] , 0 , 249 , 10+round ( ( imagesy ( $image ) / 2 ) - ( imagefontheight ( $this -> config['size'][1] ) / 2 ) )-1 , imagecolorallocate ( $image , $statuscolor['r'] , $statuscolor['g'] , $statuscolor['b'] ) , "./{$this -> config[font]}" , $split[2] );
				endif;
			else:
				for ( $i = 0; $i <= count ( $content ); $i++ ):
					$o = ( $i == 0 ) ? 1.5 : $i + 1.5;
					imagestring ( $image, $this -> config['size'][0] , -4, 12 * $o, "    " . $content[$i], imagecolorallocate ( $image , $color['r'] , $color['g'] , $color['b'] ) );
				endfor;
				for ( $i = 0; $i <= count ( $bolds ); $i++ ):
					$o = ( $i == 0 ) ? 1.5 : $i + 1.5;
					imagestring ( $image, $this -> config['size'][0] , -3, 12 * $o, "    " . $bolds[$i], imagecolorallocate ( $image , $color['r'] , $color['g'] , $color['b'] ) );
				endfor;
				if ( $split[0] != "The requested image does not exist." ):
					imagestring ( $image, $this -> config['size'][0] , 250, round ( ( imagesy ( $image ) / 2 ) - ( imagefontheight ( $this -> config['size'][1] ) / 2 ) )-1, $split[2], imagecolorallocate ( $image , 0 , 0 , 0 ) );
		        	imagestring ( $image, $this -> config['size'][0] , 249, round ( ( imagesy ( $image ) / 2 ) - ( imagefontheight ( $this -> config['size'][1] ) / 2 ) )-2, $split[2], imagecolorallocate ( $image , $statuscolor['r'] , $statuscolor['g'] , $statuscolor['b'] ) );
				endif;
			endif;
	            
	        imagepng ( $image );
	        imagedestroy ( $image );
        	
        }
        
    }
    
    
    
    
    $signature = new signature();
    
	if ( !empty ( $_GET ) ):
	
		$signature -> generate ( $_GET['character'] , $_GET['image'] );
		
	endif;
	
?>
Zwróć uwagę na
PHP:
	        'database'    => array ( "localhost" , "root" , "PASSWORD" , "DATABASE" ),
 
xD mam ten 2 plik i tam gdzie tworzy się własną sygnaturkę wszystko jest ok, ale w info postaci nie działa :(
po za tym to nie jest plik signatures.php tylko characters.php
 

Attachments

Last edited:
zobacz czy masz tak samo "characters.php"
'signature.php?character=" .$player->getName(). "&image=" . $random . "'
'" . $_SERVER['HTTP_HOST'] . "/signature.php?character=" .$player->getName(). "&image=" . $random . "'
 
@up
Ziomeq dzięki :) REP leci
a co do widnet: jakoś wolę poczekać :)
 
Status
Not open for further replies.
Back
Top