PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit dem % zeichen...



didith1207
29.01.2008, 02:00
Hallo...

Bräuchte bitte dringend hilfe!

Ich weis nun warum viele Mails nicht in der mailhistori stehen und nicht vergütet werden obwohl sie verschickt wurden das problem:

Das % zeichen! sobald im mail ein % zeichen ist wird die Mail zwar verschickt ,steht aber nicht in der mailhistorie im adminforce und wird dem user auch nicht vergütet :(

Ich bin dahinter gekommen da ich das selbe problem Im WMS habe wenn ein user buchen wollte und ein % darin vorkam wurden ihm die lose abgezogen aber nix gebucht! das selbe im pn systhem kommt ein % zeichen darin vor wird die pn erst gar nicht verschickt....

in der shoutbox das selbe will man ein % zeichen posten geht es nicht!
da kommt dann :

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

hier meine zeilen 40-47 :

array_shift($vargs);
$sql_tag = vsprintf($sql_tag,$vargs);
if($ret = mysql_query($sql_tag)){
return $ret;
}else{
return 0;
}
}

Bitte um hilfe! Danke!

Gecko1
29.01.2008, 02:04
jupp stimmt habe es auch gerade getestet und es kommt in der shoutbox die fehlermeldung

Warning: vsprintf() [function.vsprintf (http://viplose.ath.cx/function.vsprintf)]: Too few arguments in /srv/www/web6/html/lib/functions.lib.php on line 41

Gremlin
29.01.2008, 02:24
% muss durch %% ersetzt werden, eine geeignete Funktion dafür wäre str_replace();

$foo = str_replace('%','%%',$bar);

didith1207
29.01.2008, 02:29
oje verstehe nur bahnhof wo soll das hin?

Gecko1
29.01.2008, 02:32
schließe mich dir an didith1207 (http://www.designerscripte.net/member.php?u=536) :)

didith1207
29.01.2008, 03:02
also ich hab

$mailtext = str_replace('%', '%%', $mailtext);

in meinem mailcron aber das nützt nix sobald ein % im text is ist diese mail nicht im adminforce in der historie und wird den usern auch nicht vergütet :(


könnte man da nicht in der funktionslib etwas ändern da dieses % ja überall ärger macht :( ?

Holstenjungs
29.01.2008, 10:20
Du könntest auch einfach den kompletten Mailtext für den EIntrag in die Datenbank vorbereiten.


$mailtext = mysql_real_escape_string($mailtext);

Das sollte eigentlich langen.

Roadstar
29.01.2008, 16:17
Ersetze doch %% durch Prozent, dann sollte es klappen.

$mailtext = str_replace('%', 'Prozent', $mailtext);
Bei mir funktioniert es so.

didith1207
29.01.2008, 23:47
Nö leider keine änderung, einige Mails werden trotdem mit % zeichen verschickt
viele mails stehen nicht in der mailhistorie :(

Gremlin
29.01.2008, 23:50
Wenn du den Code von oben einfügst wo es durch "Prozent" ersetzt wird, dann dürfte auch keine mehr mit % verschickt werden, es sei denn du hast den Befehl nicht überall drin.

didith1207
30.01.2008, 00:17
Wenn du den Code von oben einfügst wo es durch "Prozent" ersetzt wird, dann dürfte auch keine mehr mit % verschickt werden, es sei denn du hast den Befehl nicht überall drin.

was meinst du nun mit den befehl nicht überall drinn? ich habe das in den mailcrons geändert und es kommt mir schon sehr seltsam vor das ich nach cron betätigung mails mit % und welche mit Prozent eingelesen bekomme...

Und eben das problem mit der mailhistorie bleibt auch viele mails werden dort nicht hinzugefügt dann hat man zwar das mail verschickt bekomen mit text aber im account in der Paidmailhistorie is nur ein leeres feld ohne vergütung natürlich wird die verschickte mail auch nicht vergütet wenn sie nicht in der historie steht :( alle mails ohne % werden ohne probleme auch in der mailhistorie aufgeführt

Gremlin
30.01.2008, 19:07
Aber wenn Emails eingelesen werden die ein % Zeichen beinhalten, dann ist das doch ein Zeichen dafür das du es nicht in allen Mailcrons eingebaut hast, vielleicht musst du es in manchen sogar an 2 Ecken machen (HTML Mails oder so)

Gruß
Gremlin

Roadstar
30.01.2008, 19:23
Dann gucke mal in deinem Interface ob du da sowas findest, und ändere es dann entsprechend.

$kamp_name = str_replace('%', 'Prozent', $kamp_name);

$mailtext = str_replace('%', 'Prozent', $mailtext);
LG, Roadstar

didith1207
02.02.2008, 17:03
Dann gucke mal in deinem Interface ob du da sowas findest, und ändere es dann entsprechend.

$kamp_name = str_replace('%', 'Prozent', $kamp_name);

$mailtext = str_replace('%', 'Prozent', $mailtext);
LG, Roadstar

hatte das bei beiden schon gemacht aber wie schon beschrieben ließt er ab und zu trotzdem die mails mit % zeichen ein :(

VMS1
03.02.2008, 17:22
Hi,

ich denke es geht hier um die Interfaces von mir. Im Prinzip hatte ich mir schon was dabei gedacht, als ich das so gemacht habe, das die %-Zeichen korrekt eingelesen werden. Denn es kann ja eigentlich nicht angehen, das man den Mailtext verändern muß, nur um die Kampagnen einzulesen.
Viele Mails bewerben auch Paidmailer, wo dann die ganzen Refebenen aufgelistet sind und das sieht dann schon etwas komisch aus, wenn da überall Prozent ausgeschrieben steht.

Jedenfalls verstehe ich nicht, warum ihr lieber sämtliche Mailcrons ändert, als eine oder 2 Zeilen in den Mailercron einzubauen?

Jedenfalls liegt es nicht an den Interfaces, das dieser vsprintf-Fehler auftritt, sondern an den Addons, die die eingelesenen Kampagnen weiterverarbeiten und wo einfach nicht darauf geachtet wurde.

Ich nehme mal als Beispiel den STG-Mailer und hoffe mal, das geht ok, wenn ich die 4 Zeilen poste.

Die Datei stg_spps_mailer.php öffnen.

Suche diese Zeilen :


$kidda = mysql_query("SELECT `tan` FROM `".$db_prefix."_paidmails_versendet` WHERE `tan`='".$adpm['tan']."' LIMIT 1");
$kidgefunden = mysql_num_rows($kidda);

darunter einfügen :


$adpm['mailtext'] = str_replace("%","%%",$adpm['mailtext']);


Suche diese Zeilen :


$kidda = mysql_query("SELECT `tan` FROM `".$db_prefix."_paidmails_versendet` WHERE `tan`='".$uspm['tan']."' LIMIT 1");
$kidgefunden = mysql_num_rows($kidda);

darunter einfügen :


$uspm['mailtext'] = str_replace("%","%%",$uspm['mailtext']);


Schon erledigt. Jetz kann der Mailer die Mails ganz normal mit %-Zeichen versenden, ohne das es zu Fehlermeldungen kommt. So funktioniert es auch überall anders, wo diese Fehlermeldung auftritt. Wenn das z.B. irgendwo im PN-System vorkommt, einfach die Stelle suchen und eine ähnliche Zeile einfügen.

Wenn man z.B. so etwas sieht (zumindest etwas ähnliches sollte eigentlich drin sein) :


$_POST['pntext'] = addslashes($_POST['pntext']);

dann einfach wieder darunter diese zeile :


$_POST['pntext'] = str_replace("%","%%",$_POST['pntext']);

Gruß
Marco

Gremlin
03.02.2008, 17:27
er sagte ja das er sie nichmal eingelesen bekommt deshalb meinte ich das er es in die Crons einbauen sollte damit sie überhaupt eingelesen werden.

Gruß
Gremlin

Roadstar
14.02.2008, 19:23
Hallo!

Ich habe auch den Stg_Mailer, aber bei mir funktioniert das leider nicht.
Hab alles so eingebaut wie es der User VMS1 (http://www.designerscripte.net/member.php?u=973) beschrieben hat, aber es kommt trotzdem immer folgende Meldung:

Warning: vsprintf(): Too few arguments in /var/www/web279/html/lib/functions.lib.php on line 44 2:Query was empty
Dadurch werden auch nur ca. 5-15% der vorhandenen Paidmails verschickt.
Hat hier vielleicht jemand eine Lösung?

LG,
Roadstar

didith1207
14.02.2008, 19:26
Es spielt keine rolle welchen mailer man benutzt da wie du schon geschrieben hast nur zwischen 5 und 15% eingelesen werden :(

halk
14.03.2008, 07:56
hallo

leider habe ich ein problem mit mails verschicken.wenn ich den stg_spps_mailer aufrufe bricht er nach einer Zeit ab und zeigt mir dann dies *2:Query was empty* und er verschickt mir nicht alles Mails ,sondern nur 56 Kampagnen.

Hat da einer ,eine lösung schon gefunden für dieses Problem.

Danke im vorraus.


Mfg Halk

Roadstar
14.03.2008, 11:37
Bei mir funktioniert es mit dem Mailer.
Du musst einfach nur diese Codes unter

$kidgefunden = mysql_num_rows($kidda);
einfügen


$adpm['mailtext'] = str_replace("%","%%",$adpm['mailtext']);
$adpm['beschreibung'] = str_replace("%","%%",$adpm['beschreibung']);


$uspm['mailtext'] = str_replace("%","%%",$uspm['mailtext']);
$uspm['beschreibung'] = str_replace("%","%%",$uspm['beschreibung']);

halk
14.03.2008, 12:02
Hallo


Super jetzt funst es, danke :thumbsup:

Mfg Halk

Rallef
03.03.2009, 18:14
Hallo,

ich habe das [VMS] [1.2] Werbemanagement System Pro von Scripte4Webis und da macht das Prozentzeichen auch Probleme.

Was muss ich denn da konkret ändern, damit die User auch das % Zeichen benutzen können?

Mir ist das eben aufgefallen, als ein User mich frage was denn aus seiner gebuchten Werbung geworden sei. Da hab ichs dann erst gemerkt, weil er auch bestätigte, dass er ein % im Text verwendet hatte.

Edit:

und wie bekomme ich es hin, dass ich auch die normalen Admin-Mails die ich vom Adminforce aus senden kann, mit % versenden kann? Ich nutze nämlich keinen Automailer sondern buche per Hand ein - und wenn ich mal nicht aufpasse ist ruckzuck ein % mit dabei.

Sebmaster
03.03.2009, 18:16
...

Alle einzelnen %-Zeichen durch doppelte ersetzen lassen (str_replace() u.ä.):wink:

Rallef
03.03.2009, 18:32
Danke :-)

jpwfour
03.03.2009, 19:19
Was natürlich nur ein unschöner Workaround ist, da du früher oder später mit dem % wieder Probleme bekommst!
Bspw. im Supportticket Addon, bei den PNs, Gästebuch etc. was man halt so für Addons noch einbaut mit Texten zum eingeben.

Daher bspw. das hier einbauen:
http://www.designerscripte.net/showthread.php?t=6152&highlight=php+mysql+z%E4hlen
Dann ist das % Problem "global" erledigt.