287 public function setFormVars($var_arr=
null, $pref=
'xo_', $not_gpc=
false)
289 $len = strlen($pref);
290 foreach ($var_arr as $key => $value) {
291 if ($pref == substr($key, 0, $len)) {
292 $this->
setVar(substr($key, $len), $value, $not_gpc);
317 public function &
getVar($key, $format =
's')
319 $var =& $this->vars[$key];
320 $ret = $var[
'value'];
321 switch ($var[
'data_type']) {
323 case XOBJ_DTYPE_TXTBOX:
324 switch (strtolower($format)) {
330 return $ts->htmlSpecialChars($ret);
336 return $ts->htmlSpecialChars($ts->stripSlashesGPC($ret));
340 case XOBJ_DTYPE_TXTAREA:
341 switch (strtolower($format)) {
346 $html = !empty($vars[
'dohtml'][
'value']) ? 1 : 0;
347 $xcode = (!isset($vars[
'doxcode'][
'value']) || 1 == $vars[
'doxcode'][
'value']) ? 1 : 0;
348 $smiley = (!isset($vars[
'dosmiley'][
'value']) || 1 == $vars[
'dosmiley'][
'value']) ? 1 : 0;
349 $image = (!isset($vars[
'doimage'][
'value']) || 1 == $vars[
'doimage'][
'value']) ? 1 : 0;
350 $br = (!isset($vars[
'dobr'][
'value']) || 1 == $vars[
'dobr'][
'value']) ? 1 : 0;
351 return $ts->displayTarea($ret, $html, $smiley, $xcode, $image, $br);
354 $ret = htmlspecialchars($ret, ENT_QUOTES);
360 $html = !empty($vars[
'dohtml'][
'value']) ? 1 : 0;
361 $xcode = (!isset($vars[
'doxcode'][
'value']) || 1 == $vars[
'doxcode'][
'value']) ? 1 : 0;
362 $smiley = (!isset($vars[
'dosmiley'][
'value']) || 1 == $vars[
'dosmiley'][
'value']) ? 1 : 0;
363 $image = (!isset($vars[
'doimage'][
'value']) || 1 == $vars[
'doimage'][
'value']) ? 1 : 0;
364 $br = (!isset($vars[
'dobr'][
'value']) || 1 == $vars[
'dobr'][
'value']) ? 1 : 0;
365 return $ts->previewTarea($ret, $html, $smiley, $xcode, $image, $br);
369 return htmlspecialchars($ts->stripSlashesGPC($ret), ENT_QUOTES);
373 case XOBJ_DTYPE_ARRAY:
374 $ret = unserialize($ret);
376 case XOBJ_DTYPE_SOURCE:
377 switch (strtolower($format)) {
380 return htmlspecialchars($ret, ENT_QUOTES);
384 return $ts->stripSlashesGPC($ret);
388 $ret = htmlspecialchars($ts->stripSlashesGPC($ret), ENT_QUOTES);
394 if (
'' != $var[
'options'] &&
'' != $ret) {
395 switch (strtolower($format)) {
398 $selected = explode(
'|', $ret);
399 $options = explode(
'|', $var[
'options']);
402 foreach ($options as $op) {
403 if (in_array($i, $selected)) {
408 return implode(
', ', $ret);
411 return explode(
'|', $ret);
479 foreach ($this->vars as $k => $v) {
480 $cleanv = $v[
'value'];
481 if (!$v[
'changed']) {
483 $cleanv = is_string($cleanv) ? trim($cleanv) : $cleanv;
484 switch ($v[
'data_type']) {
485 case XOBJ_DTYPE_TXTBOX:
486 if ($v[
'required'] &&
'0' != $cleanv &&
'' == $cleanv) {
490 if (isset($v[
'maxlength']) && strlen($cleanv) > (
int)$v[
'maxlength']) {
491 $this->
setErrors(
"$k must be shorter than ".(
int)$v[
'maxlength'] .
' characters.');
494 if (!$v[
'not_gpc']) {
495 $cleanv = $ts->stripSlashesGPC($ts->censorString($cleanv));
497 $cleanv = $ts->censorString($cleanv);
500 case XOBJ_DTYPE_TXTAREA:
501 if ($v[
'required'] &&
'0' != $cleanv &&
'' == $cleanv) {
505 if (!$v[
'not_gpc']) {
506 $cleanv = $ts->stripSlashesGPC($ts->censorString($cleanv));
508 $cleanv = $ts->censorString($cleanv);
511 case XOBJ_DTYPE_SOURCE:
512 if (!$v[
'not_gpc']) {
513 $cleanv = $ts->stripSlashesGPC($cleanv);
520 $cleanv = (int)$cleanv;
523 case XOBJ_DTYPE_FLOAT:
524 $cleanv = (float)$cleanv;
527 case XOBJ_DTYPE_BOOL:
528 $cleanv = $cleanv ? 1 : 0;
531 case XOBJ_DTYPE_EMAIL:
532 if ($v[
'required'] &&
'' == $cleanv) {
536 if (
'' != $cleanv && !preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i", $cleanv)) {
540 if (!$v[
'not_gpc']) {
541 $cleanv = $ts->stripSlashesGPC($cleanv);
545 if ($v[
'required'] &&
'' == $cleanv) {
549 if (
'' != $cleanv && !preg_match(
"/^http[s]*:\/\//i", $cleanv)) {
550 $cleanv =
'https://' . $cleanv;
552 if (!$v[
'not_gpc']) {
553 $cleanv =& $ts->stripSlashesGPC($cleanv);
556 case XOBJ_DTYPE_ARRAY:
557 $cleanv = serialize($cleanv);
559 case XOBJ_DTYPE_STIME:
560 case XOBJ_DTYPE_MTIME:
561 case XOBJ_DTYPE_LTIME:
562 $cleanv = !is_string($cleanv) ? (int)$cleanv : strtotime($cleanv);
571 if (count($this->_errors) > 0) {