Hm.. ich sehe gerade das du ja der Admin von Scriptshop.org bist.
Melde dich bitte mal per ICQ (163-480-382) bei mir. Hab da was Interessantes für dich.
Ich dachte du hast die API dich ich da habe für den VSS geschrieben.
Mein Versuch ging nämlich leider auch schief. Mein Problem am VirtuaShop ist, das die Details eben Base64 codiert in die Datenbank geschrieben werden. Leider bin ich da mit meinen Kenntnissen überfordert um die API um zuschreiben, so das die wieder decodiert ausgegeben wird.
Also auf Losescriptshop.de läuft diese API ja schon mal fehlerfreier als bei mir.
Da ich aber "nur" die external.php habe fehlt mir die Installationsanleitung dazu. Und offentsichtlich ist mir ein Detail zu meinem Problem entgangen. Und die neue Betreiberin des Shops kennt sich mit dieser API leider auch gar nicht aus, als das ich Sie fragen und um Hilfe bitten könnte.
Kannst du selber dich mal damit befassen?
PS: Ich werde mal zusätzlich diesen Mac anschreiben. Ich hoffe ich liege richtig das er der Admin von mac-lose.de ist und kontaktiere den richtigen. xD
Ich leg mal den Code offen:
PHP-Code:
<?php
/************************
*
* Coding by ScriptShop.org XI/MMVII
*
*************************/
# Shop Konfiguration includen
require_once "data/config/sql.class.php";
require_once "data/config/functions.php";
$db = new database;
$db->connect();
# leeres Array erzeugen
$ShopCategory = Array();
# leeres Array erzeugen
$ApiData = Array();
/********************
* Konfiguration Start
* Schnittstelle: Script-Kiste <-> Designerscripte.net
********************/
$ApiData['apipw'] = 'xxxxxxxxxxxxxxx'; # Passwort zur API (ist nicht Loginpasswort)
$ShopData['domain'] = 'xxxxxxxxxxxx'; // URL zum Shop mit Slash am Ende
// Bitte die Kategorienummer(n) aus ihrem Shop angeben mehrere durch Komma trennen
// Wenn die Kategorie nicht vorhanden ist bitte leer lassen
$ShopCategory['games'] = Array(1,2,3,4,5,6); # Kategorie die Games beinhaltet
$ShopCategory['addons'] = Array(7,8,9,10); # Kategorie die Addons beinhaltet
$ShopCategory['interfaces'] = Array(11,12,13,14); # Kategorie die Interfaces beinhaltet
/********************
* Konfiguration Ende
* Schnittstelle: Script-Kiste <-> Designerscripte.net
*
* !!!!!!!!!!! AB HIER NICHTS MEHR ÄNDERN !!!!!!!!!!!!!!!
********************/
# Fremdzugriff verhindern
if ($_GET['pw'] != $ApiData['apipw']) die();
# Alle Aktiven Scripte auslesen
$result = $db->fetch("SELECT * FROM ".$DB['script']." WHERE `stat` = 1 AND (`verkauft` < `vorhanden` OR `vorhanden` = 0)");
# Scripte auslesen
if ( count($result) ) {
foreach ($result AS $detail) {
# Api Kategorie zurücksetzen
$api_cat = 0;
# Game?
if (in_Array($detail['cat'],$ShopCategory['games'])){
$api_cat = 1;
}
# Addon?
if (in_Array($detail['cat'],$ShopCategory['addons'])){
$api_cat = 2;
}
# Interface
if (in_Array($detail['cat'],$ShopCategory['interfaces'])){
$api_cat = 3;
}
# Wenn gültige Kategorie dann ausgeben
if ($api_cat != 0){
$beschreibung = ($detail['info']);
$beschreibung = str_replace('|script|','',$beschreibung);
$beschreibung = str_replace('|preis| Lose','',$beschreibung);
$beschreibung = str_replace('|detail|','',$beschreibung);
$beschreibung = str_replace('|cart|','',$beschreibung);
$beschreibung = str_replace('|ltext|','',$beschreibung);
$beschreibung = str_replace('|limit|','',$beschreibung);
$beschreibung = str_replace('|lizenz|','',$beschreibung);
$beschreibung = str_replace('Demo','',$beschreibung);
$beschreibung = str_replace(';','',$beschreibung);
$beschreibung = strip_tags($beschreibung,'<table><tr><td><center><u><b><i><s><ul><li><br><img>');
if (!empty($detail['details'])) {
$url = ''.$ShopData['domain'].'?site=details&id='.$detail['id'].'';
} else {
$url = ''.$ShopData['domain'].'?site=list&cat='.$detail['cat'].'&id='.$detail['id'].'';
}
echo $api_cat.';'.$detail['id'].';'.$detail['name'].';'.$beschreibung.';'.$detail['preis'].';'.$url.';';
}
}
}
$db->close();
?>
Wenn ich richtig liege, ist mein Problem auch eher an der base64-Codierung die umgangen werden muss. D.h so weit ich das überschaue hat Losescriptshop.de die add_artikel.php insoweit geändert das die base64-Codierung aufgehoben wird und die Beschreibung 1:1 in die DB übertragen wird:
PHP-Code:
//$_POST['info'] = base64_encode($_POST['info']);
//$_POST['details'] = base64_encode($_POST['details']);
Ist aber von meiner Seite aus nur reine Spekulation da dafür meine Kenntnisse noch etwas begrenzt sind.
Wenn ich das jedoch richtig sehe wird die DB damit noch mehr mit Zeichen "zugemüllt" was ja nicht Sinn und Zweck ist. Klickworri wird sich schon was dabei gedacht haben, als er die Codierung verwendet hat.
Also ich habe es für den nächsten Versuch mal wie folgt versucht:
PHP-Code:
$beschreibung = base64_decode(str_replace('|detail|','',$beschreibung));
mal sehen was beim nächsten Crondurchlauf passiert...