sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #25034
Re: PHP : Globale Klasser ?
Mads Danquah wrote:
> Er der nogle der ved om man kan lave globale klasser i php (4) ??
Hvad mener du med "globale"?
> Hvis ikke, er der så nogle der har fundet ud af hvordan man kan få lov
> til at lave database kald fra en klasse med phplib (hvor databasekald
> foregå igennem et objekt)
Tja, jeg ved ikke lige, hvorledes det kan siges bedre end phplib's dokumentation. Nå, men:
I et projekt sørger jeg fx. for, at der på alle sider inkluderes følgende kode:
=======================================================
require_once('/home/httpd/phplib/current/php/db_mysql.inc');
class OurDB extends DB_Sql
{
var $Database='ourdatabase';
var $User= 'lowpriviligeuser';
var $Password='somepassword';
// I miss Java's super()
// Maybe I have over-looked a similar PHP OO construct?
function OurDB($query = "") {
$this->query($query);
}
}
=======================================================
Lad os sige, at ovennævnte kode er gemt i en fil kaldet "/home/httpd/includes/auto.php". Jeg kan nu få koden auto-inkluderet ved i php.ini at skrive
auto_prepend_file "/home/httpd/includes/auto.php"
- Eller i httpd.conf eller en passende .htaccess fil at skrive
php_value auto_prepend_file "/home/httpd/includes/auto.php"
Nu har jeg altid adgang til i min kode fx. at skrive:
-------------------------------------------------------
$db = new OurDB();
// We never trust data from the out-side.
$SQLname=addslashes($name);
$SQLemail=addslashes($email);
$SQL="
select distinct name,address,email
from MYTABLE
where
name='$SQLname' and
email='$SQLemail'
";
$db->query($SQL);
$db->next_record();
// We make sure that special characters won't disturb our HTML
$HTMLname= htmlspecialchars($db->f('name');
$HTMLemail= htmlspecialchars($db->f('email');
$HTMLaddress=htmlspecialchars($db->f('address');
print "<p>Name: $HTMLname; e-mail: $HTMLemail, address: $HTMLaddress";
-------------------------------------------------------
I øvrigt vil jeg varmt anbefale diskussionsgruppen dk.edb.internet.webdesign.serverside til denne slags emner, som ikke er Linux-specifikke.
--
Greetings from Troels Arvin, Copenhagen, Denmark
References