0

自分のクラスに問題があります。

FileHandler::getFileInfo($_FILES["datei"])

この配列を返します:

Array ( [tmp_name] => D:\xampp\tmp\phpD1C1.tmp [size] => 0.01 [type] => text/plain [error] => 0 [name] => witze.txt ) 

「public function assignVariables()」で「[error] => 0」をテンプレートに割り当てたいのですが、うまくいきません。

問題を解決するにはどうすればよいですか?

私のクラス:

<?php
// Imports von den Klassen die benötigt werden
require_once(INCLUDE_PATH . 'smarty/Smarty.class.php');
require_once(CLASS_PATH . 'database.class.php');
require_once(CLASS_PATH . 'FileHandler.class.php');

class IndexPage extends Smarty {
    public $templateName = 'index.tpl';
    public $query = null;
    public $fileError = array();
    public $sql = array();

    public function __construct() {
        parent::__construct();

        $this->template_dir = TEMPLATE_PATH;
        $this->compile_dir = COMPILE_DIR;
        $this->config_dir = CONFIG_DIR;
        $this->cache_dir = CACHE_DIR; 

        $this->assignVariables();
        $this->returnInfos();
        $this->showTemplate($this->templateName);
    }

    public function saveData() {

    }

    public function returnInfos() {
        if(isset($_FILES["datei"])) {
            $fileError = FileHandler::getFileInfo($_FILES["datei"]);
        }
    }

    public function assignVariables() {
        print_r($fileError);
        echo $fileError["error"];
        $this->fileError["error"];
        self::assign(
            array(
                "array" => array(1,2,3,4),
                "error" => $this->fileError["error"],
            )
        );
    }

    public function showTemplate($template) {
        self::display($template);
    }
}
?>
4

3 に答える 3

3

2 つの問題があります。最初はコンストラクターにあります。メソッドは、メソッドreturnInfosの前に呼び出す必要がありますassignVariables

2 番目の問題: プロパティの代わりにローカル変数を使用します。これらのメソッドは次のようになります。

public function returnInfos() {
    if(isset($_FILES["datei"])) {
        $this->fileError = FileHandler::getFileInfo($_FILES["datei"]);
    }
}

public function assignVariables() {
    print_r($this->fileError);
    $this->fileError["error"];
    self::assign(
        array(
            "array" => array(1,2,3,4),
            "error" => $this->fileError["error"],
        )
    );
}
于 2013-06-29T21:44:30.447 に答える
0

FileHandler::getFileInfo($_FILES["datei"]); を割り当てています。assignVariables() からアクセスできない returnInfos() のローカル変数 $fileError に。そのコードから、 $this->fileError が設定されている場所がわかりません

于 2013-06-29T21:43:24.943 に答える
0

オプション 1 :または にreturnInfos()置き換え$fileError$this->fileError

オプション 2 :で割り当てを行いますreturnInfos()

于 2013-06-29T22:00:47.630 に答える