Ik gebruik een script om fouten met de database connectie te kunnen bekijken.
Ik heb alleen een fout waar ik niet uit kom. Wie kan er even kijken:
function safe_query($db, $query){
global $ERRORS;
return false;
}
if (DEBUG_MODE) {
if (!$result = @mysqli_query($db, $query)) {
die("{$ERRORS['QUERY_ERROR_ADMIN']})
<br> uitgevoerde query: $query .
<br> MySQL-foutnummer: ". mysqli_errno($db) .
"<br>MySQL-melding: " . mysqli_error($db));
}
else {
return $result;
}
}
else{
if (!$result = @mysqli_query($db, $query)){
die ($ERRORS ['QUERY_ERROR_USER']);
}
else {
return $result;
}
}
Melding op mijn scherm:
Warning: mysqli_errno() expects parameter 1 to be mysqli, string given in /public/sites/mijnsite/php/Gastenboek/functions.php on line 40
Warning: mysqli_error() expects parameter 1 to be mysqli, string given in /public/sites/mijnsite /php/Gastenboek/functions.php on line 41
Er is een fout opgetreden bij het werken met de database
)
uitgevoerde query: null .
MySQL-foutnummer:
MySQL-melding:
Is het de bedoeling dat deze code onderdeel is van de functie safe_query? Want die functie heb je al afgesloten tegen de tijd dat je met de code begint.
Want? Waarom denk je dat het niet in $db zit?
Zit daar de connectie in van je database?
Welk stuk heb je toegevoegd toen het nog wel werkte?
En waarom werkt het nu dan niet meer?
Ik heb alleen de code uit bericht 1 toegevoegd daarvoor werkte alles naar behoren.
O ja, dit deel heb ik bovenaan de file toegevoegd
<?php
define ('DEBUG_MODE', true);
$ERRORS ['QUERY_ERROR_USER'] = 'Onze excusus er is iets mis gegaan met de database neem eventueel contact op met de beheerder';
$ERRORS ['QUERY_ERROR_ADMIN'] = 'Er is een fout opgetreden bij het werken met de database<br>';
?>
Waarom het nu niet meer werkt dat vraag ik nu juist. Het idee is het beveiligen van de query's in de database. Zodat de gebruiker niet een of andere vreemde melding te zien krijgt. Maar ook dat de hacker dat niet ziet en daar dus niets mee kan.