Zum Inhalt springen

Nach SecurityUpdate Fehler im ve_guestbook

Erstellt am 16. Juni 2009 · 6 Antworten · letzte Antwort am 16. Juni 2009

Tags: Update & Upgrade, Frage

DiePicknickerin ·

Hallo,

ich habe gerade nach dem Announce ein Gästebuch upgedated auf 2.7.2 von der Vorversion.

Nun habe ich einen Fehler:

Warning: Invalid argument supplied for foreach() in /xxx/typo3conf/ext/ve_guestbook/pi1/class.tx_veguestbook_pi1.php on line 694

Die Zeile 694 ist das besagte removeBadHTML - das war doch eigentlich der Auslöser für das Update, oder?

Was kann man da tun?

daimos ·

Stehe gerade vor dem gleichen Problem, bisher noch ohne Lösung.
Die Meldung erscheint nur der Seite, in der man einen neuen Eintrag vornehmen kann.
Es wird auch kein neuer mehr eingetragen.

DiePicknickerin ·

Mhm, ich habe die foreach-Anweisung jetzt mal auskommentiert und damit die Sicherheitslücke wieder geöffnet ;-)

Immerhin wird ein paar Zeilen tiefer ja wieder strtoupper ud stipslashes ausgeführt.

Nach einer gescheiteren Lösung muss ich noch suchen.

Norman2k ·

Das liegt daran, dass das Array ($this->postvars) leer ist. Checkt einfach vorher, ob $this->postvars ein Array ist.
Solange keine Werte vom Formular übergeben werden, muss ja auch nichts geprüft werden.

<?php
$this->postvars = t3lib_div::GPvar('tx_veguestbook_pi1');

if(is_array($this->postvars)) { //NEU
	foreach ($this->postvars as $key => $value) {
		$value = $this->local_cObj->removeBadHTML($value, array());
		$this->postvars[$key] = $value;
	}
} //NEU
?>
DiePicknickerin ·

Hatte ich dann auch schon raus, aber ganz vielen Dank für deine schnelle Lösung!

Da muss es aber trotzdem noch ein Update der Extension geben, ne?

Trotzdem, ich denke, das von dir hilft vielen erstmal, die jetzt direkt upgedatet haben und auf ihr Eintrags-Formular starren.

#giggle#

feelx ·

hoi ihrs!
Respekt... 🙂 Ihr seid ja schneller als die Liste 🙂

Da siehts so - aber kommt ja aufs gleiche raus 🙂

<?php 
if (!empty($this->postvars)) {
>                         foreach ($this->postvars as $key => $value) {
>                                 $value = 
> $this->local_cObj->removeBadHTML($value, array());
>                                 $this->postvars[$key] = $value;
>                         }
>       }
?>

Und toll/vorbildlich, dass viele so schnell updaten 🙂
LG und noch eine bugfreie Woche..., ähm... "schöne"
Felix

Norman2k ·

Naja, aber was passiert wenn $this->postvars nicht leer ist aber auch kein array sondern z.B. ein String?
Sehr unwahrscheinlich aber es würde die if-Anweisung passieren und dann schmeißt die foreach-Schleife wieder den Fehler.

Wenn du mit is_array prüfst, würde ein String die if-Anweisung nicht passieren und ein leeres Array würde auch kein Fehler werfen, weil es ja ein Array ist

Ach ja, das schreibt Mittwald dazu 😃

VORSICHT bei einem Update der Erweiterung "Modern Guestbook", da es hierbei
aufgrund eines Programmierfehlers zu Fehlermeldungen auf der Website kommen
kann. Sollte diese bei Ihnen geschehen, empfehlen wir Ihnen die Datei

typo3conf/ext/ve_guestbook/pi1/class.tx_veguestbook_pi1.php

folgendermaßen anzupassen:

Zeile Code

<?php
692      $this->postvars = t3lib_div::GPvar('tx_veguestbook_pi1');
693
694      if(is_array($this->postvars)) {
695         foreach ($this->postvars as $key => $value) {
696            $value = $this->local_cObj->removeBadHTML($value, array());
697            $this->postvars[$key] = $value;
698         }
699      }
?>

Die Zeilen 694 und 699 sind dem Quellcode hinzu zufügen.