Page 1 of 1

sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Jan 25, 2010 1:00 pm
by moonchild
Hallo,
ich habe immer noch ein Problem mit dem Google Sitemap Plugin. Hier läuft Serendipity 1.5.1 und PHP 4.4.9:

Code: Select all

Warning: sprintf() [function.sprintf]: Too few arguments in /home/www/plugins/serendipity_event_google_sitemap/serendipity_event_google_sitemap.php on line 572
Das Plugin ist als vorletztes eingetragen, danach kommt nur noch das "Einträge ankündigen" Plugin.

Es ist wie folgt konfiguriert:
URL-Liste für Pings:

Code: Select all

http://www.google.com/webmasters/tools/ping?sitemap=%s%3Bhttp://submissions.ask.com/ping?sitemap=%s
Enable GoogleNews content : Ja

...

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Jan 25, 2010 1:02 pm
by garvinhicking
Hi!

Die URL ist falsch:

[quote]

Code: Select all

http://www.google.com/webmasters/tools/ping?sitemap=%s%3Bhttp://submissions.ask.com/ping?sitemap=%s
Alle % Zeichen müssen Platzhalter sein. %3B ist so nicht erlaubt -- kann es sein dass hier eher ein "&" reinmüsste?

Grüße,
Garvin

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Jan 25, 2010 2:15 pm
by moonchild
Hi Garvin,
ich habe das korrigiert, kam wohl daher, weil ich vorhin die Alternative zum Semikolon testen wollte.

Code: Select all

http://www.google.com/webmasters/tools/ping?sitemap=%s;http://submissions.ask.com/ping?sitemap=%s
Inzwischen kommt nach ewigen Zeiten nur noch: "An internal server error occurred. Please try again later."

Wenn ich es dann later nochmal probiere, ist die Fehlermeldung weg, es kommt:

Sitemap Update an www.google.com gemeldet.
Sitemap Update an submissions.ask.com gemeldet.

Aber so wie ich das verstehe, wird das Update doch nur beim ersten Mal gemeldet?

Und: Wie kann ich die Ursache für den "Internal Server Error" rausfinden?

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Jan 25, 2010 2:19 pm
by garvinhicking
Hi!

Wenn Du ganz oft pingst, wird deine IP von den Services ggf. geblacklistet...

Probier mal " ; " mit Leerzeichen, damit das %s nicht mit dem Semikolon in Verbindung gebracht wird.

Grüße,
Garvin

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Jan 25, 2010 8:43 pm
by moonchild
Hi Garvin,
so, ich habe vor und hinter das Semikolon ein Leerzeichen eingefügt:

Code: Select all

http://www.google.com/webmasters/tools/ping?sitemap=%s ; http://submissions.ask.com/ping?sitemap=%s
Es ist wie verhext, jetzt geht google, aber submssions nicht... :roll:

Code: Select all

Sitemap Update an www.google.com gemeldet.
http_request Object ( [_url] => net_url Object ( [url] => http://submissions.ask.com/ping?sitemap=http%3A%2F%2Fwww.trueten.de%2F%2Fsitemap.xml.gz [protocol] => http [username] => [password] => [host] => http [port] => 80 [path] => //submissions.ask.com/ping [querystring] => Array ( [sitemap] => http%3A%2F%2Fwww.trueten.de%2F%2Fsitemap.xml.gz ) [anchor] => [useBrackets] => 1 [user] => [pass] => ) [_method] => GET [_http] => 1.1 [_requestHeaders] => Array ( [host] => http [user-agent] => PEAR HTTP_Request class ( http://pear.php.net/ ) [connection] => close [accept-encoding] => gzip ) [_user] => [_pass] => [_sock] => net_socket Object ( [_debug] => [_default_error_mode] => [_default_error_options] => [_default_error_handler] => [_error_class] => PEAR_Error [_expected_errors] => Array ( ) [fp] => [blocking] => 1 [persistent] => [addr] => http [port] => 80 [timeout] => [lineLength] => 2048 ) [_proxy_host] => [_proxy_port] => [_proxy_user] => [_proxy_pass] => [_postData] => Array ( ) [_body] => [_bodyDisallowed] => Array ( [0] => TRACE ) [_postFiles] => Array ( ) [_timeout] => [_response] => [_allowRedirects] => [_maxRedirects] => 3 [_redirects] => 0 [_useBrackets] => 1 [_listeners] => Array ( ) [_saveBody] => 1 [_readTimeout] => [_socketOptions] => ) Konnte Update nicht an PLUGIN_EVENT_SITEMAP_UNKNOWN_HOST melden: http://submissions.ask.com/ping?sitemap=http%3A%2F%2Fwww.trueten.de%2F%2Fsitemap.xml.gzAlternativ kann sie auch in die robots.txt eingefügt werden.

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Jan 25, 2010 8:58 pm
by garvinhicking
Hi!

Hm.... evtl mal " ;" probieren, also mit leerzeichen nur hinter dem einen Host? Evtl kann er das nicht richtig an die andere Seite melden weil das Leerzeichen davor ist.

Sorry, ich mache auch nur Blindflug, weil ich das Plugin selbst so nicht nutze :)

Grüße,
GArvin

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Tue Jan 26, 2010 12:12 am
by moonchild
Hi Garvin,
erledigt. Ergebnis: "Internal Server Error" :shock:

Wenn ich danach erneut auf Speichern gehe, erscheint der Artikel ein zweites Mal. Ich muss also erst in die Artikelübersicht und dann nach erneutem Aufruf des Artikels im Editor abspeichern um das zu vermeiden...

Bin ich eigentlich der Einzige mit dem Problem?

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Tue Jan 26, 2010 12:36 pm
by garvinhicking
Hi!

Internal Server Errors sind eigentlich andere Probleme. Da müsstest Du mal um Einsicht in die Apache ErrorLogs bitten um rauszufinden was das ist. Das ist ein generischer Fehler, hier kann alles mögliche vorliegen: Timeouts, zu viel Speicher, Netzwerkfehler, ...

Hab nochmal im Code geschaut, und ich glaube jetzt auch den Fehler erkannt zu haben. Wenn man mehrere Hosts benutzen will kann man nicht überall %s einsetzen, weil die PHP-Funktion printf() dann auch mehrere Namensparameter erwartet. Es gibt aber nur einen.

Daher müsste der String so aussehen:

Code: Select all

http://www.google.com/webmasters/tools/ping?sitemap=%1$s;http://submissions.ask.com/ping?sitemap=%1$s
Damit sagt man dann "nimm immer die erste Variable", und dann wird also kein zweiter Parameter erwartet, und der Platzhalter korrekt ausgefüllt.

Grüße,
Garvin

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Fri Jan 29, 2010 11:10 am
by moonchild
Hallo,
also ich habe das jetzt alles entsprechend eingebaut, den Fehler bekomme ich nicht weg:

Code: Select all

An internal server error occurred. Please try again later.
In den Apache Logfiles ist kein Hinweis zu finden, weder in error.log noch der access.log.

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Fri Jan 29, 2010 2:25 pm
by garvinhicking
Hi!

Wo kommt diese Fehlermeldung genau? Vom Googleserver oder von deinem eigenen? (Screenshot)

Grüße,
Garvin

Re: sprintf Problem in serendipity_event_google_sitemap.php

Posted: Mon Feb 08, 2010 12:10 pm
by moonchild
Hier der Screenshot eines Testbeitrages:

Image

Der Stand ist inzwischen so, dass es mal klappt, mal nicht. Der "Internal Server Error" kommt von meinem Server.