error_reporting  =  E_ALL &  ~E_WARNNING

解决方案 »

  1.   

    错了,应该是
    error_reporting = E_ALL & ~E_NOTICE
    或者干脆关闭错误
    display_errors = Off
      

  2.   

    242行的array_keys函数缺少参数
    你最好贴出242行上下各5行的代码你可以在该程序开始处加入
    error_reporting(0);
    来屏蔽错误显示
    很怀疑你的程序能正常运行!
      

  3.   

    php.ini 中的确实配置就是这个呀:error_reporting = E_ALL & ~E_NOTICE邮件能正常发出。error_reporting(0); 可以去除warning了。
    代码如下, 写邮件的表单有两个字段,一个是发件人的邮件地址,一个是message:print_r($fields);  
    //输出:Array ( [0] => email [1] => message )for ($i = 0; $i < count($fields); $i++) {
      // If the field value contains spaces, replace with an underscore
      $fields[$i] = str_replace(' ', '_', $fields[$i]);  // Multiple choise fields
      if (is_array($this->piVars[$types[$i]][$fields[$i]])) {
        ..... //此处代码省略.
      } else {
        if (isset($this->piVars[$types[$i]][$fields[$i]])) {
          print_r(array_keys($this->piVars[$types[$i]])); 
          // $i = 0 时,输出:Array ( [0] => email )
          // $i = 1 时,输出:Array ( [0] => message ) 
          print_r($this->piVars[$types[$i]]);  
          // $i = 0 时,输出:Array ( [email] => [email protected] )
          // $i = 1 时,输出:Array ( [message] => aaaaaaa )  
          print_r($this->piVars[$types[$i]][$fields[$i]]);
          // $i = 0 时,输出:[email protected]
          // $i = 1 时,输出:aaaaaaa  
                
          $key = array_keys($this->piVars[$types[$i]], $this->piVars[$types[$i]][$fields[$i]], true);
          $this->piVars[$types[$i]][$fields[$i]] = trim($this->piVars[$types[$i]][$fields[$i]]);      switch ($types[$i]) {
            case 'text':
            case 'textarea':
              $ers['###' . strtoupper($fields[$i]) . '_VAL###'] = !empty($this->piVars[$types[$i]][$fields[$i]]) ? $this->piVars[$types[$i]][$fields[$i]] : '';
              break;
            case 'radio':
            case 'checkbox':
              $ers['###' . strtoupper($key[0]) . '_' . strtoupper($this->piVars[$types[$i]][$fields[$i]]) . '_VAL###'] = 'checked="checked"';
              break;
            case 'select':
              $ers['###' . strtoupper($key[0]) . '_' . strtoupper($this->piVars[$types[$i]][$fields[$i]]) . '_VAL###'] = 'selected="selected"';
              break;
            default:
              break;
      }
        }
      }  
    }循环每次运行这一行
    $key = array_keys($this->piVars[$types[$i]], $this->piVars[$types[$i]][$fields[$i]], true);
    页面上就显示这个错误信息:
    Warning: Wrong parameter count for array_keys() in /home/cms/www/rauch-frei/pub/typo3conf/ext/pil_mailform/pi1/class.tx_pilmailform_pi1.php on line 238
    PHP 很灵活,我是第一次接触,基本上什么都不会。谢谢了大侠们帮我分析。
      

  4.   

    "不要array_keys后面的true看看"果然是高手呀。去掉true这个参数后就ok了。非常感谢!