• User

    Include in class

    Salve a tutti, sto creando un'applicazione e sto avendo vai problemi con gli include(come al solito!) 🙂

    Punto 1: questo è il codice incriminato:
    [php]
    function save() {
    /*
    $STORE_TYPE = "db";
    $_DB["host"] = "localhost";
    $_DB["user"] = "root";
    $_DB["pass"] = "root";
    $_DB["name"] = "mailinglist";

            $_DB["table_prefix"] = "mailinglist_";
            $STORE_TABLE = "main";
            */
            require "test-config.php";
            include "test-config.php";
            if ( MailingList::is_enabled() ) {
                switch ( $STORE_TYPE) {
                    case "db":
                        $db = new Database($_DB["host"], $_DB["user"], $_DB["pass"], $_DB["name"]);
                        $db->LOG->log_dir = "logs";
                        
                        $query = "SELECT * FROM ".$_DB["table_prefix"]."$STORE_TABLE WHERE name='$this->NAME'";
                                                
                        if ( !mysql_num_rows($db->query($query)) ) {
                            $ret = $db->add_data($_DB["table_prefix"].$STORE_TABLE,
                                    "name", $this->NAME,
                                    "mail", $this->MAIL,
                                    "disabled", $this->DISABLED, 
                                    "subscription_number", $this->SUBSCRTIPTION_NUMBER, 
                                    "object_prefix", $this->OBJECT_PREFIX,
                                    "footer", $this->FOOTER,
                                    "confirm_subscribe", $this->CONFIRM_SUBSCRIBE,
                                    "confirm_unscribe", $this->CONFIRM_UNSCRIBE);
                        }
                        else {
                            $query = "UPDATE FROM ".$_DB["table_prefix"]."$STORE_TABLE SET
                                    name='$this->NAME', 
                                    mail='$this->MAIL', 
                                    disabled='$this->DISABLED', 
                                    subscription_number='$this->SUBSCRTIPTION_NUMBER', 
                                    object_prefix='$this->OBJECT_PREFIX',
                                    footer='$this->FOOTER', 
                                    confirm_subscribe='$this->CONFIRM_SUBSCRIBE', 
                                    confirm_unscribe='$this->CONFIRM_UNSCRIBE'
                                    WHERE name='$this->NAME'";
                            $ret = $db->query($query);
                        }
                        
                        
                        $db->close();
                        return $ret;
                    break;
                    case "file":
                        if ( file_exists($STORE_FILE) ) {
                            $fp = fopen($STORE_FILE, "a");
                        }
                        else {
                            $fp = fopen($STORE_FILE, "w");
                        }
                        
                        fwrite($fp, "name: $this->NAME\n");
                        fwrite($fp, "mail: $this->MAIL\n");
                        fwrite($fp, "disabled: $this->DISABLED\n");
                        fwrite($fp, "subscription_number: $this->SUBSCRTIPTION_NUMBER\n");
                        fwrite($fp, "object_prefix: $this->OBJECT_PREFIX\n");
                        fwrite($fp, "footer: $this->FOOTER\n");
                        fwrite($fp, "confirm_subscribe: $this->CONFIRM_SUBSCRIBE\n");
                        fwrite($fp, "confirm_unscribe: $this->CONFIRM_UNSCRIBE\n");
                        fwrite($fp, "\n");
                        
                        fclose($fp);
                        return true;
                    break;
                    default:
                        die("MailigList::$this->NAME.save()::Error in arguments <b>\$type</b>");
                    break;
                }
            }
            else
                die("MailingList::$this->NAME.save()::Cannot operate, list is disabled");
        }
    

    [/php]Praticamente le variabili commentate all'inizio sono quelle sulle quali ho problemi. Sono incluse tutte in un file config.php che carico nella index, mentre questa parte di codice e' in un file class.mailinglist.php(che come dice il nome e' una classe Mailinglist). Non ho errori relativi al require ed all'include consecutivi, ma semplicemente le variabili vengono considerate vuote, ma ovviamente sono state inizializzate...

    Sapete dirmi come posso risolvere? vorrei evitare se possibile di dovergli passare tutte le variabili come parametri, facendogliele caricare da file...
    ma gli include e i require non funzionano....

    Grazie a tutti ciao


  • User Attivo

    La butto lì: hai provato con include_once?


  • User

    Già provato e non ha funzionato... volevo provare settando a global le variabili esterne che uso, ma non ho trovato referenze a riguardo nei manuali, e non credo che funzioni... anche perchè sono all'interno di una classe, non in un semplice script o una funzione...


  • User

    Ciao hai provato ad inserire config.php nella funzione della classe?
    [php]
    function save() {
    require "test-config.php";
    include "test-config.php";
    include "./config.php"; o include ("./config.php");
    [/php]</SPAN>
    </SPAN>

    </SPAN></SPAN>


  • User

    si, è stata la prima soluzione che mi è venuta in mente, ma nonostante gli include e i require(usando anche include_once e require_once) le variabili non venivano lette... 😞