Seite 1 von 1

Problem mit Klasse

Verfasst: 30.11.2008 16:12
von FCM
Hallo,

hier mein Code (nur der Anfang):

Code: Alles auswählen

class tinyimages {

	var $folder = $_SERVER['SCRIPT_NAME'] . '/images/upload';
	
	function __construct() {
		define(DIR, $_SERVER['DOCUMENT_ROOT'].'/');
		
		// ATTENTION!
		// You need to check the session here, because methods of this class can be danger to security!
		//if(!isset($_SESSION['user']['type'])) return false;
		
		$this->folder = $this->folder;
		$this->restrict = $this->folder;
	}
	
	private function leftPanel() {
		$ret = array();
		if ($handle = opendir ( DIR.$this->folder )) {
			while (false !== ($file = readdir ( $handle ))) {
				if (is_dir(DIR.$this->folder.'/'.$file) && $file != '.') {
					$ret[] = array(
						'path' => $file,
						'name'	=> $file
					);
				}
			}
			closedir ($handle);
		}
		
		if(count($ret) > 0) {
			$return = '';
....
Doch bekomme ich, wegen der Variable $_SERVER['SCRIPT_NAME'] diese Fehlermeldung (wenn die Variable weg ist, dann nicht):

Code: Alles auswählen

Parse error: syntax error, unexpected T_VARIABLE in C:xampphtdocshtmlprojekteeasyhp_1.1.5editorjscripts iny_mcepluginsimagesserver_connector inyimages.php on line 5
Weiß jemand, warum ich die nicht nutzen kann?

LG, EloKoN

Verfasst: 30.11.2008 16:18
von Pyramide
Da du dir ja selbstverständlich den Abschnitt "Grundlagen" im PHP-Handbuch durchgelesen hast, hast du diesen Teil sicherlich nur übersehen:
PHP-Handbuch hat geschrieben:Der Standardwert muss ein konstanter Ausdruck sein, aber nicht z.B. eine Variable, ein Klassenattribut oder ein Funktionsaufruf.
Was genau willst du eigentlich damit bezwecken, eine Variable sich selbst zuzuweisen?

Code: Alles auswählen

      $this->folder = $this->folder;
      $this->restrict = $this->folder; 

Verfasst: 30.11.2008 16:21
von FCM
Hallo Pyramide,

es geht mir jetzt nur darum, das er die SERVER-Variable irgendwie nicht nimmt. Das Skript habe ich nicht selbst geschrieben, ich ändere es nur ab. Warum der Programmierer $this->folder sich selbst zugewiesen hat, weiß ich nicht.

LG, EloKoN

Verfasst: 30.11.2008 18:03
von gn#36
Dann initialisiere halt oben mit '' und weise im Konstruktor eben $_SERVER['SCRIPT_NAME'] . '/images/upload'; zu (bzw. lass das initialisieren oben ganz sein, da es sowieso überschrieben wird).