php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 12-03-2008, 10:23
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es scheint ja relativ offensichtlich zu sein, dass banner.php kein Bild ist. Ich denke, die Meldung kommt auch nicht aus dem geposteten Code.
Das ist aber mit Sicherheit nicht die einzige Fehlermeldung, die du erhälst. Wie willst du denn ein Bild aus Variablen erstellen, die du noch gar nicht definiert hast.

Um das Ganze etwas abzukürzen (und das seitenweise posten von switch()-cases zu verhindern), schau dir das mal an:
PHP-Code:
<?php
ini_set
('display_errors','1');
error_reporting(E_ALL);

mysql_connect('IP_Adresse''Login''PW') or die("Could not connect to server");
mysql_select_db('ascent') or die("Could not find database.");

if (!empty(
$_GET['char'])){
    
$sql "
        SELECT 
            c.guid, 
            c.name, 
            c.race, 
            c.class, 
            c.gender, 
            c.level, 
            c.skills, 
            c.online,
            gd.guildid, 
            gd.playerid,
            g.guildName
        FROM 
            characters c
        INNER JOIN
            guild_data gd ON gd.playerid = c.guid    
        INNER JOIN
            guilds g USING(guildId)
        WHERE 
            name = '" 
htmlspecialchars($_GET['char']) . "'";
    
$query mysql_query($sql) or die(mysql_error());
    
$row mysql_fetch_assoc($query);
    
$counter mysql_num_rows($query);

    if(
$counter == 0){
        
$guild "";
    }
    else{
        
$name $row['name'];
        
$race $row['race'];
        
$classe $row['class'];
        
$gender $row['gender'];
        
$level "Level " $row['level'];
        
$skillstring $row['skills'];
        
$online $row['online'];

        
$guild "Gilde: " $row['guildName'];

        if(
$race >= && $race <= 11){
            
$im_ar = array('''Mensch_''Orc_''Zwerg_''Nachtelf_''Untoter_'
                        
'Taure_''Gnom_''Troll_''Blutelf_''Draenei_''Error_Rasse_');
            
$img2 $im_ar[$race];
            
$im_ar = array('''Krieger_''Paladin_''Jaeger_''Schurke_''Priester_''Schamane_'
                           
'Magier_''Hexenmeister_''Druide_''Error_Klasse_');
            
$img3 $im_ar[$classe];
            
$im_ar = array('''m.png''w.png''Error_Geschlecht.png');
            
$imag4 $im_ar[$gender];
        }
        
Header("Content-Type: image/png");
        
$img ImageCreateFromJPEG ('images/' $imag2 $imag3 $imag4);
        
ImageJPEG($img);
    }
}
?>
__________________
Gruss
H2O
Mit Zitat antworten
  #17 (permalink)  
Alt 13-03-2008, 04:16
trainmen
 Registrierter Benutzer
Links : Onlinestatus : trainmen ist offline
Registriert seit: Feb 2008
Beiträge: 49
trainmen ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die Hilfe soweit

Musste es zwar noch etwas ändern aber per array das zu machen darauf wäre ich net gekommen^^.

hab aber noch ne Frage zu dem Code hier:
PHP-Code:
            c.guid
            
c.name
            
c.race
            
c.class, 
            
c.gender
            
c.level
            
c.skills
            
c.online,
            
gd.guildid
            
gd.playerid,
            
g.guildName
        FROM 
            characters c
        INNER JOIN
            guild_data gd ON gd
.playerid c.guid    
        INNER JOIN
            guilds g USING
(guildId
Was passiert da genau
Hab das so in dieser Art noch nie gesehen.
Mit Zitat antworten
  #18 (permalink)  
Alt 13-03-2008, 11:18
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ZU den JOINS gibts hier im Datenbank-Forum ein paar Erklärungen.
Zu dieser Abfrage, kurz zusammengefasst:
Es werden die genannten Daten aus den drei genannten Tabellen (da ich schreibfaul bin, habe ich Aliases - c, g, gd - genommen). Dabei wird die Verbindung zwischen jeweils zwei Tabellen über die in den JOINS genannten Bedingungen gemacht; mit USING, wenn die Attribute in beiden Tabellen gleich heissen, sonst mi ON (ON geht aber auch im ersten Fall).
__________________
Gruss
H2O
Mit Zitat antworten
  #19 (permalink)  
Alt 14-03-2008, 05:16
trainmen
 Registrierter Benutzer
Links : Onlinestatus : trainmen ist offline
Registriert seit: Feb 2008
Beiträge: 49
trainmen ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ah ok danke

Hab noch ne Frage ich bin jetzt bei der Schrift nur ich find nicht heraus wie ich den Text rechtsbündig hin bekomme. Kann mir einer sagen wie das geht?

PHP-Code:
        $yellow ImageColorAllocate($img25521888);
        
$black =  ImageColorAllocate($img000);
        
$font_1 "fonts/Van Helsing.ttf";
        
$font_2 "fonts/TektonPro-BoldCond.otf";
        
$size_1 10;
        
$size_2 19;
        
        
//Charname
        
imagefttext($img$size_20424133$black$font_1$name);
        
imagefttext($img$size_20423132$yellow$font_1$name); 
Mit Zitat antworten
  #20 (permalink)  
Alt 14-03-2008, 13:14
KickASS
 Registrierter Benutzer
Links : Onlinestatus : KickASS ist offline
Registriert seit: Feb 2005
Beiträge: 58
KickASS ist zur Zeit noch ein unbeschriebenes Blatt
KickASS eine Nachricht über ICQ schicken
Standard

PHP-Code:
if($classe == OR $classe == OR  $classe == OR $classe == OR $classe == OR $classe == OR  $classe == OR $classe == OR  $classe == 11
meinst du nicht das

PHP-Code:
 if($classe != || $classe != 10
das script übersichtilicher macht?
Mit Zitat antworten
  #21 (permalink)  
Alt 14-03-2008, 19:53
TroX
 Registrierter Benutzer
Links : Onlinestatus : TroX ist offline
Registriert seit: Dec 2006
Ort: Schweiz
Beiträge: 156
TroX ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von trainmen
Ah ok danke

Hab noch ne Frage ich bin jetzt bei der Schrift nur ich find nicht heraus wie ich den Text rechtsbündig hin bekomme. Kann mir einer sagen wie das geht?

PHP-Code:
        $yellow ImageColorAllocate($img25521888);
        
$black =  ImageColorAllocate($img000);
        
$font_1 "fonts/Van Helsing.ttf";
        
$font_2 "fonts/TektonPro-BoldCond.otf";
        
$size_1 10;
        
$size_2 19;
        
        
//Charname
        
imagefttext($img$size_20424133$black$font_1$name);
        
imagefttext($img$size_20423132$yellow$font_1$name); 
mithilfe der grösse des bildes und imagettfbbox
__________________
Freedom is a state of mind. Not a state in which we live.

troxdev.ch | animefieber
Mit Zitat antworten
  #22 (permalink)  
Alt 15-03-2008, 00:12
trainmen
 Registrierter Benutzer
Links : Onlinestatus : trainmen ist offline
Registriert seit: Feb 2008
Beiträge: 49
trainmen ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn ich das richtig versteht berrechnet imagettfbbox die 4 Positonen des Textes. Also die linke untere und obere Ecke und die rechts untere und obere Ecke, dann werden 8 Werte ausgegeben.

Aber was mach ich den dann damit der Text rechtbündig oder miittig ausgegeben wird?
Hätte einer vllt ein kleines Beispiel?
Mit Zitat antworten
  #23 (permalink)  
Alt 18-03-2008, 09:04
trainmen
 Registrierter Benutzer
Links : Onlinestatus : trainmen ist offline
Registriert seit: Feb 2008
Beiträge: 49
trainmen ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Okay das hab ich jetzt hinbekommen^^, aber jetzt bin ich beim nächsten Problem -.-. Und zwar wird nur ein neues Element im array erstellt. Ich versteh nur nicht warum. Die Varibale $skillid hat hier den Wert 171 und 182. Hier wird dann aber nur der erste Wert gespeichert.

Dies ist nur ein Teil des Code, wenn ihr mehr braucht sagt bescheid.

PHP-Code:
$beruf = array();
   

        foreach( 
$newskillstring as $key => $val )
           {
            if( 
$newskillstring[$key] != "0 0 0" or $newskillstring[$key] != "0;0;0" )
            {
                if( 
$skillType == )
                   {
                    
$subparts explode" " $newskillstring[$key] );
                    
$skillid $subparts[0];
                }
                else
                {
                    
$subparts explode";" $newskillstring[$key] );
                    
$skillid $subparts[0];
                }

                
//$skillid = $subparts[0] - 0x10000;

                
switch( $skillid )
                {
                    case 
164:
                    
$beruf[] = "professions/Schmiedekunst.png";
                    break;
                    case 
165:
                    
$beruf[] = "professions/Lederverarbeitung.png";
                    break;
                    case 
171:
                    
$beruf[] = "professions/Alchemie.png";
                    break;
                    case 
182:
                    
$beruf[] = "professions/Kraeuterkunde.png";
                    break;
                    case 
186:
                    
$beruf[] = "professions/Bergbau.png";
                    break;
                    case 
197:
                    
$beruf[] = "professions/Schneiderei.png";
                    break;
                    case 
202:
                    
$beruf[] = "professions/Ingenieurkunst.png";
                    break;
                    case 
333:
                    
$beruf[] = "professions/Verzauberungskunst.png";
                    break;
                    case 
393:
                    
$beruf[] = "professions/Kürschnnerei.png";
                    break;
                    case 
755:
                    
$beruf[] = "professions/Juwelenschleifen.png";
                    break;
                    default:
                    
$proficon "";
        }
  
$beruf_00 $beruf[0];
  
$beruf_01 $beruf[1];
        
    
$beruf_0 imagecreatefrompng($beruf_00);
     
imagecopy($img$beruf_0130130002222);
         
    
$beruf_1 imagecreatefrompng($beruf_01);
     
imagecopy($img$beruf_1130130002222);

         

      }

      }

         
ImagePNG($img);

?> 
Mit Zitat antworten
  #24 (permalink)  
Alt 18-03-2008, 09:40
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bitte brich mal deinen früher geschriebenen Code um, horizontal scrollen ist lästig!

Nun aber zu deinem Problem:
Entscheidend ist natürlich, was in $newskillstring steht, das entscheidet, wie oft die Schleife durchlaufen wird, und auch was in $skillid steht.
__________________
Gruss
H2O
Mit Zitat antworten
  #25 (permalink)  
Alt 18-03-2008, 11:29
trainmen
 Registrierter Benutzer
Links : Onlinestatus : trainmen ist offline
Registriert seit: Feb 2008
Beiträge: 49
trainmen ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von H2O
Bitte brich mal deinen früher geschriebenen Code um, horizontal scrollen ist lästig!


Wenn ich das richtig seh kann ich da nicht viel machen weil "KickASS" einen langen PHP Code hier hat

Zitat:
Original geschrieben von H2O
Nun aber zu deinem Problem:
Entscheidend ist natürlich, was in $newskillstring steht, das entscheidet, wie oft die Schleife durchlaufen wird, und auch was in $skillid steht.
Hm okay, dann wird der teil woll auch wichtig seien:


$skillstring = 171;13;75;182;1;75;

PHP-Code:
        
      
if( stristr$skillstring ";" ) )
        {
            
$skillType 1// new type
            
$allparts explode";" $skillstring );
        }
           else
        {
               
$skillType 0// old type
               
$allparts explode" " $skillstring );
        }

        
$professions = array( 164 165 171 182 186 197 202 333 393 755 );
        
$badprofessions = array( 65700657016570765718657226573365738
658696592966291 );
        
$parts = array();
    
$newskillstring = array();
    


    
        for( 
$i 0$i count$allparts ) ; $i += )
        {
            
$parts[$i] = $allparts[$i];
      
            if( !isset( 
$allparts[$i+1] ) )
                
$parts[$i+1] = 0;
            else
                
$parts[$i+1] = $allparts[$i+1];
        
        
            if( !isset( 
$allparts[$i+2] ) )
                
$parts[$i+2] = 0;
            else
                
$parts[$i+2] = $allparts[$i+2];
        
        

            if( 
$skillType == )
            {
                
$newskillstring[$i] = str_replace"\n" "" $parts[$i] . 
$parts[$i+1] . " " $parts[$i+2] );
            }
            else
            {
                
$newskillstring[$i] = str_replace"\n" "" $parts[$i] . ";
$parts[$i+1] . ";" $parts[$i+2] );
            }
    }
   
   
   
$beruf = array();
   

        foreach( 
$newskillstring as $key => $val )
           {
            if( 
$newskillstring[$key] != "0 0 0" or $newskillstring[$key] != "0;0;0" )
            {
                if( 
$skillType == )
                   {
                    
$subparts explode" " $newskillstring[$key] );
                    
$skillid $subparts[0];
                }
                else
                {
                    
$subparts explode";" $newskillstring[$key] );
                    
$skillid $subparts[0];
                }

                
//$skillid = $subparts[0] - 0x10000;

                
switch( $skillid )
                {
                    case 
164:
                    
$beruf[] = "professions/Schmiedekunst.png";
                    break;
                    case 
165:
                    
$beruf[] = "professions/Lederverarbeitung.png";
                    break;
                    case 
171:
                    
$beruf[] = "professions/Alchemie.png";
                    break;
                    case 
182:
                    
$beruf[] = "professions/Kraeuterkunde.png";
                    break;
                    case 
186:
                    
$beruf[] = "professions/Bergbau.png";
                    break;
                    case 
197:
                    
$beruf[] = "professions/Schneiderei.png";
                    break;
                    case 
202:
                    
$beruf[] = "professions/Ingenieurkunst.png";
                    break;
                    case 
333:
                    
$beruf[] = "professions/Verzauberungskunst.png";
                    break;
                    case 
393:
                    
$beruf[] = "professions/Kürschnnerei.png";
                    break;
                    case 
755:
                    
$beruf[] = "professions/Juwelenschleifen.png";
                    break;
                    default:
                    
$proficon "";
        }

  
$beruf_00 $beruf[0];
  
$beruf_01 $beruf[1];
        
    
$beruf_0 imagecreatefrompng($beruf_00);
     
imagecopy($img$beruf_0130130002222);
         
    
$beruf_1 imagecreatefrompng($beruf_01);
     
imagecopy($img$beruf_1130130002222);

         

      }

      }

         
ImagePNG($img); 

Irgendwie seh ich aber den Fehler nicht
Mit Zitat antworten
  #26 (permalink)  
Alt 18-03-2008, 12:46
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich würde dir empfehlen, in einem ruhigen Agenblick dich einmal etwas mit dem Einrücken von Code zu beschäftigen.
Ich habs jetzt ausnahmsweise mal halbwegs gemacht, weil ich es sonst schlichtweg nicht lesen kann. Dabei habe ich die Anmerkungen direkt als Kommentar in den Code geschrieben.
PHP-Code:
<?php
if (stristr$skillstring ";" )){
    
$skillType 1// new type
    
$allparts explode";" $skillstring );
}
else{
    
$skillType 0// old type
    
$allparts explode" " $skillstring );
}

$professions = array( 164 165 171 182 186 197 202 333 393 755 );
$badprofessions = array( 65700657016570765718657226573365738658696592966291 );
$parts = array();
$newskillstring = array();

for (
$i 0$i count($allparts) ; $i += 3){
    
$parts[$i] = $allparts[$i];
      
    if (!isset( 
$allparts[$i 1] ) ){
        
$parts[$i 1] = 0;
    }
    else{
        
$parts[$i 1] = $allparts[$i 1];
    }
    if (!isset( 
$allparts[$i+2] ) ){
        
$parts[$i 2] = 0;
    }
    else{
        
$parts[$i 2] = $allparts[$i 2];
    }
    if (
$skillType == ){
        
$newskillstring[$i] = str_replace("\n" "" $parts[$i] . " " $parts[$i 1] . " " $parts[$i 2] );
    }
    else
    {
        
$newskillstring[$i] = str_replace"\n" "" $parts[$i] . ";" $parts[$i+1] . ";" $parts[$i+2] );
    }
}

$beruf = array();
foreach (
$newskillstring as $key => $val ){
    if (
$newskillstring[$key] != "0 0 0" and $newskillstring[$key] != "0;0;0" ){ // AND-Verknüpfung!, OR ist immer wahr
        
if( $skillType == ){
            
$subparts explode" " $newskillstring[$key] );
            
$skillid $subparts[0];
        }
        else{
            
$subparts explode";" $newskillstring[$key] );
            
$skillid $subparts[0];
        }
                
//$skillid = $subparts[0] - 0x10000;

        
switch ($skillid ){
            case 
164:
                
$beruf[] = "professions/Schmiedekunst.png";
                break;
            case 
165:
                
$beruf[] = "professions/Lederverarbeitung.png";
                break;
            case 
171:
                
$beruf[] = "professions/Alchemie.png";
                break;
            case 
182:
                
$beruf[] = "professions/Kraeuterkunde.png";
                break;
            case 
186:
                
$beruf[] = "professions/Bergbau.png";
                break;
            case 
197:
                
$beruf[] = "professions/Schneiderei.png";
                break;
            case 
202:
                
$beruf[] = "professions/Ingenieurkunst.png";
                break;
            case 
333:
                
$beruf[] = "professions/Verzauberungskunst.png";
                break;
            case 
393:
                
$beruf[] = "professions/Kürschnnerei.png";
                break;
            case 
755:
                
$beruf[] = "professions/Juwelenschleifen.png";
                 break;
            default:
                
$proficon "";
        }
        
/*     Entweder Bilder einzen hier ausgeben, benötigt dann eigentlich auch keinen Array:
**
**        $beruf_0 = imagecreatefrompng($beruf[0]);
**        imagecopy($img, $beruf_0, 130, 130, 0, 0, 22, 22);
**        ImagePNG($img);    
*/
// BEGIN
        
$beruf_00 $beruf[0];        // es wird pro Durchlauf natürlich nur ein Beruf ausgewählt
        
$beruf_01 $beruf[1];        
 
        
$beruf_0 imagecreatefrompng($beruf_00);
        
imagecopy($img$beruf_0130130002222);
         
        
$beruf_1 imagecreatefrompng($beruf_01);            // siehe oben
        
imagecopy($img$beruf_1130130002222);
// END
    
}
}
/* Oder hier neue Schleife:
**
** foreach($beruf as $bild)
** $beruf_0 = imagecreatefrompng($bild);
** imagecopy($img, $beruf_0, 130, 130, 0, 0, 22, 22);
** ImagePNG($img);
*/        
?>
Allse zwischen BEGIN und END wird dann mit der einen oder andern Version ersetzt.
Und so nebenbei gesagt, das ganze Handling ist reichlich kompliziert. Dieses explode()/implode() der gleichen Daten würde sich bei einer vernüftigen Datenstruktur wahrscheinlich vermeiden lassen. Das müsste aber dort geschehen, wo $skillstring herkommt.
Aber beitte einmal zuerst selber überlegen und das dann nicht gleich wieder als neue Frage posten.
__________________
Gruss
H2O
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:33 Uhr.