Database select uitvoeren in functie
Hey, ik ben bezig met een functie waarmee ik modules die in me database staan kan includen. (Ik weet: het script is niet beveiligt tegen SQL injecties want dat komt later nog). Het probleem ligt bij de SQL select. in een configbestand heb ik een verbinding naar me database gelegt en nu ben ik bezig met die functie. In die functie wil ik een select aanmaken maar dan geeft hij de onderstaande error. Als ik hetzelfde script buiten de functie uitvoer maar wel in hetzelfde bestand dan doet het script het wel
foutmelding:
db_connect script:
Wat zie ik over het hoofd?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function pageinclude()
{
#Select preferences from configurationtable
$sql = "SELECT * FROM core_modules WHERE ModuleMap='".$_GET['module']."' ";
if(!$Smodule = $mysqli->query($sql))
{
trigger_error('Fout in query: '.$mysqli->error);
}
else
{
if($module = $Smodule->fetch_assoc())
{
include("modules/".$module['ModuleMap']."/".$_GET['page'].".php");
}
}
}
pageinclude();
?>
function pageinclude()
{
#Select preferences from configurationtable
$sql = "SELECT * FROM core_modules WHERE ModuleMap='".$_GET['module']."' ";
if(!$Smodule = $mysqli->query($sql))
{
trigger_error('Fout in query: '.$mysqli->error);
}
else
{
if($module = $Smodule->fetch_assoc())
{
include("modules/".$module['ModuleMap']."/".$_GET['page'].".php");
}
}
}
pageinclude();
?>
foutmelding:
db_connect script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$db = array (
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'dbname' => 'Database'
);
$mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['dbname']);
if(mysqli_connect_errno())
{
trigger_error('Fout bij verbinding: '.$mysqli->error);
}
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'dbname' => 'Database'
);
$mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['dbname']);
if(mysqli_connect_errno())
{
trigger_error('Fout bij verbinding: '.$mysqli->error);
}
Wat zie ik over het hoofd?
Binnen de functie(s) bestaan alleen de variabelen die je meegeeft (Tussen de haakjes) en alles wat je ophaalt via de functie global.
Zet in het begin van je functie even: global $mysqli;
Zoiets:
Zet in het begin van je functie even: global $mysqli;
Zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function pageinclude()
{
global $mysqli;
#Select preferences from configurationtable
$sql = "SELECT * FROM core_modules WHERE ModuleMap='".$_GET['module']."' ";
if(!$Smodule = $mysqli->query($sql))
{
trigger_error('Fout in query: '.$mysqli->error);
}
else
{
if($module = $Smodule->fetch_assoc())
{
include("modules/".$module['ModuleMap']."/".$_GET['page'].".php");
}
}
}
?>
function pageinclude()
{
global $mysqli;
#Select preferences from configurationtable
$sql = "SELECT * FROM core_modules WHERE ModuleMap='".$_GET['module']."' ";
if(!$Smodule = $mysqli->query($sql))
{
trigger_error('Fout in query: '.$mysqli->error);
}
else
{
if($module = $Smodule->fetch_assoc())
{
include("modules/".$module['ModuleMap']."/".$_GET['page'].".php");
}
}
}
?>
Aha, die zocht ik :D
Ik gebruik al een tijdje phpnuke en het is best wel vreemd dat ik er niet op kwam. Maarja dat verklaart idd waarom ik bij elke functie in phpnuke een global moest toevoegen.
tx
Ik gebruik al een tijdje phpnuke en het is best wel vreemd dat ik er niet op kwam. Maarja dat verklaart idd waarom ik bij elke functie in phpnuke een global moest toevoegen.
tx




