als ik gebruik maak van globals krijg ik Call to undefined function: selecteerdb() in login.php. Daar roep ik em zo aan:selecteerDB('database');

mijn db.php waar de functie zit ziet er zo uit:
<?
global $db_url;
$db_url = 'localhost';
global $gebruiker;
$gebruiker = 'piet';
global $wachtwoord;
$wachtwoord = 'puk';
global $db_naam;
$db_naam = 'database';

global $link;
global $huidige_db;

/*
maakt een verbinding met de db
*/

function maakDBVerbinding()
{
$db_url, $gebruiker, $wachtwoord, $db_naam;

$link = mysql_connect($db_url, $gebruiker, $wachtwoord);
if (!$link)
{
die('Could not connect: ' . mysql_error());
}

}

/*
sluit de DB verbinding
*/

function sluitDBVerbinding()
{
msql_close($link);
}

/*
selecteert een db met de SQL server waarmee verbonden is
*/

function selecteerDB($db_nm)
{
if($link == ''){ maakDBVerbinding(); }
if($db_nm == ''){ $db_nm = $db_naam; }
$huidige_db = mysql_select_db($db_nm);
}
//}
?>

Normaal zonder globals had ik geen problemen.. Maar met nieuwe php zijn deze een must heb ik gelezen?
kan iemand mij helpen ?
Als je een variable van buiten een functie of class in een functie of class wil gebruiken gaat dat zo:
<?
$var = 'Hallo!';

class zeghoi
{
function zeghoi()
{
echo $GLOBALS['var'];
}
}
?>
Moet dat niet $_GLOBALS zijn?
Heb je die file uberhaupt wel geinclude?

if ($link) < gebruik die, is iets beter.

OOP *hint*
Kasper schreef op 06.10.2004 18:05
Moet dat niet $_GLOBALS zijn?


Neej zonder _ :)
Ja, maar is het dan niet global $var = 'Hallo!'; ?
En nu weet ik nog niet hoe ik het moet doen ..
Me functie is dus wel ok , alleen de aanroep in me inlog.php niet?
btw ik include em wel;)
Mitch schreef op 06.10.2004 19:16
[quote=Kasper schreef op 06.10.2004 18:05]Moet dat niet $_GLOBALS zijn?


Neej zonder _ :)[/quote]

Eej, dat is nieuw voor me. Dan kan ik dat wel gebruiken! Thnx! :)
Holy crap! Zoveel globals! :-/

Je negeert de volledige werking van een functie met zo'n stapel globals.
Gewone variabelen van maken en doorgeven als parameters in je functie-aanroep maakt het geheel wat overzichtelijker en zorgt ervoor dat je later geen problemen krijgt bij het hergebruiken van je variabelen of van je functies.
Of ipv ze globallen om ze in je functies te kunnen gebruiken, zou je een class kunnen overwegen.

Zoiets als de mijne bij de reacties van deze tut.

Reageren