ik heb een script die reageert als er een bug optreed op mijn website.
alleen ik blijf een fout houden die ik niet begrijp.

kan iemand mij helpen misschien?


<?php
mysqli_query($dbcreat,"INSERT INTO `Gevonden_bugs` (
ipv4,
ipv6,
gebruikersnaam,
pagina_injectie,
injectie_opdracht
)values(
'".mysqli_real_escape_string($dbcreat,raw_ip())."',
'".mysqli_real_escape_string($dbcreat,binaryIP())."',
'".mysqli_real_escape_string($dbcreat,$data->login)."',
'".mysqli_real_escape_string($dbcreat,$bug_bestand)."',
'".mysqli_real_escape_string($dbcreat,$bug_string)."')");

Error_behandelen("<link href=\"css/style100.css\" rel=\"stylesheet\" type=\"text/css\" />
<table summary=\"buggevonden\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">
<tr><td class=\"subtitle\">Error</td></tr>
<tr><td class=\"maintxt\">Er is een fout ondekt in uw opdracht het is waarschijnlijk niks ernstigst.</td></tr>
<tr><td class=\"subtitle\">&nbsp;</td></tr></table>");
bug_gevonden();
?>

dit zijn de fouten.

<?php
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home//domains/.nl/public_html/setup.php on line 132
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home//domains/.nl/public_html/setup.php on line 133
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home//domains/.nl/public_html/setup.php on line 134
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home//domains/.nl/public_html/setup.php on line 135
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home//domains/.nl/public_html/setup.php on line 136
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home//domains/.nl/public_html/setup.php on line 136
?>

Volgens de error is er geen sql connectie maar die is er wel, mijn database code werkt namelijk 40 lijnen lager gewoon wel.


mvg
ik heb een script die reageert als er een bug optreed op mijn website.

En dat is een functie? Een error handler? Iets anders?

Volgens de error is er geen sql connectie maar die is er wel, mijn database code werkt namelijk 40 lijnen lager gewoon wel.

Dan maak je dus ergens in die 40 regels pas een connectie. Je foutmelding treedt op nog voordat je een connectie hebt.
Tussen die 40 lijnen staat alleen lappen tekst geen connectie, de database connectie staat 100% er boven.
het is een vreemde fout.

[size=xsmall]Toevoeging op 26/02/2015 20:25:03:[/size]

misschien als ik een apparte db connectie maakt en dan na de functie.

mysqli_close(); gebruikt, misschien werkt dat.

nee dat werkt niet dit is trouwens een functie.
en dan na de functie

Als dit een functie is, dan kent deze de (globale) variabele $dbcreat niet.

Het lijkt erop dat je niet alle relevante code hebt geplaatst, wat analyse zo goed als onmogelijk maakt.
Het is opgelost,

bug_gevonden($dbcreat);

loste het op.
Om mezelf maar te quoten:
Als dit een functie is, dan kent deze de (globale) variabele $dbcreat niet.


Daarnaast is een blacklist (een lijst van niet-toegestane invoer) een slecht idee als beveiliging.

Als je namelijk een geval vergeet ben je genaaid.

Controleer (uitsluitend) op toegestane invoer.
Het is niet perse een blacklist.
Maar de website waar ik mee bezig ben is nog in Alpha fase en word getest.
als de website af is gaat de functie de prullenbak in. nu is het alleen zo dat ik weet waar er zwakkenpunten kunnen zitten.

[size=xsmall]Toevoeging op 26/02/2015 20:52:48:[/size]

thanks voor uw hulp ;)
De insteek is gewoon verkeerd. Je moet niet controleren op de 235825230853892352502 dingen waar het niet gelijk aan mag zijn, je moet het controleren op wat het wel mag zijn. En als je het daarna wilt gaan gebruiken moet je het escapen in de escape-methode van die context.
Met Thomas eens. Programmeer altijd uit een gedacht dat alles fout gaat, en als alles toevallig goed gaat dat je wat op je scherm ziet, MAAR check altijd of de gebruiker de paden bewandeld die jij hebt vastgesteld.

Reageren