diff --git a/include/sieve/class_sieveElement_Redirect.inc b/include/sieve/class_sieveElement_Redirect.inc
index 47cea6020effb68ac9eeb32dc459316b03296d6d..64e71b6f8bba0c88a5255be7681add920154da20 100644 (file)
<?php
class sieve_redirect
{
- var $data = array();
+ var $data = "";
var $object_id = -1;
var $LastError ="";
if(isset($_POST['redirect_to_'.$this->object_id])){
$rt = stripslashes($_POST['redirect_to_'.$this->object_id]);
- $rt = "\"".trim(preg_replace("/\"/","",$rt))."\"";
+ $rt = trim($rt);
$this->data = $rt;
}
}
{
$msgs = array();
- if(!is_email(preg_replace("/\"/","",$this->data))){
+ if(!is_email($this->data)){
$msgs[] =_("Please specify a valid email address.");
}
{
$this->object_id = $object_id;
- if($data == NULL){
- $data = array('ELEMENTS' => array(array('class' => "quoted-string" ,"text" => _("Put a mail address here"))));
+ if($data === NULL){
+ $data = array('ELEMENTS' => array(array('class' => "quoted-string" ,"text" => _("Place a mail address here"))));
}
- foreach($data['ELEMENTS'] as $node ){
- if(in_array($node['class'],array("quoted-string","text"))){
- $this->data = $node['text'];
+ for($i = 0 ; $i < count($data['ELEMENTS']) ; $i++){
+ $tmp = sieve_get_strings($data['ELEMENTS'],$i);
+ $i = $i + $tmp['OFFSET'];
+ foreach($tmp['STRINGS'] as $str){
+ $this->data .= $str;
}
}
}
function execute()
{
- $values = $this->data;
-
+ $values = htmlentities($this->data);
$smarty = get_smarty();
$smarty->assign("ID", $this->object_id);
$smarty->assign("Destinations" , $values);
$smarty->assign("LastErrorCnt" , count($this->check()));
$object_container = $smarty->fetch(get_template_path("templates/object_container.tpl",TRUE,dirname(__FILE__)));
$object= $smarty->fetch(get_template_path("templates/element_redirect.tpl",TRUE,dirname(__FILE__)));
- $str = preg_replace("/%%OBJECT_CONTENT%%/",$object,$object_container);
+ $str = preg_replace("/%%OBJECT_CONTENT%%/",addcslashes($object,"\\"),$object_container);
return($str);
}
}