PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ich hab da mal nen Problem mit Paidmails



Killer1105
21.07.2008, 03:40
Hi,
Ich habe von mehreren Sponsoren STG_Interfaces und bei den Paidmails kommt immer dies:
http://bilder-hoster.de/out.php/i86362_problem.bmp

und in
Warning: vsprintf() [function.vsprintf (http://www.killer1105.vms1.de/function.vsprintf)]: Too few arguments in /var/www/web86/html/lib/functions.lib.php on line 56

und in functions.lib in Zeile 56 ist bei mir:

$sql_tag = vsprintf($sql_tag,$vargs);

was könnte ich da machen?
Bitte um schnellst mögliche Antwort...

Mfg.
Sebastian

Ps:Weil ich möchte nicht immer Mails per Hand einbuchen...

Xenon
21.07.2008, 11:13
Lass mal raten :yes:
Du hast ein
% benutzt :frusty::frusty::frusty:
benutze die veränderung von Jpwfour (SuFu) oder nutze kein
% :thumb:

Lokutos
21.07.2008, 15:45
ich habe das selbe problehem wo jetzt ein % sein soll wüste ich nicht

//erleichtertbin

jpwfour
21.07.2008, 15:52
an sich (brutale methode) kann man es ja mal so vesuchen:

lib/functions.lib.php:


array_shift($vargs);
$sql_tag = vsprintf($sql_tag,$vargs);

ändern in:


array_shift($vargs);
// $sql_tag = vsprintf($sql_tag,$vargs);

dann kommt definitiv kein fehler mehr wegen vsprintf :thumb:

Lokutos
21.07.2008, 15:58
fehler kommt dan keiner mehr aber ich hab immernoch das problehm das keine paidmail gespeichert wird

jpwfour
21.07.2008, 16:35
kein plan, vielleicht stimmt noch was mit dem interface nicht?

Lokutos
21.07.2008, 17:14
solte eigentlich nich es sind insgesamt 7 stück

gibt es eventuel unterschiede die die paidmails betreffen vms vms 1.2.2 und 1.2.3

Jenny
22.07.2008, 02:18
kann es sein das bei vms_gebuchte_werbung nicht alle Felder vorhanden sind in der db?

und da gab es nen codschnippsel der sich um time() kümmerte für die functions.lib.php was auch mit dem zu tun hatte // $sql_tag = vsprintf($sql_tag,$vargs);

seitdem ich beides rein getan habe taucht der Fehler nicht mehr auf und die Mails funken

jpwfour
22.07.2008, 11:54
kann es sein das bei vms_gebuchte_werbung nicht alle Felder vorhanden sind in der db?
...

das ist mal ein guter ansatz :thumb:

also in der grund sql vom vms 1.2.3:

`uid` int(7) NOT NULL default '0',
`tan` varchar(32) NOT NULL default '',
`kid` int(11) NOT NULL default '0',
`ziel` varchar(250) NOT NULL default '',
`banner` varchar(250) NOT NULL default '',
`verdienst` double(10,2) NOT NULL default '0.00',
`preis` double(10,2) NOT NULL default '0.00',
`aufendhalt` int(11) NOT NULL default '0',
`menge` int(11) NOT NULL default '0',
`reload` int(11) NOT NULL default '0',
`sponsor` varchar(25) NOT NULL default '',
`werbeart` varchar(50) NOT NULL default '',
`status` tinyint(1) NOT NULL default '1',

dass reicht denke ich kaum für ein paidmail interface, ich hab beispielsweise noch die spalten "gueltig", "mailtext", "beschreibung" mit drin, wobei an sich sollte das doch in dem addon/interface dabei sein, wenn man die datenbank erweitern müsste?

Killer1105
22.07.2008, 13:19
Den Befehl:

`uid` int(7) NOT NULL default '0',
`tan` varchar(32) NOT NULL default '',
`kid` int(11) NOT NULL default '0',
`ziel` varchar(250) NOT NULL default '',
`banner` varchar(250) NOT NULL default '',
`verdienst` double(10,2) NOT NULL default '0.00',
`preis` double(10,2) NOT NULL default '0.00',
`aufendhalt` int(11) NOT NULL default '0',
`menge` int(11) NOT NULL default '0',
`reload` int(11) NOT NULL default '0',
`sponsor` varchar(25) NOT NULL default '',
`werbeart` varchar(50) NOT NULL default '',
`status` tinyint(1) NOT NULL default '1',

Habe ich in der DB unter vms_gebuchte_werbung eingefügt, und dann kommt immer :

Fehler

SQL-Befehl:
`uid` int( 7 ) NOT NULL default '0', `tan` varchar( 32 ) NOT NULL default '', `kid` int( 11 ) NOT NULL default '0', `ziel` varchar( 250 ) NOT NULL default '', `banner` varchar( 250 ) NOT NULL default '', `verdienst` double( 10, 2 ) NOT NULL default '0.00', `preis` double( 10, 2 ) NOT NULL default '0.00', `aufendhalt` int( 11 ) NOT NULL default '0', `menge` int( 11 ) NOT NULL default '0', `reload` int( 11 ) NOT NULL default '0', `sponsor` varchar( 25 ) NOT NULL default '', `werbeart` varchar( 50 ) NOT NULL default '', `status` tinyint( 1 ) NOT NULL default '1',
MySQL meldet: http://s025.xfuture-media.info/phpMyAdmin/themes/original/img/b_help.png (http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html)
#1064 - 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 'uid` int(7) NOT NULL default '0',
`tan` varchar(32) NOT NULL default '',
`' at line 1


Was kann ich dann machen? Evtl. hat Joschi das selbe Problem...
Achja die Mails werden zwar versendet,laut Adminforce im Cron aber im Userbereich sind leider keine drin...
Und ich habe das VMS1.2.3

Ich hatte das Problem schon immer und ich hatte immer die Mails dann per Hand eingebunden...

Wäre super Nett, wenn sich hier jemand meldet,der auch mal das Problem hatte und es dann behoben konnte...

Ich poste mal einfach hier meine functions.lib:


<?
header("Cache-control: no-cache");
// Datenbankserver
$db_host = "localhost";
// Mysql User
$db_user = "web86";
// Mysql PW
$db_pass = "rausgenommen";
// Datenbank
$db_base = "rausgenommen";
// Tabellenpräfix (wichtig wenn mehrere VMS in einer DB liegen)
$db_prefix = "vms";
// Domain (ohne Slash am Ende)
$domain = "http://www.killer1105.vms1.de";
// Seitenname
$seitenname = "Schnell-Nuggets";
// Seitenwährung
$waehrung = "Nuggets";
// ID vom Admin
$admin_id = 10749;
// Adminmail
$betreibermail = "sebastianfranke92@live.de";
// Passwort für Crons
$cron_pw = "rausgenommen";
// beliebiger Alphanumerischer String hilft beim Schutz vor Autoklickern
$percode = 'AbCdEfGhIjKlMnOpQrStUvWxYz123456789';
// Komprimierung der Ausgabe zwischen 0 & 10 wobei 0 die Komprimierung der Ausgabe deaktiviert Empfohlener Wert: 1
$gzip_rate = 1;


/* Globale Variablen nichts ändern */
$ip = $_SERVER['REMOTE_ADDR'];


/* Funktionen Start */

// Datenbankverbindung
function db_connect() {
global $db_host,$db_user,$db_pass,$db_base,$sql_open;
$sql_open = @mysql_connect($db_host,$db_user,$db_pass) or die('Verbindung zum Mysql Server fehlgeschlagen!');
$sql_base = @mysql_select_db($db_base) or die("Keine oder falsche Datenbank gewählt!");
}

// Mysql Querys
function db_query($sql_tag){
global $count_query;
$count_query++;
$fargs = func_get_args();

if (!empty($fargs)){
$vargs = array();
foreach($fargs as $key => $arg){
$vargs[$key] = mysql_real_escape_string($arg);
}
array_shift($vargs);
// $sql_tag = vsprintf($sql_tag,$vargs);
}
if($ret = mysql_query($sql_tag)){
return $ret;
}else{
return 0;
}
}

// Datenbank schließen
function db_close() {
global $sql_open;
@mysql_close($sql_open) or die('Konnte die Verbindung mit Datenbank nicht schliessen!');
}

// Zufallscode
function create_code($code_laenge) {
srand((double)microtime()*1000000);
$created_code = '';
$zeichen="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx yz1234567890";
for ($i=0;$i<$code_laenge;$i++) {
$n=rand() % strlen($zeichen);
$created_code .=substr($zeichen, $n, 1);
}
return $created_code;
}


// Einträge in Buchungsliste
function buchungsliste ($buchungs_id,$trans_menge,$verwendung,$fuer) {
global $db_prefix;
db_query("INSERT INTO ".$db_prefix."_buchungen (uid,buchungszeit,buchungs_id,buchungsmenge,verwen dungszweck) VALUES (".$fuer.",".time().",'".$buchungs_id."','".$trans_menge."','".$verwendung."')");
}

// Kontotransaktionen
function kontobuchung ($art,$trans_menge,$fuer) {
global $db_prefix;
db_query("UPDATE ".$db_prefix."_kontodaten SET `kontostand` = `kontostand` ".$art." ".$trans_menge." WHERE uid=".$fuer."");
}

// Schutz von internen Seiten
function userstatus () {
global $_SESSION,$db_prefix;
if ($_SESSION['login'] == 'true') {
$us = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." and passwort='".$_SESSION['passwort']."' LIMIT 1");
$login_check = mysql_fetch_array($us);

// nicht aktiviert oder nicht angemeldet!
if (!mysql_num_rows($us) or $login_check['status'] == 0) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
@include_once('content/error/kein_zutritt.php');
@include_once('lib/footer.php');
die();
}

// gesperrt
if ($login_check['status'] == 2) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
@include_once('content/error/user_gesperrt.php');
@include_once('lib/footer.php');
die();
}
} else {
@include_once('content/error/kein_zutritt.php');
@include_once('lib/footer.php');
die();
}
}

// Refumsatz gutschreiben
function refumsatz ($buchungssumme,$fuer) {
global $db_prefix;
db_query ('UPDATE '.$db_prefix.'_werberdaten SET umsatz = umsatz + '.$buchungssumme.' WHERE uid = '.$fuer.' and werber != 0');
}

// Aktivrally
function aktivralley ($buchungssumme,$fuer) {
global $db_prefix;
// Wenn Aktivralley läuft
$ralleydaten_aktiv = mysql_fetch_array(db_query("SELECT `start`,`ende` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'aktivralley' LIMIT 1"));
if ($ralleydaten_aktiv['start'] <= time() && $ralleydaten_aktiv['ende'] >= time()) {
db_query ('UPDATE '.$db_prefix.'_aktivralley SET punkte = punkte + '.$buchungssumme.' WHERE uid = '.$fuer);
if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_aktivralley (uid,punkte) VALUES ('.$fuer.', '.$buchungssumme.')');
}
}

// Klickrally
function klickralley () {
global $db_prefix,$_SESSION;
// wenn Klickralley läuft
$ralleydaten_klick = mysql_fetch_array(db_query("SELECT `start`,`ende`,`art`,`pro` FROM ".$db_prefix."_ralleydaten WHERE ralley = 'klickralley' LIMIT 1"));
if ($ralleydaten_klick['start'] <= time() && $ralleydaten_klick['ende'] >= time()) {
if ($ralleydaten_klick['art'] == 'dynamisch') db_query ("UPDATE ".$db_prefix."_ralleydaten SET jackpot=jackpot+'".$ralleydaten_klick['pro']."' WHERE ralley = 'klickralley'");
db_query ('UPDATE '.$db_prefix.'_klickralley SET klicks = klicks + 1 WHERE uid = '.$_SESSION['uid']);
if (mysql_affected_rows () == 0) db_query ('INSERT INTO '.$db_prefix.'_klickralley (uid,klicks) VALUES ('.$_SESSION['uid'].', 1)');
}
}

// Bilanzen
function bilanz ($ein,$aus) {
global $db_prefix;
$ein = round($ein,2);
$aus = round($aus,2);
$date_stamp = mktime(0,0,0,date(m),date(d),date(Y));
mysql_query('UPDATE '.$db_prefix.'_bilanz SET ein=ein+"'.$ein.'", aus=aus+"'.$aus.'" WHERE date='.$date_stamp.' LIMIT 1');
if (mysql_affected_rows() == 0) db_query('INSERT INTO '.$db_prefix.'_bilanz (ein,aus,date) VALUES ("'.$ein.'","'.$aus.'",'.$date_stamp.')');
}


// GZip
if ($gzip_rate > 0)
{
ini_set('zlib.output_compression_level', $gzip_rate);
if(ereg("gzip",getenv("HTTP_ACCEPT_ENCODING"))) ob_start("ob_gzhandler");
else ob_start();
}
?>

Lokutos
22.07.2008, 13:43
so ich habe mir nochmal 1 die sql von den stigma interfaces angeschaut und es scheint wirklich so das da keine erweiterung der vms_gebuchten werbung grunnen steht


bin dan zu den crons gegangen

habe geschaut und siehe da der cron um die paidmails in die datenbank zu schreiben braucht n paar spalten mehr



db_query ("INSERT INTO ".$db_prefix."_gebuchte_werbung (tan,kid,ziel,beschreibung,mailtext,preis,verdiens t,aufendhalt,menge,reload,sponsor,werbeart,gueltig ) VALUES ('".................................................. ."')");

für alle die auch dieses problehm haben diesen code in der datenbank ausfüren



--
-- Daten für Tabelle `vms_gebuchte_werbung`
--
ALTER TABLE `vms_gebuchte_werbung` ADD `beschreibung` INT( 5 ) NOT NULL DEFAULT '50';
ALTER TABLE `vms_gebuchte_werbung` ADD `mailtext` INT( 5 ) NOT NULL DEFAULT '0';
ALTER TABLE `vms_gebuchte_werbung` ADD `gueltig` INT( 5 ) NOT NULL DEFAULT '0';

-- --------------------------------------------------------

Killer1105
22.07.2008, 14:10
Ist dass dann gelöst?

Funzt bei mir immer noch nicht:(

Habe

--
-- Daten für Tabelle `vms_gebuchte_werbung`
--
ALTER TABLE `vms_gebuchte_werbung` ADD `beschreibung` INT( 5 ) NOT NULL DEFAULT '50';
ALTER TABLE `vms_gebuchte_werbung` ADD `mailtext` INT( 5 ) NOT NULL DEFAULT '0';
ALTER TABLE `vms_gebuchte_werbung` ADD `gueltig` INT( 5 ) NOT NULL DEFAULT '0';

-- --------------------------------------------------------

eingefügt...

Lokutos
22.07.2008, 14:11
also bei mir funktionierts 50/50 gg hab jetzt alle paidmails leider ohne buchungstext aber nun bin ich auch am ende meinerweisheit


habe nun folgende lösung gefunden aber ob das so schön is weis ich nich gg


--
-- Daten für Tabelle `vms_gebuchte_werbung`
--
ALTER TABLE `vms_gebuchte_werbung` ADD `beschreibung` varchar(50)NOT NULL DEFAULT '50';
ALTER TABLE `vms_gebuchte_werbung` ADD `mailtext` varchar (1000)NOT NULL DEFAULT '0';
ALTER TABLE `vms_gebuchte_werbung` ADD `gueltig` varchar(50)NOT NULL DEFAULT '0';

Killer1105
22.07.2008, 14:48
Immer noch nicht:(
Ich probier mal nen anderes,hatte ganzezeit das von webmasterlose ausprobiert...

Ische2K
22.07.2008, 21:15
netter fehler xD haste denn auch mal geguckt ob ein index gesetzt ist ^^ und ob die tabellen auch die richtigen werte haben xD
sprich mailtext nicht grad int (1) :P

nein soll keine beleidigung sein hat nur schon wer fertig gebracht xD
altanativ vms_gebuchte werbung mal ganz löschen und das hier ausführen ;)

dürfte dann gehen sonnst ggf en scipt fehler im cron ;)

DROP TABLE IF EXISTS `vms_gebuchte_werbung`;
CREATE TABLE `vms_gebuchte_werbung` (
`uid` int(7) NOT NULL default '0',
`tan` varchar(32) NOT NULL default '',
`kid` int(11) NOT NULL default '0',
`ziel` varchar(250) NOT NULL default '',
`banner` varchar(250) NOT NULL default '',
`verdienst` double(10,2) NOT NULL default '0.00',
`preis` double(10,2) NOT NULL default '0.00',
`aufendhalt` int(11) NOT NULL default '0',
`menge` int(11) NOT NULL default '0',
`reload` int(11) NOT NULL default '0',
`sponsor` varchar(25) NOT NULL default '',
`werbeart` varchar(50) NOT NULL default '',
`status` tinyint(1) NOT NULL default '1',
`beschreibung` varchar(50) NOT NULL,
`mailtext` longtext NOT NULL,
`gueltig` int(11) NOT NULL default '0',
KEY `klick4` (`werbeart`,`menge`,`status`,`verdienst`,`sponsor` ),
KEY `crons` (`sponsor`,`werbeart`,`status`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ische2K
22.07.2008, 21:46
problem gelößt kein index wert gesetzt ;)

Killer1105
22.07.2008, 21:46
Thx...Problem gelöst:yes::biggrin1: