Başka bir sınıfta bir sınıfın örneğini oluşturmak için nasıl

0 Cevap php

Ben burada bir şey eksik olabilir, emin değilim. Bir Google araması gerçekten ya da yardım etmedi.

Ne yapmak isteyen kulüpler databaseserver sınıf aramak ve benim UserControl sınıf içindeki yöntemlerini kullanmaktır. İşte benim lib_class.php dosya:

<?php

include('definitions.php');

class databaseServer {

    var $con;
    var $db;
    var $close;
    var $qry;
    var $sql;

    function connect($host,$user,$pw,$db) {
        $this->con = mysql_connect($host,$user,$pw);
        if (!$this->con) {
            die('Could not connect: ' . mysql_error());
            }
        else {
            echo "Database Connected";
            }
        $this->selectDb($db);
        }

    function selectDb($database) {
        $this->db = mysql_select_db($database,$this->con);
        if (!$this->db) {
            echo "Could not Select database";
            }
        else {
            echo "Database Selected";
            }
        }

    function disconnect() {
        $this->close = mysql_close($this->con);
        if ($this->close) {
            echo "Disconnected";
            }
        }

    function query($test) {
        if (!mysql_query($test)) {
            die("Error: " . mysql_error());
            }
        }

} // databaseServer

class cookie {

    var $expireTime;

    function set($name,$value,$expiry) {
        $this->expireTime = time()+60*60*24*$expiry;
        setcookie($name,$value,$expireTime);
        }

    function delete($name) {
        setcookie($name,"",time()-3600);
        }

    function check($name) {
        if (isset($_COOKIE["$name"]))
            echo "Cookie Set";
        else
            echo "Cookie failed";
        }

} //cookie

class userControl {

    public function __construct(databaseServer $server) {
        $this->server = new databaseServer();
    }

    function createUser($uname,$pword) {

        $this->server->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
        $result = $this->server->query("SELECT * FROM user_list WHERE uname='" . $this->server->real_escape_string($uname) . "'");
        if ($this->result->num_rows() === 0) {

            if ($this->server->query("INSERT INTO user_list (uname, pword) 
            VALUES ('" . $this->server->real_escape_string($uname) . "','" . $this->server->real_escape_string($pword) . "')") {
                echo "User Added Successfully!";
            }
            else {
                echo "Error Adding User!";
            }
        }

        else {
            echo "User Already Exists!";
        }

    } // createUser

} // userControl

?>

Ancak, bu çalışmıyor ve ben neden göremiyorum. Ben dosyadan UserControl sınıfını atlarsanız benim databaseserver ve çerez sınıflar iyi çalışır, bu yüzden bir hata yerde bu sınıfta olması gerekir biliyorum. OOP ben öğrenmeye çalışıyorum bir şeydir ve ben tökezleyerek devam.

Bana bunu test etmek için sadece databaseserver sınıfta yankıları vardır. Ben aşağıdaki gibi bir index.php dosyasında sınıfları uygulama ediyorum:

<?php

include('definitions.php');
include('class_lib.php');

$bmazed = new databaseServer();

$bmazed->connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);

$sql = "INSERT INTO blah
VALUES ('testing 92')";

$bmazed->query($sql);

$bmazed->disconnect();

// $control = new userControl();

// $uname = "Test1";
// $pword = "test1";

// $control->createUser($uname,$pword);

echo "<br />";
echo "<br />";

?>

Hatları test amaçlı dışarı yorumladı olmuştur, bu yüzden yeniden yazma kod tutmak zorunda değilsiniz.

Gerçekten ben sözdizimi kontrol ettik ve her şey iyi görünüyor, sorun yatıyor hiçbir fikrim yok.

0 Cevap