Name mit ' in Datenbank schreiben

Sorgonas

Quest-Mob
Mitglied seit
30.03.2010
Beiträge
69
Reaktionspunkte
0
Hallo an alle, hab nen Problem mit einem Namen der abgefragt wird.

dadurch das in meinem Fall der Name vom Rücken "Yo'lon" heisst, bekomme ich folgende Fehlermeldung:


 

DB-Serververbindung hergestellt! Ung�ltige Abfrage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lon
Gegenstandsstufe: 616


 

wie bekomme ich es hin, das es so richtig in die DB geschieben wird, die Zeile dazu sieht so aus (fals mehr code benötigt wird, einfach bescheid geben):

Code:
$ruckenData = (empty($achars['items']['back']['icon']))?"Nichts angelegt":$achars['items']['back']['name'].'<br />Gegenstandsstufe: '.$achars['items']['back']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
 
Zuletzt bearbeitet von einem Moderator:
ok, habe das problem gelöst mit

Code:
.mysql_real_escape_string(meintext).
 
Du solltest generell alle Strings vorher behandeln, bevor du sie in die Datenbank pumpst, nicht zuletzt aus Sicherheitsgründen.

Idealerweise führst du Querys nur mit Prepared statements aus. :-)
 
Das mit den Parametern in SQL-Statement hatte ich dir doch schon in dem anderem Thread empfohlen und sogar auf die Doku-Seite von php verwiesen:
http://php.net/manual/de/function.mysql-query.php

Dachte du hattest damit auf das query verwiesen, das ich das ändern sollte, sorry wusste nicht das du das damit gemeint hattest.

 

ist der code denn so ok? oder würdet ihr hier noch was dran ändern bzw ist da noch nen fehler drin?

Code:
<?php
// Konfiguration
$apiKey = 'MEIN API CODE'; // Anpassen!
$guildRealm = 'Lothar'; // Auf welchem Server ist Gilde registriert?
$guild = 'Familia de Lux'; // Name der Gilde

$apiUrl = 'https://eu.api.battle.net/wow/';

$cacheFile = dirname(__FILE__).'/cache.sth'; // Speicherort der Cache-Datei
$cacheTimeout = 1; // Cache-Timeout in Sekunden

$characterFields = array('talents', 'professions', 'items'); // Welche Felder der Chars werden benötigt?

