Error, is dit veilig?

Gestart doorDylan9 reacties81 weergaven

10 berichten · pagina 1 van 1

Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Als ik dit in me URL ding zet: http://localhost/nieuws?id=

komt er deze error:

Warning: Invalid argument supplied for foreach() in C:xampphtdocs
ieuws.php on line 33

Is dit veilig tegen SQL Injections etc? Hoe kan ik deze fout oplossen?

Line 33:

[COLOR= #0000BB]<?php[/COLOR] 
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$news_row[/COLOR] [COLOR= #007700]as &[/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700])[/COLOR]
?>
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Foreach verwacht een array, die jij niet geeft.

Ergens in je mysql fout-afhandeling gaat het dus al fout omdat je niet checkt óf je rijen hebt.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Rik schreef:
Foreach verwacht een array, die jij niet geeft.

Ergens in je mysql fout-afhandeling gaat het dus al fout omdat je niet checkt óf je rijen hebt.
Hmm. snap ik niet echt

[COLOR= #0000BB]<?php
$news_row[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]fetch_assoc[COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM "[/COLOR][COLOR= #007700].[/COLOR]PREFIX[COLOR= #007700].[/COLOR][COLOR= #DD0000]"news WHERE id = "[/COLOR][COLOR= #007700].[/COLOR] [URL="http://www.php.net/mysql_real_escape_string"]mysql_real_escape_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$id[/COLOR][COLOR= #007700]) .[/COLOR][COLOR= #DD0000]" LIMIT 1"[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$news_row[/COLOR] [COLOR= #007700]as &[/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700]) {[/COLOR]
    [COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$input[/COLOR][COLOR= #007700]->[/COLOR]HoloText[COLOR= #007700]([/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700],[/COLOR] true[COLOR= #007700]);
}[/COLOR]
?>


stukje meer code.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Waar check je of je mysql results teruggeeft?
Nergens.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Rik schreef:
Waar check je of je mysql results teruggeeft?
Nergens.
Hmm.

Maar als ik die weg haal heb ik die error niet..

Is het veilig?
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
... Je luistert echt niet naar wat ik zeg hé?

En ja, het is verder wel veilig voor SQL injection emo
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Wat Rik bedoeld is:

[COLOR= #0000BB]<?php
$news_row[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]fetch_assoc[COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM "[/COLOR][COLOR= #007700].[/COLOR]PREFIX[COLOR= #007700].[/COLOR][COLOR= #DD0000]"news WHERE id = "[/COLOR][COLOR= #007700].[/COLOR] [URL="http://www.php.net/mysql_real_escape_string"]mysql_real_escape_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$id[/COLOR][COLOR= #007700]) .[/COLOR][COLOR= #DD0000]" LIMIT 1"[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$news_row[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]
    [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$news_row[/COLOR] [COLOR= #007700]as &[/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700]) {[/COLOR]
        [COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$input[/COLOR][COLOR= #007700]->[/COLOR]HoloText[COLOR= #007700]([/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700],[/COLOR] true[COLOR= #007700]);
    }
}[/COLOR]
?>


En dan kan je het beter zo doen:

[COLOR= #0000BB]<?php
$news_row[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]fetch_assoc[COLOR= #007700]([/COLOR][COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM "[/COLOR][COLOR= #007700].[/COLOR]PREFIX[COLOR= #007700].[/COLOR][COLOR= #DD0000]"news WHERE id = "[/COLOR][COLOR= #007700].[/COLOR] [URL="http://www.php.net/mysql_real_escape_string"]mysql_real_escape_string[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$id[/COLOR][COLOR= #007700]) .[/COLOR][COLOR= #DD0000]" LIMIT 1"[/COLOR][COLOR= #007700]));[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$news_row[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]
    [URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$news_row[/COLOR] [COLOR= #007700]as &[/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700]) {[/COLOR]
        [COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$input[/COLOR][COLOR= #007700]->[/COLOR]HoloText[COLOR= #007700]([/COLOR][COLOR= #0000BB]$value[/COLOR][COLOR= #007700],[/COLOR] true[COLOR= #007700]);
    }
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]Nieuws bericht niet gevonden![/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// aanpassen naar wat er niet gevonden kon worden[/COLOR]
[COLOR= #007700]}[/COLOR]
?>
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
^ Fijn dat het werk weer gedaan word voor de TS zodat hij de volgende keer weer niet zelf zoekt...
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Rik schreef:
^ Fijn dat het werk weer gedaan word voor de TS zodat hij de volgende keer weer niet zelf zoekt.
De volgende keer weet hij het dan, en als hij dan nogmaals vraagt zeg ik ook niets meer..
En ik ben wel met je eens dat hij beter naar jou had kunnen luisteren en even Googlen..
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Bedankt.

toevoeging op 18 april 2012, 15:50:04:
Ik zou voortaan eerst Google`n xd
toevoeging op 18 april 2012, 15:50:04:
Ik zou voortaan eerst Google`n xd
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren