Ik ben bezig met FCKeditor en op mn localhost (PHP Version 5.1.2) werkt het prima.
Maar upload ik m naar een server met PHP Version 4.4.2 dan krijg ik de foutmelding:
Warning: Invalid argument supplied for foreach() in .... /fckeditor.php on line 110

De code is erg lang van fckeditor.php maar ik zal m posten, hopelijk kan iemand me helpen
want ik snap niet waarom het niet werkt.
De argumenten lijken wel degelijk te kloppen (en werkt dus ook in PHP 5.1.2)

<? class RCMS
{
var $InstanceName ;
var $BasePath ;
var $Width ;
var $Height ;
var $ToolbarSet ;
var $Value ;
var $Config ;

// PHP 5 Constructor
function __construct( $instanceName )
{
$this->InstanceName = $instanceName ;
$this->BasePath = '/FCKeditor/' ;
$this->Width = '100%' ;
$this->Height = '500' ;
$this->ToolbarSet = 'Default' ;
$this->Value = '' ;

$this->Config = array() ;
}

// PHP 4 Contructor
function FCKeditor( $instanceName )
{
$this->__construct( $instanceName ) ;
}

function Create()
{
echo $this->CreateHtml() ;
}

function CreateHtml()
{
$HtmlValue = htmlspecialchars( $this->Value ) ;

$Html = '<div>' ;

if ( $this->IsCompatible() )
{
if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
$File = 'fckeditor.original.html' ;
else
$File = 'fckeditor.html' ;

$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;

if ( $this->ToolbarSet != '' )
$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;

// Render the linked hidden field.
$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;

// Render the configurations hidden field.
$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;

// Render the editor IFRAME.
$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"no\" scrolling=\"no\"></iframe>" ;
}
else
{
if ( strpos( $this->Width, '%' ) === false )
$WidthCSS = $this->Width . 'px' ;
else
$WidthCSS = $this->Width ;

if ( strpos( $this->Height, '%' ) === false )
$HeightCSS = $this->Height . 'px' ;
else
$HeightCSS = $this->Height ;

$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
}

$Html .= '</div>' ;

return $Html ;
}

function IsCompatible()
{
global $HTTP_USER_AGENT ;

if ( isset( $HTTP_USER_AGENT ) )
$sAgent = $HTTP_USER_AGENT ;
else
$sAgent = $_SERVER['HTTP_USER_AGENT'] ;

if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
{
$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
return ($iVersion >= 5.5) ;
}
else if ( strpos($sAgent, 'Gecko/') !== false )
{
$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
return ($iVersion >= 20030210) ;
}
else
return false ;
}

function GetConfigFieldString()
{
$sParams = '';
$bFirst = true;
//-- HIER GAAT HET MIS -----------------------------------------------------------------
foreach($this->Config as $sKey => $sValue)
{
if ( $bFirst == false )
$sParams .= '&amp;' ;
else
$bFirst = false ;

if ( $sValue === true )
$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
else if ( $sValue === false )
$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
else
$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
}

return $sParams ;
}

function EncodeConfig( $valueToEncode )
{
$chars = array(
'&' => '%26',
'=' => '%3D',
'"' => '%22' ) ;

return strtr( $valueToEncode, $chars ) ;
}
}

?>
Ja dan wordt het zoeken. Ik neem aan dat de broncode op zich wel goed zou moeten werken, ook op PHP4. Ik zou dan eerder in de richting van de installatieprocedure van FCK gaan denken. Ik kan me voorstellen dat die array niet alleen geinitialiseerd moet worden, maar ook gevuld. Zijn de bestanden waarin dat gebeurt geinclude, dat soort dingen.
thnx voor de hulp in ieder geval...
Ik kijk wel even wat ik doe, want ik wordt echt gek.
Weet je misschien alternatieven voor FCK?
Ik heb zelf goede ervaringen met TinyMCE

Het enige nadeel van TinyMCE ten opzichte van FCK is dat je zelf iets moet verzinnen voor het uploaden van images en dergelijke. Die module zit niet standaard in TinyMCE.
ik heb er even naar gekeken en dat is super!
Ik hoef in principe toch alleen maar de tekst kunnen bewerken.
Thnx voor al je hulp Jan! Super!
Als je alleen text moet bewerken zie ik het nut niet in van een WYSIWYG-editor, vaak grote files, dus veel ruimte gebruik (ook al is het local), je zou dan beter een rich-text editor kunnen gebruiken. Zo snel even geen voorbeeld bij de hand. Of zelf maken, met UBB bijvoorbeeld.

Reageren