tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
441
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    SuReBuRn SuReBuRn ist offline Mitglied Silber
    Registriert seit
    Nov 2003
    Beiträge
    95
    Also, ich rufe die klasse so auf, welch wunder :

    PHP-Code:
    $user = new User($userID); 
    in der User.class.php steht:
    PHP-Code:
    class User {


        public function 
    __construct($userID$username null$email null) {
            echo 
    "DEBUG1: ".$userID."<br />";
        }


        public function 
    checkPassword($password) {
            global 
    $db;
            
    $sql "SELECT     userID, username, password
                FROM     x_user
                WHERE     userID = '"
    .intval($this->userID)."'"// obsolete: self::$userID
                
            
    try {
                
    $recordSet $db->Execute($sql);
            } catch (
    exception $e) { 
                
    var_dump($e); 
                
    adodb_backtrace($e->gettrace());
            }
            print 
    "DEBUG3: ".$recordSet->fields['password'];
            if (
    $recordSet->fields['password'] == $password) return 1;
        }
        
        

    Die Methode wird dann so aufgerufen:
    PHP-Code:
    $user->checkPassword($loginPassword
    Wie komm ich bei der Methode checkPassword nun an $userID ran? $userID und $this->userID geht nich, also wie?

    Fehlermeldung:
    Code :
    1
    2
    3
    
    Notice: Undefined property: User::$initUser in /var/www/htdocs/lib/User.class.php on line 106
     
    Notice: Trying to get property of non-object in /var/www/htdocs/lib/User.class.php on line 106
    Geändert von SuReBuRn (30.10.07 um 06:34 Uhr)
     

  2. #2
    Avatar von Gainwar
    Gainwar Gainwar ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Augsburg
    Beiträge
    128
    Guten Morgen,

    um eine Variable die du der Klasse übergibts, später auch auslesen kannst, musst du diese natürlich in deiner Klasse abspeichern. (Membervariable)
    Dazu schreibst du dann noch eine Funktion, welche dir diese Membervariable zurück gibt.

    Hier ein modifiziertes Beispiel deiner Klasse:

    PHP-Code:
    <?php
    /**
     * Manuel Freiholz / www.gainwar.de
     * http://www.tutorials.de/forum/php/293558-zugriff-auf-variable-anderer-methode.html 
     */

    class User {

        
    // Member Variablen
        
    var $m_id;
        var 
    $m_name;
        var 
    $m_email;

        public function 
    __construct($userID$username null$email null) {
            echo 
    "DEBUG1: ".$userID."<br />";
            
            
    $this->m_id $userID// Zuweisung der Membervariablen.
        
    }


        public function 
    checkPassword($password) {
            global 
    $db;
            
    $sql "SELECT     userID, username, password
                FROM     x_user
                WHERE     userID = '"
    .intval($this->userID)."'"// obsolete: self::$userID
                
            
    try {
                
    $recordSet $db->Execute($sql);
            } catch (
    exception $e) { 
                
    var_dump($e); 
                
    adodb_backtrace($e->gettrace());
            }
            print 
    "DEBUG3: ".$recordSet->fields['password'];
            
            
    // Modifiziert: Setze die Membervariable m_name.
            // Das gleiche sollte auch mit E-Mail passieren.
            
    if ($recordSet->fields['password'] == $password)
            {
              
    $this->m_name $recordSet->fields['username'];
              return 
    1;
            }
            else
            {
              return 
    0;
            }
        }
        
        
    // Funktion um die ID des Benutzers zurückzugeben.
        // Das gleiche sollte auch für die anderen Variablen (name,email) erstellt werden.
        
    public function getId()
        {
          return 
    $this->m_id;
        }
        
        
    }

    // --
    // TEST
    // --

    $myUser = new User1234 );
    echo 
    "Der Benutzer hat die ID: " $myUser->getId();

    ?>
    Gruß Manuel
     
    Manuel Freiholz
    iF.Gainwar

    iF.SVNAdmin (http://www.insanefactory.com/if-svnadmin/)
    Subversion Benutzeradministration mit PASSWD und LDAP Integration.

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 24.11.08, 16:36
  2. Oop: Zugriff auf Methoden anderer Klassen?
    Von SuReBuRn im Forum PHP
    Antworten: 9
    Letzter Beitrag: 21.12.06, 20:25
  3. Antworten: 4
    Letzter Beitrag: 11.11.06, 15:19
  4. Zugriff auf Connectionstring aus anderer Assemly
    Von arrayhunter im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 19.07.05, 17:08
  5. Antworten: 10
    Letzter Beitrag: 21.02.05, 20:40