|  | 
  Maslov Ivan - 2006-12-22 11:49:51<?php
 error_reporting(E_ALL); // report all errors
 
 define('SMARTY_DIR', "./../includes/engine/Smarty/");
 
 require_once(SMARTY_DIR . "forms.php");
 
 $formContent = new form_class;
 $formContent->encoding	= "windows-1251";
 $formContent->NAME		= "formContent";
 $formContent->METHOD	= "POST";
 $formContent->ACTION	= "";
 $formContent->debug		= "trigger_error";
 
 $formContent->AddInput(array(
 "TYPE"=>"hidden",
 "NAME"=>"doit",
 "VALUE"=>1
 ));
 
 
 $_GET['pid'] = 10;
 $formContent->AddInput(array(
 "TYPE"=>"hidden",
 "NAME"=>"pid",
 "VALUE"=>$_GET['pid'],
 ));
 
 
 
 
 echo "<pre>";
 print_r($formContent->inputs['pid']);
 /*
 Array
 (
 [NAME] => pid
 [TYPE] => hidden
 [VALUE] => 10
 [SubForm] =>
 [ClientValidate] => 0
 [ServerValidate] => 0
 )
 */
 
 $formContent->LoadInputValues($formContent->WasSubmitted("doit"));
 print_r($formContent->inputs['pid']);
 /*
 Array
 (
 [NAME] => pid
 [TYPE] => hidden
 [VALUE] =>
 [SubForm] =>
 [ClientValidate] => 0
 [ServerValidate] => 0
 )
 */
 
 /*
 forms.php,v 1.270 2006/12/20
 */
 
 var_dump(PHP_VERSION, PHP_OS);
 /*
 '5.2.0' (length=5)
 
 'WINNT' (length=5)
 */
 
 ?>
 
 Куда делось VALUE?????
 
  Manuel Lemos - 2006-12-22 19:58:48 - In reply to message 1 from Maslov IvanThere seems to be nothing wrong with this. The class seems to be picking the pid input value from your POST variables when LoadInputValues is called, thus overriding the initial value.
  Maslov Ivan - 2006-12-22 22:39:59 - In reply to message 2 from Manuel LemosIn the given example POST has not occured.
 $_POST=$HTTP_POST_VAR=null
  Maslov Ivan - 2006-12-22 22:41:09 - In reply to message 3 from Maslov IvanTake a set example, start and look, that it will return.
  Manuel Lemos - 2006-12-23 02:19:45 - In reply to message 4 from Maslov IvanTake a look in your script and see if you are not setting a global variable named pid .
  Maslov Ivan - 2006-12-23 11:50:30 - In reply to message 5 from Manuel LemosError!
 $pid = 10;
 $formContent->AddInput(array(
 "TYPE"=>"hidden",
 "NAME"=>"pid",
 "VALUE"=>$pid
 ));
 Result:
 Array
 (
 [NAME] => pid
 [TYPE] => hidden
 [VALUE] =>
 [SubForm] =>
 [ClientValidate] => 0
 [ServerValidate] => 0
 )
 -------------------------------------
 $pid = 10;
 $formContent->AddInput(array(
 "TYPE"=>"hidden",
 "NAME"=>"pid",
 "VALUE"=>settype($pid, "string")
 ));
 Result:
 Array
 (
 [NAME] => pid
 [TYPE] => hidden
 [VALUE] => 10
 [SubForm] =>
 [ClientValidate] => 0
 [ServerValidate] => 0
 )
 
 Bug in:
 Function GetValue($variable,$file,$multiple=0) {
 ...
 if($multiple)
 {...
 }
 else
 {
 !!!!!!!			if(GetType($value)!="string")
 return("");
 }
 }
 
  Maslov Ivan - 2006-12-23 12:07:15 - In reply to message 6 from Maslov Ivan	Function GetValue($variable,$file,$multiple=0){
 var_dump($variable . "=". $_GET[$variable]. "(" . GetType($_GET[$variable]) . ")");
 if(IsSet($_GET[$variable]))
 {
 $value=$_GET[$variable];
 break;
 }
 ...}
 Return:
 
 'module=contents(string)' (length=23)
 
 'action=new(string)' (length=18)
 
 'pid=3605(integer)' (length=17)
 
 Есть тип Integer!!!
 if(GetType($value)!="string")
 return(""); - Error!!!!!!!!!!!!!!!!
 
 
 
 
  Manuel Lemos - 2006-12-23 17:19:34 - In reply to message 7 from Maslov IvanThere is no bug in GetValue. If you want to pass the pid variable via your forms, you should not use any GET variables or global variables with the same name to not interfere with the form values.
  Maslov Ivan - 2006-12-23 20:55:18 - In reply to message 8 from Manuel LemosI have understood your idea. Thanks. I shall try further. And that that type Integer, instead of String comes back?
  Maslov Ivan - 2006-12-24 08:30:19 - In reply to message 9 from Maslov IvanCan so more correctly:if(GetType($value)!="string" && GetType($value)!="integer")
 return("");
 |