PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehlermeldung vsprintf()



km4l
31.03.2008, 10:37
Hallo,

ich bekomme beim ausführen diverser Dateien (Refcron, Mailcron, ...) diese Fehlermeldung

Warning: vsprintf() [function.vsprintf]: Too few arguments in /lib/functions.lib.php on line 41

Was ist das für ein Problem ?

Wer kann mir bei der Lösung des Problems helfen?

Gruß

km4l

P.S. Ich nutze das VMS 1.2.2

km4l
31.03.2008, 22:34
Kann mir jemand weiter helfen ?

Ich bekomme die Meldung zum Beispiel bei Aufruf des Refcrons (der ist noch komplett Original)

P.S. sollte ich im falschen Bereich liegen, dann bitte verschieben...

Gecko1
01.04.2008, 00:43
genau das selbe problem habe ich auch weiß da keiner eine lösung?

Hardy
01.04.2008, 17:50
Suchfunktion nutzen!
http://www.designerscripte.net/showthread.php?t=3367

Dort wird die lösung des problems angegeben!

jpwfour
01.04.2008, 18:09
hm, wobei das keine wirklich lösung des grundproblems ist, sondern nur ein eigentlich eher komplizierter workaround.

ich hatte schon mit gremlin darüber diskutiert, wie man das generell umgehen könnet, und meine lösung wäre, die funktion db_query() in der datei /lib/functions.lib.php durch folgende zu ersetzen:


function db_query($sql_tag){
global $count_query;

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


dass ist zwar noch keine optimal lösung von der performance her, aber langsamer wird das vms dadurch auf keinen fall, nur könnte man evtl noch mehr rausholen.

somit spart man sich aber auf jeden fall, überall, wo ein prozentzeichen vorkommen könnte, dass ganze mit str_replace() zu ersetzen, was definitiv länger dauert (in der php script ausführung).

wäre gut, wenn km4l und Badboy das testen könnten, dazu sollte man natürlich noch nirgends str_replace() eingebaut haben, für die prozentzeichen.

Gecko1
01.04.2008, 18:29
Hallo,

@hardliner

So schlau war ich dann auch schon nur nicht die lösung zu dem problem :rolleyes5:


@jpwfour

Ich habe das schon in der /lib/functions.lib.php eingebaut eher gesagt geändert aber es hilft nicht weiter wenn ich jetzt meine crons vom mailer laufen lasse bekomme ich diese meldung


Warning: vsprintf() [function.vsprintf]: Too few arguments in /home/www/web103/html/lib/functions.lib.php on line 43
2:Query was empty

Wenn ich im cron das %% durch Prozent ersetze geht es auch nicht und bekomme die selb e meldung

jpwfour
01.04.2008, 18:35
eigentlich sollte ja die funktion vsprintf() so gar nicht mehr aufgerufen werden, außer es wird in der aufrufenden funktion db_query() mehr als 1 parameter angegeben.

Query was empty
deutet darauf hin, dass in der entsprechenden datenbankabfrage etwas nicht stimmt, da nichts zurückgegeben wird.

Hardy
01.04.2008, 19:03
http://www.designerscripte.net/showthread.php?t=5077