kostenloser Webspace werbefrei: lima-city


[PHP] Variablen aus anderer Datei übernehmen.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    Hey ;)

    Ich versuche gerade von einer anderen (eingebundenen) PHP Datei die Variablen zu verwenden und scheitere kläglich. Google hilft auch nicht wirklich.

    Beispiel:
    Ich habe eine config.php
    <?php
    // MySQL Config:
    $mysql_server = "mysql.server.at";
    $mysql_user = "username";
    $mysql_password = "password";
    // ...usw
    ?>

    Und ich habe meine Database Klasse, in der ich eine Verbindung zur Datenbank verwalten will:
    <?php
    // Hier will ich mir meine Variablen aus der anderen Datei holen:
    require_once('./pfad/config.php');
    
    class Database {
    	private $conn;
    	
    	function __construct() {
    		// Hier will ich meine eingebundenen Variablen verwenden:
    		$this->conn = mysql_connect($mysql_server, $mysql_user, $mysql_password); // LINE x
    		mysql_select_db($mysql_database, $this->conn); // LINE y
    	}
    
    	public function close() {
    		mysql_close($this->conn);
    	}
    }
    
    ?>


    Die Seite gibt mir dann aber folgenden Fehler aus:
    Notice: Undefined variable: mysql_server in /home/public/rip/rip/class/Database.class.php on line x

    Notice: Undefined variable: mysql_user in /home/public/rip/rip/class/Database.class.php on line x

    Notice: Undefined variable: mysql_pass in /home/public/rip/rip/class/Database.class.php on line x

    Notice: Undefined variable: mysql_database in /home/public/rip/rip/class/Database.class.php on line y

    Wobei Zeile x und y die ersten sind, in der ich meine "$mysql_*" Variablen verwendet habe. (Sind auch im Code markiert. -> "// LINE x")

    Ich bilde mir ein, dass ich es schon einmal so gemacht habe, dass ich eine Config Datei eingebunden habe, und dann einfach auf die Variablen zugegriffen habe, aber nun bekomme ich es nicht mehr hin.

    Kann mir jemand sagen, wie das funktioniert?
    Wenn das nicht geht, müsste ich mir eine Klasse bauen, die mir immer den Wert einer verlangten Variable zurück gibt...

    Danke schon im voraus ;)
    Sincer
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Entweder du benutzt das Globals-Array, oder du holst die Variable in die Methode.
    $GLOBALS['var']
    oder
    global $var;
    Bei letzterem kannst du $var ab dieser Zeile in der Methode wie im globalen Bereich verwenden.

    Beitrag zuletzt geändert: 25.7.2011 13:47:17 von drafed-map
  4. sincer schrieb:
    ... und scheitere kläglich. Google hilft auch nicht wirklich.
    mal das probiert?
    <?php
    ...
    class Database {
    ...
      function __construct() {
        global $mysql_server, $mysql_user, $mysql_password;
    ...
    aber ich würde das in etwa so tun:
    <?php
    
    class CUser {
      public $user   = '...';
      public $passwd = '...';
    }
    
    class CDatabase extends CUser {
      public $host = '...';
    
      function ...
    
    }
    diese art hat ein paar vorteile.

    lg

    === edit:
    da hat schon wieder die warnung 'jemand hat inzwischen gepostet' nicht funktioniert! was ist damit geschehen????

    Beitrag zuletzt geändert: 25.7.2011 13:55:25 von hemiolos
  5. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    Danke euch beiden für die rasche Antwort :)

    Ich habe es jetzt mal auf $GLOBALS['var'] umgeschrieben. Finde das recht sympathisch, da ich dann (in meinem Fall) auch gleich sehe, dass es sich um eine Konfigurations-Variable handelt.

    Ein Klassenkonstrukt wollte ich vermeiden.

    Thx
    Sincer
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!