// Cache wird nur aufgebaut wenn er noch nicht exisitiert oder wenn der Timeout abgelaufen ist
        {
            
       
    $guildData = array();

// Daten über die Gilde samt Mitglieder holen - hier sind alle Mitglieder drin unabhängig vom Realm
$query = array(
    'locale' => 'de_DE',
    'fields' => 'members',
    'apikey' => $apiKey
);
$url = $apiUrl.'guild/'.rawurlencode($guildRealm).'/'.rawurlencode($guild).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$guildData = json_decode($response, true);

// Jetzt alle Chars anhand der Member laden
$chars = array();
$charsLoaded = 0; // Zähler

//Verbindung der DB herstellen
$datenbank = mysql_connect('localhost','BENUTZER','PASSWORT');

if($datenbank)
echo('DB-Serververbindung hergestellt! ');
else
die('DB-Serververbindung fehlgeschlagen! ');

// Datenbank auswählen
mysql_select_db('usr_web22_4', $datenbank);
    

//Daten in DB-Gildenliste löschen
$loescheng = "TRUNCATE wy8b2_gildenliste";
mysql_query ($loescheng);

//Daten in DB-Mitgliederliste löschen
$loeschen = "TRUNCATE wy8b2_mitgliederliste";
mysql_query ($loeschen);

mysql_query("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER SET 'utf8'");
 //Daten in DB-Gildenliste speichern (json_encode($aGuildData))
$sqlg_befehl = " INSERT INTO wy8b2_gildenliste (gname, grealm, glevel, gmember, gerfolg, datum) VALUES
(
'" . $guildData['name'] . "',
'" . $guildData['realm'] . "',
'" . $guildData['level'] . "',
'" . count($guildData['members']) . "',
'" . $guildData['achievementPoints'] . "',
'" . time() . "'
)";

$resultg = mysql_query($sqlg_befehl);
if (!$resultg) {
    $message  = 'Ungültige Abfrage: ' . mysql_error() . "\n";
    $message .= 'Gesamte Abfrage: ' . $query;
    die($message);
}
    // Testausgabe


    foreach($guildData['members'] as $member)

    {
    $memberChar = $member['character'];

// Aber nicht vom oben konfigurierten Gilden-Realm sondern vom Realm der beim Member hinterlegt ist
$query = array(
    'locale' => 'de_DE',
    'fields' => 'talents,professions,items',
    'apikey' => $apiKey
);
$url = $apiUrl.'character/'.rawurlencode($memberChar['realm']).'/'.urlencode(html_entity_decode($memberChar['name'], ENT_COMPAT, 'UTF-8')).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$chars[] = json_decode($response, true);

    // Zählen
	$charsLoaded++;
	if($charsLoaded === 9) {	// Nach 10 Charakteren ...
		$charsLoaded = 0;	// ... Zähler zurücksetzen
		sleep(1);		// ... 1 Sekunde Pause
	}
}
$guildData['members'][] = json_decode($response, true);
       $guildData['characters'] = $chars;
    
    foreach($chars as $achars){
        
    
$aClassNames = array('<img src="warrior.jpg" />', '<img src="paladin.jpg" />', '<img src="hunter.jpg" />', '<img src="rogue.jpg" />', '<img src="priest.jpg" />', '<img src="deathknight.jpg" />', '<img src="shaman.jpg" />', '<img src="mage.jpg" />', '<img src="warlock.jpg" />', '<img src="monk.jpg" />', '<img src="druid.jpg" />');

$charName = (empty($achars['name']))?"Char ist unter LvL 10":''.htmlentities($achars['name'], ENT_COMPAT, 'UTF-8').'';
$bilIcon = (empty($achars['thumbnail']))?'<img src="http://eu.battle.net//wow/static/images/2d/profilemain/race/4-1.jpg" width="200px" height="200px" />':'<img src="http://eu.battle.net/static-render/eu/'.$achars['thumbnail'].'" width="200px" height="200px" />';
$bilIcon = str_replace("avatar","profilemain",$bilIcon);
$talIcon1 = (empty($achars['talents'][1]['spec']['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['talents'][1]['spec']['icon'] . '.jpg">';
$talText1 = ($achars['talents'][1]['selected'])?'<font color="#00FF00"><b><u>'.$achars['talents'][1]['spec']['name'].'</u></b></font>':$achars['talents'][1]['spec']['name'];
$talIcon2 = (empty($achars['talents'][0]['spec']['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['talents'][0]['spec']['icon'] . '.jpg">';
$talText2 = ($achars['talents'][0]['selected'])?'<font color="#00FF00"><b><u>'.$achars['talents'][0]['spec']['name'].'</u></b></font>':$achars['talents'][0]['spec']['name'];
$berIcon1 = (empty($achars['professions']['primary'][0]['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/'.$achars['professions']['primary'][0]['icon'].'.jpg">';
$firber = $berIcon1.$achars['professions']['primary'][0]['rank'];
$berIcon2 = (empty($achars['professions']['primary'][1]['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/'.$achars['professions']['primary'][1]['icon'].'.jpg">';
$secber = $berIcon2.$achars['professions']['primary'][1]['rank'];

$kopfIcon = (empty($achars['items']['head']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['head']['icon'] . '.jpg">';
$kopfData = (empty($achars['items']['head']['icon']))?"Nichts angelegt":$achars['items']['head']['name'].'<br />Gegenstandsstufe: '.$achars['items']['head']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$kopf = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['head']['id'].'" class="tooltip">'.$kopfIcon.'<span>'.$kopfData.'</span></a>';
$halsIcon = (empty($achars['items']['neck']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['neck']['icon'] . '.jpg">';
$halsData = (empty($achars['items']['neck']['icon']))?"Nichts angelegt":$achars['items']['neck']['name'].'<br />Gegenstandsstufe: '.$achars['items']['neck']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$hals = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['neck']['id'].'" class="tooltip">'.$halsIcon.'<span>'.$halsData.'</span></a>';
$schulterIcon = (empty($achars['items']['shoulder']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['shoulder']['icon'] . '.jpg">';
$schulterData = (empty($achars['items']['shoulder']['icon']))?"Nichts angelegt":$achars['items']['shoulder']['name'].'<br />Gegenstandsstufe: '.$achars['items']['shoulder']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$schulter = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['shoulder']['id'].'" class="tooltip">'.$schulterIcon.'<span>'.$schulterData.'</span></a>';
$ruckenIcon = (empty($achars['items']['back']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['back']['icon'] . '.jpg">';
$ruckenData = (empty($achars['items']['back']['icon']))?"Nichts angelegt":$achars['items']['back']['name'].'<br />Gegenstandsstufe: '.$achars['items']['back']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$rucken = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['back']['id'].'" class="tooltip">'.$ruckenIcon.'<span>'.$ruckenData.'</span></a>';
$brustIcon = (empty($achars['items']['chest']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['chest']['icon'] . '.jpg">';
$brustData = (empty($achars['items']['chest']['icon']))?"Nichts angelegt":$achars['items']['chest']['name'].'<br />Gegenstandsstufe: '.$achars['items']['chest']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$brust = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['chest']['id'].'" class="tooltip">'.$brustIcon.'<span>'.$brustData.'</span></a>';
$hemdIcon = (empty($achars['items']['shirt']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['shirt']['icon'] . '.jpg">';
$hemdData = (empty($achars['items']['shirt']['icon']))?"Nichts angelegt":$achars['items']['shirt']['name'].'<br />Gegenstandsstufe: '.$achars['items']['shirt']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$hemd = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['shirt']['id'].'" class="tooltip">'.$hemdIcon.'<span>'.$hemdData.'</span></a>';
$wappenIcon = (empty($achars['items']['tabard']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['tabard']['icon'] . '.jpg">';
$wappenData = (empty($achars['items']['tabard']['icon']))?"Nichts angelegt":$achars['items']['tabard']['name'].'<br />Gegenstandsstufe: '.$achars['items']['tabard']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$wappen = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['tabard']['id'].'" class="tooltip">'.$wappenIcon.'<span>'.$wappenData.'</span></a>';
$gelenkIcon = (empty($achars['items']['wrist']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['wrist']['icon'] . '.jpg">';
$gelenkData = (empty($achars['items']['wrist']['icon']))?"Nichts angelegt":$achars['items']['wrist']['name'].'<br />Gegenstandsstufe: '.$achars['items']['wrist']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$gelenk = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['wrist']['id'].'" class="tooltip">'.$gelenkIcon.'<span>'.$gelenkData.'</span></a>';

$handIcon = (empty($achars['items']['hands']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['hands']['icon'] . '.jpg">';
$handData = (empty($achars['items']['hands']['icon']))?"Nichts angelegt":$achars['items']['hands']['name'].'<br />Gegenstandsstufe: '.$achars['items']['hands']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$hand = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['hands']['id'].'" class="tooltip">'.$handIcon.'<span>'.$handData.'</span></a>';
$gurtelIcon = (empty($achars['items']['waist']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['waist']['icon'] . '.jpg">';
$gurtelData = (empty($achars['items']['waist']['icon']))?"Nichts angelegt":$achars['items']['waist']['name'].'<br />Gegenstandsstufe: '.$achars['items']['waist']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$gurtel = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['waist']['id'].'" class="tooltip">'.$gurtelIcon.'<span>'.$gurtelData.'</span></a>';
$hoseIcon = (empty($achars['items']['legs']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['legs']['icon'] . '.jpg">';
$hoseData = (empty($achars['items']['legs']['icon']))?"Nichts angelegt":$achars['items']['legs']['name'].'<br />Gegenstandsstufe: '.$achars['items']['legs']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$hose = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['legs']['id'].'" class="tooltip">'.$hoseIcon.'<span>'.$hoseData.'</span></a>';
$fusseIcon = (empty($achars['items']['feet']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['feet']['icon'] . '.jpg">';
$fusseData = (empty($achars['items']['feet']['icon']))?"Nichts angelegt":$achars['items']['feet']['name'].'<br />Gegenstandsstufe: '.$achars['items']['feet']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$fusse = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['feet']['id'].'" class="tooltip">'.$fusseIcon.'<span>'.$fusseData.'</span></a>';
$ring1Icon = (empty($achars['items']['finger1']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['finger1']['icon'] . '.jpg">';
$ring1Data = (empty($achars['items']['finger1']['icon']))?"Nichts angelegt":$achars['items']['finger1']['name'].'<br />Gegenstandsstufe: '.$achars['items']['finger1']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$ring1 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['finger1']['id'].'" class="tooltip">'.$ring1Icon.'<span>'.$ring1Data.'</span></a>';
$ring2Icon = (empty($achars['items']['finger2']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['finger2']['icon'] . '.jpg">';
$ring2Data = (empty($achars['items']['finger2']['icon']))?"Nichts angelegt":$achars['items']['finger2']['name'].'<br />Gegenstandsstufe: '.$achars['items']['finger2']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$ring2 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['finger2']['id'].'" class="tooltip">'.$ring2Icon.'<span>'.$ring2Data.'</span></a>';
$schmuck1Icon = (empty($achars['items']['trinket1']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['trinket1']['icon'] . '.jpg">';
$schmuck1Data = (empty($achars['items']['trinket1']['icon']))?"Nichts angelegt":$achars['items']['trinket1']['name'].'<br />Gegenstandsstufe: '.$achars['items']['trinket1']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$schmuck1 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['trinket1']['id'].'" class="tooltip">'.$schmuck1Icon.'<span>'.$schmuck1Data.'</span></a>';
$schmuck2Icon = (empty($achars['items']['trinket2']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['trinket2']['icon'] . '.jpg">';
$schmuck2Data = (empty($achars['items']['trinket2']['icon']))?"Nichts angelegt":$achars['items']['trinket2']['name'].'<br />Gegenstandsstufe: '.$achars['items']['trinket2']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$schmuck2 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['trinket2']['id'].'" class="tooltip">'.$schmuck2Icon.'<span>'.$schmuck2Data.'</span></a>';

$hauptIcon = (empty($achars['items']['mainHand']['icon']))?'<img src="http://sorgonas.de/waffeleer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['mainHand']['icon'] . '.jpg">';
$hauptData = (empty($achars['items']['mainHand']['icon']))?"Nichts angelegt":$achars['items']['mainHand']['name'].'<br />Gegenstandsstufe: '.$achars['items']['mainHand']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$haupt = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['mainHand']['id'].'" class="tooltip">'.$hauptIcon.'<span>'.$hauptData.'</span></a>';
$nebenIcon = (empty($achars['items']['offHand']['icon']))?'<img src="http://sorgonas.de/waffeleer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['offHand']['icon'] . '.jpg">';
$nebenData = (empty($achars['items']['offHand']['icon']))?"Nichts angelegt":$achars['items']['offHand']['name'].'<br />Gegenstandsstufe: '.$achars['items']['offHand']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
$neben = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['offHand']['id'].'" class="tooltip">'.$nebenIcon.'<span>'.$nebenData.'</span></a>';

//Daten in DB-Mitgliederliste speichern (json_encode($aGuildData))
$sql_befehl = " INSERT INTO wy8b2_mitgliederliste (chars, bild, klasse, level, firtal, sectal, firber, secber, erfolg, gearlvl, kopf, hals, schulter, rucken, brust, hemd, wappen, gelenk, hand, gurtel, hose, fusse, ring1, ring2, schmuck1, schmuck2, haupt, neben) VALUES
(
'" .mysql_real_escape_string($charName). "',
'" .mysql_real_escape_string($bilIcon). "',
'" .mysql_real_escape_string($aClassNames[$achars['class'] - 1]). "',
'" .mysql_real_escape_string($achars['level']). "',
'" .mysql_real_escape_string($talIcon1 . $talText1). "',
'" .mysql_real_escape_string($talIcon2 . $talText2). "',
'" .mysql_real_escape_string($firber). "',
'" .mysql_real_escape_string($secber). "',
'" .mysql_real_escape_string($achars['achievementPoints']). "',
'" .mysql_real_escape_string($achars['items']['averageItemLevelEquipped']). "',
'" .mysql_real_escape_string($kopf). "',
'" .mysql_real_escape_string($hals). "',
'" .mysql_real_escape_string($schulter). "',
'" .mysql_real_escape_string($rucken). "',
'" .mysql_real_escape_string($brust). "',
'" .mysql_real_escape_string($hemd). "',
'" .mysql_real_escape_string($wappen). "',
'" .mysql_real_escape_string($gelenk). "',
'" .mysql_real_escape_string($hand). "',
'" .mysql_real_escape_string($gurtel). "',
'" .mysql_real_escape_string($hose). "',
'" .mysql_real_escape_string($fusse). "',
'" .mysql_real_escape_string($ring1). "',
'" .mysql_real_escape_string($ring2). "',
'" .mysql_real_escape_string($schmuck1). "',
'" .mysql_real_escape_string($schmuck2). "',
'" .mysql_real_escape_string($haupt). "',
'" .mysql_real_escape_string($neben). "'
)";

$result = mysql_query($sql_befehl);
if (!$result) {
    $message  = 'Ungültige Abfrage: ' . mysql_error() . "\n";
    $message .= 'Gesamte Abfrage: ' . $query;
    die($message);
}

echo '<pre>';
print_r($achars);
echo '</pre>';
}




}
mysql_close();
?>
 
Irgendwas in deinem Copy& Paste fehlt .. bspw. das IF-Case für die Cacheabfrage, kann das sein? ^^
 
Code:
 <?
    $guildData = array();

    // Daten über die Gilde samt Mitglieder holen - hier sind alle Mitglieder drin unabhängig vom Realm
    $query = array(
        'locale' => 'de_DE',
        'fields' => 'members',
        'apikey' => $apiKey
    );

    $url = $apiUrl.'guild/'.rawurlencode($guildRealm).'/'.rawurlencode($guild).'?'.http_build_query($query);
    $response = @file_get_contents($url, true);
    $guildData = json_decode($response, true);

    // Jetzt alle Chars anhand der Member laden
    $chars = array();
    $charsLoaded = 0; // Zähler

    //Verbindung der DB herstellen
    $dbh = new PDO('pgsql:dbname=usr_web22_4;host=localhost', $DBUSER, $DBPASS);
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    if($dbh) {
        echo 'DB-Serververbindung hergestellt! ';
    } else {
        die('DB-Serververbindung fehlgeschlagen!');
    }

    //Daten in DB-Gildenliste löschen
    $loescheng = "";
    $dbh->query('TRUNCATE wy8b2_gildenliste');

    //Daten in DB-Mitgliederliste löschen
    $dbh->query('TRUNCATE wy8b2_mitgliederliste');
    $dbh->exec("SET NAMES 'utf8'");
    $dbh->exec("SET CHARACTER SET 'utf8'");

    //Daten in DB-Gildenliste speichern (json_encode($aGuildData))
    $sqlg_befehl = 'INSERT INTO wy8b2_gildenliste (gname, grealm, glevel, gmember, gerfolg, datum) VALUES (?,?,?,?,?,UNIX_TIMESTAMP())';
    $sth = $dbh->prepare($sqlg_befehl);
    $resultg = $sth->execute(
        array(
            0 => $guildData['name'],
            1 => $guildData['realm'],
            2 => $guildData['realm'],
            3 => $guildData['level'],
            4 => sizeof($guildData['members']),
            5 => $guildData['achievementPoints'],
        )
    );
    $sth->free();

    if (!$resultg) {
        die( 'Ungültige Abfrage: ' . $dbh->errorInfo(){1} . "\n" . 'Gesamte Abfrage: ' . $query);
    }
    // Testausgabe

    foreach($guildData['members'] as $member) {

        $memberChar = $member['character'];

// Aber nicht vom oben konfigurierten Gilden-Realm sondern vom Realm der beim Member hinterlegt ist
        $query = array(
            'locale' => 'de_DE',
            'fields' => 'talents,professions,items',
            'apikey' => $apiKey
        );
        $url = $apiUrl.'character/'.rawurlencode($memberChar['realm']).'/'.urlencode(html_entity_decode($memberChar['name'], ENT_COMPAT, 'UTF-8')).'?'.http_build_query($query);
        $response = @file_get_contents($url, true);
        $chars[] = json_decode($response, true);

        // Zählen
        $charsLoaded++;
        if($charsLoaded === 9) {	// Nach 10 Charakteren ...
            $charsLoaded = 0;	// ... Zähler zurücksetzen
            sleep(1);		// ... 1 Sekunde Pause
        }
    }
    $guildData['members'][] = json_decode($response, true);
    $guildData['characters'] = $chars;

    foreach($chars as $achars){

        $aClassNames = array('<img src="warrior.jpg" />', '<img src="paladin.jpg" />', '<img src="hunter.jpg" />', '<img src="rogue.jpg" />', '<img src="priest.jpg" />', '<img src="deathknight.jpg" />', '<img src="shaman.jpg" />', '<img src="mage.jpg" />', '<img src="warlock.jpg" />', '<img src="monk.jpg" />', '<img src="druid.jpg" />');

        $charName = (empty($achars['name']))?"Char ist unter LvL 10":''.htmlentities($achars['name'], ENT_COMPAT, 'UTF-8').'';
        $bilIcon = (empty($achars['thumbnail']))?'<img src="http://eu.battle.net//wow/static/images/2d/profilemain/race/4-1.jpg" width="200px" height="200px" />':'<img src="http://eu.battle.net/static-render/eu/'.$achars['thumbnail'].'" width="200px" height="200px" />';
        $bilIcon = str_replace("avatar","profilemain",$bilIcon);
        $talIcon1 = (empty($achars['talents'][1]['spec']['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['talents'][1]['spec']['icon'] . '.jpg">';
        $talText1 = ($achars['talents'][1]['selected'])?'<span style="color:#00FF00;text-decoration: underline;font-weight: bold;">'.$achars['talents'][1]['spec']['name'].'</span>':$achars['talents'][1]['spec']['name'];
        $talIcon2 = (empty($achars['talents'][0]['spec']['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['talents'][0]['spec']['icon'] . '.jpg">';
        $talText2 = ($achars['talents'][0]['selected'])?'<span style="color:#00FF00;text-decoration: underline;font-weight: bold;">'.$achars['talents'][0]['spec']['name'].'</span>':$achars['talents'][0]['spec']['name'];
        $berIcon1 = (empty($achars['professions']['primary'][0]['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/'.$achars['professions']['primary'][0]['icon'].'.jpg">';
        $firber = $berIcon1.$achars['professions']['primary'][0]['rank'];
        $berIcon2 = (empty($achars['professions']['primary'][1]['icon']))?"":'<img src="http://eu.media.blizzard.com/wow/icons/18/'.$achars['professions']['primary'][1]['icon'].'.jpg">';
        $secber = $berIcon2.$achars['professions']['primary'][1]['rank'];

        $kopfIcon = (empty($achars['items']['head']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['head']['icon'] . '.jpg">';
        $kopfData = (empty($achars['items']['head']['icon']))?"Nichts angelegt":$achars['items']['head']['name'].'<br />Gegenstandsstufe: '.$achars['items']['head']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $kopf = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['head']['id'].'" class="tooltip">'.$kopfIcon.'<span>'.$kopfData.'</span></a>';
        $halsIcon = (empty($achars['items']['neck']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['neck']['icon'] . '.jpg">';
        $halsData = (empty($achars['items']['neck']['icon']))?"Nichts angelegt":$achars['items']['neck']['name'].'<br />Gegenstandsstufe: '.$achars['items']['neck']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $hals = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['neck']['id'].'" class="tooltip">'.$halsIcon.'<span>'.$halsData.'</span></a>';
        $schulterIcon = (empty($achars['items']['shoulder']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['shoulder']['icon'] . '.jpg">';
        $schulterData = (empty($achars['items']['shoulder']['icon']))?"Nichts angelegt":$achars['items']['shoulder']['name'].'<br />Gegenstandsstufe: '.$achars['items']['shoulder']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $schulter = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['shoulder']['id'].'" class="tooltip">'.$schulterIcon.'<span>'.$schulterData.'</span></a>';
        $ruckenIcon = (empty($achars['items']['back']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['back']['icon'] . '.jpg">';
        $ruckenData = (empty($achars['items']['back']['icon']))?"Nichts angelegt":$achars['items']['back']['name'].'<br />Gegenstandsstufe: '.$achars['items']['back']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $rucken = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['back']['id'].'" class="tooltip">'.$ruckenIcon.'<span>'.$ruckenData.'</span></a>';
        $brustIcon = (empty($achars['items']['chest']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['chest']['icon'] . '.jpg">';
        $brustData = (empty($achars['items']['chest']['icon']))?"Nichts angelegt":$achars['items']['chest']['name'].'<br />Gegenstandsstufe: '.$achars['items']['chest']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $brust = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['chest']['id'].'" class="tooltip">'.$brustIcon.'<span>'.$brustData.'</span></a>';
        $hemdIcon = (empty($achars['items']['shirt']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['shirt']['icon'] . '.jpg">';
        $hemdData = (empty($achars['items']['shirt']['icon']))?"Nichts angelegt":$achars['items']['shirt']['name'].'<br />Gegenstandsstufe: '.$achars['items']['shirt']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $hemd = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['shirt']['id'].'" class="tooltip">'.$hemdIcon.'<span>'.$hemdData.'</span></a>';
        $wappenIcon = (empty($achars['items']['tabard']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['tabard']['icon'] . '.jpg">';
        $wappenData = (empty($achars['items']['tabard']['icon']))?"Nichts angelegt":$achars['items']['tabard']['name'].'<br />Gegenstandsstufe: '.$achars['items']['tabard']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $wappen = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['tabard']['id'].'" class="tooltip">'.$wappenIcon.'<span>'.$wappenData.'</span></a>';
        $gelenkIcon = (empty($achars['items']['wrist']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['wrist']['icon'] . '.jpg">';
        $gelenkData = (empty($achars['items']['wrist']['icon']))?"Nichts angelegt":$achars['items']['wrist']['name'].'<br />Gegenstandsstufe: '.$achars['items']['wrist']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $gelenk = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['wrist']['id'].'" class="tooltip">'.$gelenkIcon.'<span>'.$gelenkData.'</span></a>';

        $handIcon = (empty($achars['items']['hands']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['hands']['icon'] . '.jpg">';
        $handData = (empty($achars['items']['hands']['icon']))?"Nichts angelegt":$achars['items']['hands']['name'].'<br />Gegenstandsstufe: '.$achars['items']['hands']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $hand = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['hands']['id'].'" class="tooltip">'.$handIcon.'<span>'.$handData.'</span></a>';
        $gurtelIcon = (empty($achars['items']['waist']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['waist']['icon'] . '.jpg">';
        $gurtelData = (empty($achars['items']['waist']['icon']))?"Nichts angelegt":$achars['items']['waist']['name'].'<br />Gegenstandsstufe: '.$achars['items']['waist']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $gurtel = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['waist']['id'].'" class="tooltip">'.$gurtelIcon.'<span>'.$gurtelData.'</span></a>';
        $hoseIcon = (empty($achars['items']['legs']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['legs']['icon'] . '.jpg">';
        $hoseData = (empty($achars['items']['legs']['icon']))?"Nichts angelegt":$achars['items']['legs']['name'].'<br />Gegenstandsstufe: '.$achars['items']['legs']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $hose = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['legs']['id'].'" class="tooltip">'.$hoseIcon.'<span>'.$hoseData.'</span></a>';
        $fusseIcon = (empty($achars['items']['feet']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['feet']['icon'] . '.jpg">';
        $fusseData = (empty($achars['items']['feet']['icon']))?"Nichts angelegt":$achars['items']['feet']['name'].'<br />Gegenstandsstufe: '.$achars['items']['feet']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $fusse = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['feet']['id'].'" class="tooltip">'.$fusseIcon.'<span>'.$fusseData.'</span></a>';
        $ring1Icon = (empty($achars['items']['finger1']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['finger1']['icon'] . '.jpg">';
        $ring1Data = (empty($achars['items']['finger1']['icon']))?"Nichts angelegt":$achars['items']['finger1']['name'].'<br />Gegenstandsstufe: '.$achars['items']['finger1']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $ring1 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['finger1']['id'].'" class="tooltip">'.$ring1Icon.'<span>'.$ring1Data.'</span></a>';
        $ring2Icon = (empty($achars['items']['finger2']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['finger2']['icon'] . '.jpg">';
        $ring2Data = (empty($achars['items']['finger2']['icon']))?"Nichts angelegt":$achars['items']['finger2']['name'].'<br />Gegenstandsstufe: '.$achars['items']['finger2']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $ring2 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['finger2']['id'].'" class="tooltip">'.$ring2Icon.'<span>'.$ring2Data.'</span></a>';
        $schmuck1Icon = (empty($achars['items']['trinket1']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['trinket1']['icon'] . '.jpg">';
        $schmuck1Data = (empty($achars['items']['trinket1']['icon']))?"Nichts angelegt":$achars['items']['trinket1']['name'].'<br />Gegenstandsstufe: '.$achars['items']['trinket1']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $schmuck1 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['trinket1']['id'].'" class="tooltip">'.$schmuck1Icon.'<span>'.$schmuck1Data.'</span></a>';
        $schmuck2Icon = (empty($achars['items']['trinket2']['icon']))?'<img src="http://sorgonas.de/leer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['trinket2']['icon'] . '.jpg">';
        $schmuck2Data = (empty($achars['items']['trinket2']['icon']))?"Nichts angelegt":$achars['items']['trinket2']['name'].'<br />Gegenstandsstufe: '.$achars['items']['trinket2']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $schmuck2 = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['trinket2']['id'].'" class="tooltip">'.$schmuck2Icon.'<span>'.$schmuck2Data.'</span></a>';

        $hauptIcon = (empty($achars['items']['mainHand']['icon']))?'<img src="http://sorgonas.de/waffeleer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['mainHand']['icon'] . '.jpg">';
        $hauptData = (empty($achars['items']['mainHand']['icon']))?"Nichts angelegt":$achars['items']['mainHand']['name'].'<br />Gegenstandsstufe: '.$achars['items']['mainHand']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $haupt = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['mainHand']['id'].'" class="tooltip">'.$hauptIcon.'<span>'.$hauptData.'</span></a>';
        $nebenIcon = (empty($achars['items']['offHand']['icon']))?'<img src="http://sorgonas.de/waffeleer.png">':'<img src="http://eu.media.blizzard.com/wow/icons/18/' .$achars['items']['offHand']['icon'] . '.jpg">';
        $nebenData = (empty($achars['items']['offHand']['icon']))?"Nichts angelegt":$achars['items']['offHand']['name'].'<br />Gegenstandsstufe: '.$achars['items']['offHand']['itemLevel'].'<br /><p>Klicken f&uuml;r Mehr Infos</p>';
        $neben = '<a target="_blank" href="http://eu.battle.net/wow/de/item/'.$achars['items']['offHand']['id'].'" class="tooltip">'.$nebenIcon.'<span>'.$nebenData.'</span></a>';

        //Daten in DB-Mitgliederliste speichern (json_encode($aGuildData))
        $sql_befehl = 'INSERT INTO wy8b2_mitgliederliste (chars, bild, klasse, level, firtal, sectal, firber, secber, erfolg, gearlvl, kopf, hals, schulter, rucken, brust, hemd, wappen, gelenk, hand, gurtel, hose, fusse, ring1, ring2, schmuck1, schmuck2, haupt, neben) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
        $sth = $dbh->prepare($sql_befehl);
        $result = $sth->execute(
            array(
                0 => $charName,
                1 => $bilIcon,
                2 => $aClassNames[$achars['class'] - 1],
                3 => $achars['level'],
                4 => $talIcon1 . $talText1,
                5 => $talIcon2 . $talText2,
                6 => $firber,
                7 => $secber,
                8 => $achars['achievementPoints'],
                9 => $achars['items']['averageItemLevelEquipped'],
                10 => $kopf,
                11 => $hals,
                12 => $schulter,
                13 => $rucken,
                14 => $brust,
                15 => $hemd,
                16 => $wappen,
                17 => $gelenk,
                18 => $hand,
                19 => $gurtel,
                20 => $hose,
                21 => $fusse,
                22 => $ring1,
                23 => $ring2,
                24 => $schmuck1,
                25 => $schmuck2,
                26 => $haupt,
                27 => $neben,
            )
        );
        $sth->free();

        if (!$result) {
            die('Ungültige Abfrage: ' . $dbh->errorInfo(){1} . "\n" . 'Gesamte Abfrage: ' . $query);
        }

        echo '<pre>';
        print_r($achars);
        echo '</pre>';
    } // end foreach
 
Zuletzt bearbeitet von einem Moderator:
ok, also das von dir sieht mal wieder um einiges sauberer aus als bei mir.

 

na so wie ich den hier gepostet hatte, hab ich den auch gestern hochgeladen gehabt,
 
Die ersten 3 Zeilen gelesen und nen mittleren herzinfarkt bekommen. Wenn man öffentliche sachen selber baut, immer mal nen Gedanken an sicherheit verschwenden. SQL-Injections sind ein alter Hut. XSS sollte man zb auch abfangen und js aus nicht script-datei-quellen unterbinden.
 
Die ersten 3 Zeilen gelesen und nen mittleren herzinfarkt bekommen. Wenn man öffentliche sachen selber baut, immer mal nen Gedanken an sicherheit verschwenden. SQL-Injections sind ein alter Hut. XSS sollte man zb auch abfangen und js aus nicht script-datei-quellen unterbinden.

 

Die Lektion hat er vor einer Weile bei einem anderen Problem schon gelernt. ^^ Und die ersten 3 Zeilen sind nicht überschreibbare, feste Parameter für den API-Zugriff.

 

 

@Sorgonas: Du kannst übrigens dirname(__FILE__) durch __DIR__ ersetzen.
 
@ZAM ich bezog mich auf die ersten 3 Zeilen im OP, ich kann kein PHP und will das auch nicht ;)
Java Backend all the way!
 
Hallo an alle, hab nen Problem mit einem Namen der abgefragt wird. dadurch das in meinem Fall der Name vom Rücken "Yo'lon" heisst, bekomme ich folgende Fehlermeldung:
Zitat   DB-Serververbindung hergestellt! Ung&#65533;ltige Abfrage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lon Gegenstandsstufe: 616
 
Zuletzt bearbeitet von einem Moderator:
@ZAM ich bezog mich auf die ersten 3 Zeilen im OP, ich kann kein PHP und will das auch nicht ;)
Java Backend all the way!
 

 

Klar, aber wenn er sich bei seinem Script über die Ebene was einfängt, dann hat Blizzard auch ein Problem und müsste mal prüfen, warum ihre API SQL-Injection-Strings ausliefert *g*
 
vorhin bemerkt, das ich die Zeile:

$cacheFile = dirname(__FILE__).'/cache.sth'; // Speicherort der Cache-Datei

komplett löschen konnte, ist ja nur noch nen überbleisel von der Speicherung in der Datei, was ich ja nun über die DB mache ;-)
 
Zurück