Nach PHP Umstellung auf 5.4: “PHP Warning: Illegal string offset"

  • Nach PHP Umstellung von 5.2 auf 5.4 habe ich, bei einem nicht mehr gewarteten Plugin, zwei Fehlermeldungen:

    Warning: Illegal string offset 'box_post_keywords' ... on line 546
    Die dazugehörige Zeile aus dem Plugin:

    PHP
    if (!$found && $sip_target_data['box_post_keywords']) {

    Und:

    Warning: Illegal string offset 'box_blank' ... on line 702
    Die dazugehörige Zeile aus dem Plugin:

    PHP
    if ($options['blanko'] && $sip_meta_data['box_blank'] != 'on')

    Ich habe auch schon einen möglichen Lösungsansatz gefunden, bin mir aber nicht sicher wie ich das Beispiel auf meinen Fall umsetzen kann:
    http://www.masterlevel.de/blog/php-5-4-w…-string-offset/

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ohne den ganzen Code zu kennen ist jede Empfehlung reine Raterei.

    Ich rate Dir das Plugin durch ein anderes zu ersetzen, welches dann auch mit aktuellen PHp Versionen (5.6 bzw. 7) zurecht kommt. Denn ein Upgrade auf PHP 5.4 kannst Du Dir sparen. Du hast eine EOL Version durch einen andere EOL Version ersetzt.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Bitpalast, Du bist ein Held!!!
    Das erste Beispiel bekomme ich leider auch nicht hin... Magst Du nochmal helfen???

    PHP
    if (!$found && $sip_target_data['box_post_keywords']) {
                                        $chunks_match = array_map('trim', explode(",", $sip_target_data['box_post_keywords']));


    Ok, habs jetzt geändert nach:

    PHP
    if (!$found && (isArray($sip_target_data)) && (isset($sip_target_data['box_post_keywords'])) && $sip_target_data['box_post_keywords']) {
                                        $chunks_match = array_map('trim', explode(",", $sip_target_data['box_post_keywords']));


    Mal schaun obs klappt...

    Einmal editiert, zuletzt von Detlef2 (31. März 2016 um 22:27)

  • Leider nicht: Fatal error[COLOR=#DCDCDC][FONT=Lato]: Call to undefined function isArray() ...[/FONT][/COLOR][COLOR=#DCDCDC][FONT=Lato] on line [/FONT][/COLOR]546

    PHP
    if (!$found && (isArray($sip_target_data)) && (isset($sip_target_data['box_post_keywords'])) && $sip_target_data['box_post_keywords']) {                                    $chunks_match = array_map('trim', explode(",", $sip_target_data['box_post_keywords']));


  • Es geht, mir fällt ein Stein vom Herzen - Du bist wirklich ein Held!

    Du siehst keinen Fehler mehr ob es geht steht auf einem anderen Papier. Die Änderung am Code verändert die Kondition und wenn die ursprüngliche Fehlermeldung das bedeutet was ich vermute, dann wird das Plugin nicht mehr das gleiche Ergebnis liefern können.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • dann wird das Plugin nicht mehr das gleiche Ergebnis liefern können.

    ist vermutlich auch ganz gut so... am besten finde ich zurzeit Zeile 39

    PHP
    if(eregi("googlebot",$_SERVER['HTTP_USER_AGENT'])) { echo ''; } else { $fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/wp-content/plugins/seo-interlinking/install.txt', 'w'); };

    das script öffnet wirklich eine ascii datei auf dem server.... und echo '' für den Googleboot ist sau cool.

    Mit offenen Augen träumen

  • PHP
    if(eregi("googlebot",$_SERVER['HTTP_USER_AGENT'])) { echo ''; } else { $fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/wp-content/plugins/seo-interlinking/install.txt', 'w'); };

    Nette Backdoor.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Gut, überzeugt! Danke das ihr so aufmerksam seid...
    Gibt es ein kostenloses Plugin das das selbe macht (oder bessern nicht ;-)) also, das definierbaren Text mit Webseiten verlinkt?
    Bisher habe ich kein kostenloses gefunden das auch funktioniert hat...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!