Seite 1 von 1

Fehler im Newsletter bei Import

Verfasst: Mi 17. Okt 2007, 11:06
von nomore
Hallo,

wenn man im Newsletter auf den Link zum Empfänger importieren klickt, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Fatal error: Call to undefined function: str_split() in /home/user/www.domain.de/de/contenido/includes/include.recipients_import.php on line 127
Ist diese Problem bekannt? :?:

Verfasst: Mi 17. Okt 2007, 19:57
von delinquent
Die Suche sagt nein. Aber die Suche sagt auch, dass es sich bei str_split um einen PHP 5 Befehl handelt. Wenn Du PHP 4 benutzt, ist der Fehler damit gefunden.

In dem Fall ist es sinnvoll, z.B. in includes/functions.general.php

Code: Alles auswählen

if (!function_exists("str_split"))
{
 function str_split($text, $split = 1)
 {
 if (!is_string($text))
  return false;

 if (!is_numeric($split) && $split < 1)
  return false;

 $len = strlen($text);
 $array = array();
 $s = 0;
 $e=$split;

 while ($s <$len)
 {
  $e=($e <$len)?$e:$len;
  $array[] = substr($text, $s,$e);
  $s = $s+$e;
 }

 return $array;
 }
}
oder ähnliches einzufügen.

Wenn man davon ausgeht, dass Contenido auf PHP 4 laufen soll, dann ist das in dem Fall ein Bug.

Für solche Fälle, wenn PHP Methoden nicht kennt, empfiehlt sich immer eine Suche auf php.net.

Siehe hier: http://www.php.net/str_split

Verfasst: Mi 17. Okt 2007, 20:33
von Dodger77
verschoben

Verfasst: Sa 20. Okt 2007, 19:50
von HerrB
Die Zeile

Code: Alles auswählen

$sGroupName = str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname"));
durch

Code: Alles auswählen

	$sGroupName = $oRcpGroup->get("groupname");
	$sGroupName = str_replace(" ", "", $sGroupName);
	$sGroupName = str_replace("\t", "", $sGroupName);
	$sGroupName = str_replace("\n", "", $sGroupName);
	$sGroupName = str_replace("\r", "", $sGroupName);
	$sGroupName = str_replace("\0", "", $sGroupName);
	$sGroupName = str_replace("\x0B;", "", $sGroupName);
ersetzen.

Ist die einzige Stelle, an der die Funktion eingesetzt wird. Verf$&%§*ckte Optimierung... ;-)

Gruß
HerrB

Verfasst: So 21. Okt 2007, 12:29
von delinquent
HerrB hat geschrieben:Die Zeile

Code: Alles auswählen

$sGroupName = str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname"));
durch

Code: Alles auswählen

	$sGroupName = $oRcpGroup->get("groupname");
	$sGroupName = str_replace(" ", "", $sGroupName);
	$sGroupName = str_replace("\t", "", $sGroupName);
	$sGroupName = str_replace("\n", "", $sGroupName);
	$sGroupName = str_replace("\r", "", $sGroupName);
	$sGroupName = str_replace("\0", "", $sGroupName);
	$sGroupName = str_replace("\x0B;", "", $sGroupName);
ersetzen.
...oder so.
HerrB hat geschrieben:Ist die einzige Stelle, an der die Funktion eingesetzt wird. Verf$&%§*ckte Optimierung... ;-)

Gruß
HerrB
Nicht aufregen, klappt doch alles wunderbar ;-)

Verfasst: Mi 31. Okt 2007, 13:32
von funomat
Muss das bei der 4.6.23 nicht so aussehen:

das

Code: Alles auswählen

$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));
ersetzen durch

Code: Alles auswählen

$sGroupName = $oRcpGroup->get("groupname");
$sGroupName = str_replace(" ", "", $sGroupName);
$sGroupName = str_replace("\t", "", $sGroupName);
$sGroupName = str_replace("\n", "", $sGroupName);
$sGroupName = str_replace("\r", "", $sGroupName);
$sGroupName = str_replace("\0", "", $sGroupName);
$sGroupName = str_replace("\x0B;", "", $sGroupName);

//vorsichtshalber drin lassen, falls man auf PHP5 umsteigen sollte!!
//$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));

$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . $sGroupName)));