PHP Objekte usw.

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich wollte mal etwas tiefer in die Weiten der PHP Welt absteigen.
Ich verstehe leider nicht so ganz die Geschichte mit den Objekten, Instanzen und Klassen.

Ich habe eine PHP mit einer Klasse erstellt:
PHP:
<?php
class Config
    {
    var $server = "localhost";
    var $user =  "root";
    var $dbname = "bla";
    var $password = "***";
    var $serverftp = "localhost";
    var $userftp =  "ftp_";
    var $portftp = "21";
    var $pwftp = "";
    }
?>

in einer Login.php habe ich die configuration.php includiert nun möchte ich auf die Variablen zugreifen aus der Klasse in der Login.php nur versteh ich nicht ganz wie das funktioniert bzw. bei mir funktioniert es nicht...
PHP:
<?php 
session_start();

require_once ('configuration.php');

$Login =&new Config;

$connectionid = mysql_connect ($this->server, $this->user, $this->password); 
        if (!mysql_select_db ($this->dbname, $connectionid)) 
         { 
         die ("Keine Verbindung zur Datenbank"); 
         } 
         $sql = "SELECT ". 
                "userid, name, username ". 
                "FROM ". 
                "lls_users ". 
                "WHERE ". 
                "(username like '".$_REQUEST["username"]."') AND ". 
                "(password = '".md5 ($_REQUEST["pwd"])."')"; 
                
        $result = mysql_query ($sql); 

        if (mysql_num_rows ($result) > 0) 
         { 
         $data = mysql_fetch_array ($result); 
         
         $_SESSION["userid"] = $data["userid"]; 
         $_SESSION["name"] = $data["name"];
         $_SESSION["username"] = $data["username"]; 

         header ("Location: ../main.php"); 
         } 
         else 
            { 
            header ("Location: ../index.php"); 
            } 
?>

Was mach ich falsch oder habe ich falsch verstanden ?
 
also ich würde behaupten, dass bei dir schon mal der Ansatz, das Grundverständnis für Objektorientierte Programmierung fehlt. Lies dich erstmal - zurzugsweise im Web - schlau. Schau dir ein paar Tutorials für Einsteiger an. In deinem Beispiel ist für die Config nicht mal eine Klasse nötig sondern nur ein assoziatives Array. Zum anderen benutzt du die variable $Login nicht, deshalb kann auch nichts funktionieren?!
 
Ja werd ich mir anschauen mit der OOP, allerdings war das nur ein Test ich wollte damit rausfinden wie ich auf die Variablen zugreifen kann die in der Klasse Config definiert sind.

Das ich das auch in einen Array packen kann weiß ich auch. Will ich aber nicht.
 
Zuletzt bearbeitet:
mit $this-> greifst du ja nur innerhalb der klasse auf die internen Variablen zu, in deriner login erstellst du ein neues objekt $login. Dort musst du also über $login auf deine variablen zugreifen.

also $login->server;

hab in php nie OOP betrieben, wenn ich was falsches erzähle bitte korregieren ;)
 
am besten und am sichersten mit einem Getter und Setter. Das heißt du schreibst 2 Methoden/Funktionen in die Klasse rein, die dir die Variablen returnen. auf diese Methoden greifst du dann mit z.B. $Login->get('dbname') zu. Aber wie gesagt für das Beispiel sind assoziative Arrays genau das richtige.

@Hanni2k: deine Methode geht auch, Doch wie stehts so schön im Lehrbuch :D :Instanzen- und Klassenvariblen sind NIE public. deine methode ist syntaktisch richtig, aber wenn man jetzt z.B. den Variablennamen später ändern will, muss man seinen kompletten Code nochmal durchgehen und alles umschreiben. mit Getter/Setter-Methoden hast du das Problem nicht.
 
Zuletzt bearbeitet:
Zurück
Oben