Fehler im Newsletter bei Import

Gesperrt
nomore
Beiträge: 130
Registriert: Sa 15. Mai 2004, 19:38
Kontaktdaten:

Fehler im Newsletter bei Import

Beitrag 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? :?:
Irgendwann läuft alles, fragt sich nur wann,
und wohin! :-)
ConTemplates.de
delinquent
Beiträge: 184
Registriert: Fr 17. Aug 2007, 12:15
Kontaktdaten:

Beitrag 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
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

verschoben
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
delinquent
Beiträge: 184
Registriert: Fr 17. Aug 2007, 12:15
Kontaktdaten:

Beitrag 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 ;-)
funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Beitrag 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)));
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)
Gesperrt