- Home
- Categorie
- Coding e Sistemistica
- PHP
- Include in class
-
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
-
La butto lì: hai provato con include_once?
-
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...
-
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>
-
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...