Hulp nodig bij een script DB Update
PHP Script
Quote:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$Delete = $_GET['D'];
if($Delete > "") {
mysql_query("DELETE FROM startpagina WHERE ID = '$Delete' ");
$melding = "Link Succesvol verwijderd!";
}
?>
$Delete = $_GET['D'];
if($Delete > "") {
mysql_query("DELETE FROM startpagina WHERE ID = '$Delete' ");
$melding = "Link Succesvol verwijderd!";
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
$wijzig = $_GET['W'];
if($wijzig > "") {
$titel = $_GET['U'];
$id = $_GET['ID'];
if($id > "") {
$naam = $_POST['Naam.$id'];
$url = $_POST['URL.$id'];
$wijzigen = true;
if($naam == ""){
$melding .= "Geen <strong>Naam</strong> ingevuld!<br>";
$wijzigen = false;
}
if($url == ""){
$melding .= "Geen <strong>URL</strong> ingevuld!<br>";
$wijzigen = false;
}
if($wijzigen == true) {
mysql_query("UPDATE startpagina SET Titel = '$naam', URL = '$url' WHERE Category = '$titel' AND ID = '$id'");
$melding = "Report: Link " . $naam . " is aangepast!";
}
}
}
?>
$wijzig = $_GET['W'];
if($wijzig > "") {
$titel = $_GET['U'];
$id = $_GET['ID'];
if($id > "") {
$naam = $_POST['Naam.$id'];
$url = $_POST['URL.$id'];
$wijzigen = true;
if($naam == ""){
$melding .= "Geen <strong>Naam</strong> ingevuld!<br>";
$wijzigen = false;
}
if($url == ""){
$melding .= "Geen <strong>URL</strong> ingevuld!<br>";
$wijzigen = false;
}
if($wijzigen == true) {
mysql_query("UPDATE startpagina SET Titel = '$naam', URL = '$url' WHERE Category = '$titel' AND ID = '$id'");
$melding = "Report: Link " . $naam . " is aangepast!";
}
}
}
?>
Het script wat alles weergeeft wat er in me database zit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
$sql = "SELECT * FROM `startpagina` WHERE Category = '$link' ORDER BY Titel ASC";
$resultaat = mysql_query($sql) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)) {
$Titel = $rij["Titel"];
$URL = $rij["URL"];
$ID = $rij["ID"];
$Category = $rij["Category"];
echo '<form method="POST">';
echo '<input name="Naam';
echo $ID;
echo '" type="text" id="Naam" style=width:150px; value="';
echo $Titel;
echo '"> ';
echo '<input name="URL';
echo $ID;
echo '" type="text" id="URL" style=width:170px; value="';
echo $URL;
echo '">';
echo '<a href="';
echo $_SERVER['PHP_SELF'];
echo '?D=';
echo $ID;
echo '&U=';
echo $link;
echo '"><IMG SRC="../Images/delete.png"></a>';
echo '<a href="';
echo $_SERVER['PHP_SELF'];
echo '?ID=';
echo $ID;
echo '&U=';
echo $link;
echo '&W=1"><IMG SRC="../Images/bewerk.png"></a>';
echo '</form>';
}
echo "\n";
?></form><form method="POST" action="<? $_SERVER['PHP_SELF']; ?>?T=<? echo $link; ?>&U=<? echo $link; ?>" name="post">
<em><strong>Nieuw</strong></em><br>
<input name="Naam" type="text" class="cleardefault" id="textfield3" value="Naam" style='width:150px;'>
<input name="URL" type="text" class="cleardefault" id="textfield6" value="http://" style='width:170px;'>
<br>
<input type="submit" name="button4" id="button4" value="Toevoegen">
<br>
</form>
$sql = "SELECT * FROM `startpagina` WHERE Category = '$link' ORDER BY Titel ASC";
$resultaat = mysql_query($sql) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)) {
$Titel = $rij["Titel"];
$URL = $rij["URL"];
$ID = $rij["ID"];
$Category = $rij["Category"];
echo '<form method="POST">';
echo '<input name="Naam';
echo $ID;
echo '" type="text" id="Naam" style=width:150px; value="';
echo $Titel;
echo '"> ';
echo '<input name="URL';
echo $ID;
echo '" type="text" id="URL" style=width:170px; value="';
echo $URL;
echo '">';
echo '<a href="';
echo $_SERVER['PHP_SELF'];
echo '?D=';
echo $ID;
echo '&U=';
echo $link;
echo '"><IMG SRC="../Images/delete.png"></a>';
echo '<a href="';
echo $_SERVER['PHP_SELF'];
echo '?ID=';
echo $ID;
echo '&U=';
echo $link;
echo '&W=1"><IMG SRC="../Images/bewerk.png"></a>';
echo '</form>';
}
echo "\n";
?></form><form method="POST" action="<? $_SERVER['PHP_SELF']; ?>?T=<? echo $link; ?>&U=<? echo $link; ?>" name="post">
<em><strong>Nieuw</strong></em><br>
<input name="Naam" type="text" class="cleardefault" id="textfield3" value="Naam" style='width:150px;'>
<input name="URL" type="text" class="cleardefault" id="textfield6" value="http://" style='width:170px;'>
<br>
<input type="submit" name="button4" id="button4" value="Toevoegen">
<br>
</form>
Het gaat puur om het bewerken van de links hij ziet geen inhoud in mijn inputs
De delete functie werkt perfect en weergave werkt ook perfect..
Hoop dat jullie mij kunnen helpen!
Met vriendelijke groet,
Mark
Toevoeging op 13/09/2012 15:59:58:
Hij maakt er wel een rommeltje van zo met script herkenning!
kan ik dat uitzetten??
Gewijzigd op 13/09/2012 16:12:49 door Mark van den Brink
Je moet om je code's [.code] en [./code] zetten. Maar dit dan zonder die . er in
Dank u!
- Codeblok 1, lijn 3, waarom sta je te kijken of een getal groter of kleiner is dan een string? Dit is hetzelfde als appels en peren vergelijken.
- Variabelen horen buiten quotes.
- Ik zie SQL-injection op lijn 4
- Ik mis goede foutafhandeling op je queries
- Laatste codeblok, lijn 40 mis ik een echo bij de variabele. Je kan hem ook leeglaten, want $_SERVER['PHP_SELF'] is gevoelig voor XXS.
Gewijzigd op 13/09/2012 16:24:04 door N K
Code (php)
en dan
Dus je past de name van de input aan aan de waarde van een id.
Dit is wat een vreemde manier van werken.
Waar is dat goed/nodig/nuttig voor?
Gewijzigd op 13/09/2012 16:39:34 door Kris Peeters
Quote:
- Codeblok 1, lijn 2, waarom sja je $_GET op in een nieuwe variabele, dat is onnodig.
- Codeblok 1, lijn 3, waarom sta je te kijken of een getal groter of kleiner is dan een string? Dit is hetzelfde als appels en peren vergelijken.
- Variabelen horen buiten quotes.
- Ik zie SQL-injection op lijn 4
- Ik mis goede foutafhandeling op je queries
- Laatste codeblok, lijn 40 mis ik een echo bij de variabele. Je kan hem ook leeglaten, want $_SERVER['PHP_SELF'] is gevoelig voor XXS.
- Codeblok 1, lijn 3, waarom sta je te kijken of een getal groter of kleiner is dan een string? Dit is hetzelfde als appels en peren vergelijken.
- Variabelen horen buiten quotes.
- Ik zie SQL-injection op lijn 4
- Ik mis goede foutafhandeling op je queries
- Laatste codeblok, lijn 40 mis ik een echo bij de variabele. Je kan hem ook leeglaten, want $_SERVER['PHP_SELF'] is gevoelig voor XXS.
1) Klopt is inderdaad onnodig want het is al een variable opzicht.
2) Staat genoteerd
3) Hoe bedoel je buiten quotes
4) Mag je me uitleggen rookie op gebied van injections
5) Hoe moet ik hem goed afhandelen?
6) Die hoeft inderdaad leeg te zijn want dat is mijn te toevoegen form, en wat is xxs?
Bedankt voor jullie aandacht misschien kunnen we het samen oplossen?
Dit is eigenlijk de bedoeling op mijn website heb ik een pagina met links naar andere website's soort startpagina.
Nu bewerk ik die via mijn admin pagina.
En daar heb ik een dropbox in waar ik kan kiezen uit welke startpagina ik wil wijzigen dus zeg maar algemeen met (8 links) of webdesign met (9 links)is een voorbeeld he.
Als je dan algemeen selecteert krijg je alle inhoud van die startpagina links te zien in dit geval dus 8
Die staan allemaal in <form> om ze te allemaal apart te kunnen aanpassen of verwijderen.
Zo ziet dat form script eruit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table width="944" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="500" valign="top"><strong>Algemeen </strong><br>
<form method="POST"><input name="Naam10" type="text" id="Naam" style=width:150px; value="Google"> <input name="URL10" type="text" id="URL" style=width:170px; value="http://www,google.nl"><a href="/Admin/Admin-Portaal.php?D=10&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=10&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam11" type="text" id="Naam" style=width:150px; value="Hotmail"> <input name="URL11" type="text" id="URL" style=width:170px; value="http://www.hotmail.com"><a href="/Admin/Admin-Portaal.php?D=11&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=11&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam12" type="text" id="Naam" style=width:150px; value="Marktplaats"> <input name="URL12" type="text" id="URL" style=width:170px; value="http://www.marktplaats.nl"><a href="/Admin/Admin-Portaal.php?D=12&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=12&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam14" type="text" id="Naam" style=width:150px; value="Snowplanet"> <input name="URL14" type="text" id="URL" style=width:170px; value="http://www.snowplanet.nl"><a href="/Admin/Admin-Portaal.php?D=14&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=14&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam13" type="text" id="Naam" style=width:150px; value="Wikipedia"> <input name="URL13" type="text" id="URL" style=width:170px; value="http://www.wikipedia.nl"><a href="/Admin/Admin-Portaal.php?D=13&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=13&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam1" type="text" id="Naam" style=width:150px; value="Youtube"> <input name="URL1" type="text" id="URL" style=width:170px; value="http://www.youtube.nl"><a href="/Admin/Admin-Portaal.php?D=1&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=1&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form>
</form><form method="POST" action="?T=Algemeen&U=Algemeen" name="post">
<em><strong>Nieuw</strong></em><br>
<input name="Naam" type="text" class="cleardefault" id="textfield3" value="Naam" style='width:150px;'>
<input name="URL" type="text" class="cleardefault" id="textfield6" value="http://" style='width:170px;'>
<br>
<input type="submit" name="button4" id="button4" value="Toevoegen">
<br>
</form></td>
</tr>
</table>
<tr>
<td width="500" valign="top"><strong>Algemeen </strong><br>
<form method="POST"><input name="Naam10" type="text" id="Naam" style=width:150px; value="Google"> <input name="URL10" type="text" id="URL" style=width:170px; value="http://www,google.nl"><a href="/Admin/Admin-Portaal.php?D=10&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=10&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam11" type="text" id="Naam" style=width:150px; value="Hotmail"> <input name="URL11" type="text" id="URL" style=width:170px; value="http://www.hotmail.com"><a href="/Admin/Admin-Portaal.php?D=11&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=11&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam12" type="text" id="Naam" style=width:150px; value="Marktplaats"> <input name="URL12" type="text" id="URL" style=width:170px; value="http://www.marktplaats.nl"><a href="/Admin/Admin-Portaal.php?D=12&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=12&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam14" type="text" id="Naam" style=width:150px; value="Snowplanet"> <input name="URL14" type="text" id="URL" style=width:170px; value="http://www.snowplanet.nl"><a href="/Admin/Admin-Portaal.php?D=14&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=14&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam13" type="text" id="Naam" style=width:150px; value="Wikipedia"> <input name="URL13" type="text" id="URL" style=width:170px; value="http://www.wikipedia.nl"><a href="/Admin/Admin-Portaal.php?D=13&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=13&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form><form method="POST"><input name="Naam1" type="text" id="Naam" style=width:150px; value="Youtube"> <input name="URL1" type="text" id="URL" style=width:170px; value="http://www.youtube.nl"><a href="/Admin/Admin-Portaal.php?D=1&U=Algemeen"><IMG SRC="../Images/delete.png"></a><a href="/Admin/Admin-Portaal.php?ID=1&U=Algemeen&W=1"><IMG SRC="../Images/bewerk.png"></a></form>
</form><form method="POST" action="?T=Algemeen&U=Algemeen" name="post">
<em><strong>Nieuw</strong></em><br>
<input name="Naam" type="text" class="cleardefault" id="textfield3" value="Naam" style='width:150px;'>
<input name="URL" type="text" class="cleardefault" id="textfield6" value="http://" style='width:170px;'>
<br>
<input type="submit" name="button4" id="button4" value="Toevoegen">
<br>
</form></td>
</tr>
</table>
Dus dan doormiddel van die moet ik ze kunnen aanpassen!
Gewijzigd op 13/09/2012 17:03:34 door Mark van den Brink
3) echo "Dit is $fout"; is fout, en echo "Dit is ".$goed; is goed.
Variabelen horen niet binnen quotes.
4) Kijk eens op WIkipedia naar SQL-Injection en er gaat een wereld voor je open
5) Kijk eens op http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/. Op zo een manier, met if-else....
6) Tja, kijk eens op Google/Wikipedia/tutorials....
Gewijzigd op 13/09/2012 17:02:56 door - Ariën -
Wat dacht je van deze constructie?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
while ($rij = mysql_fetch_assoc($resultaat)) {
...
echo '<form method="POST" action="">';
echo '<input name="Naam" value="' . htmlentities($Titel) . '">' ;
echo '<input type="hidden" name="id" value="' . (int) $ID . '">' ;
...
}
?>
while ($rij = mysql_fetch_assoc($resultaat)) {
...
echo '<form method="POST" action="">';
echo '<input name="Naam" value="' . htmlentities($Titel) . '">' ;
echo '<input type="hidden" name="id" value="' . (int) $ID . '">' ;
...
}
?>
Dan heb je dus $_POST['Naam'] voor de naam en $_POST['id'] voor de id
Gewijzigd op 13/09/2012 17:25:51 door Kris Peeters
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
if(isset($_POST['wijzig'])){
$wijzigen = true;
if($_POST['Naam'] == ""){
$melding .= "Geen <strong>Naam</strong> ingevuld!<br>";
$wijzigen = false;
}
if($_POST['URL'] == ""){
$melding .= "Geen <strong>URL</strong> ingevuld!<br>";
$wijzigen = false;
}
if($wijzigen == true) {
mysql_query("UPDATE startpagina SET Titel = '".$_POST['Naam']."', URL = '".$_POST['URL']."' WHERE ID = '".$_POST['id']."'");
$melding = "Report: Link " . $_POST['Naam'] . " is aangepast!";
}
}
?>
if(isset($_POST['wijzig'])){
$wijzigen = true;
if($_POST['Naam'] == ""){
$melding .= "Geen <strong>Naam</strong> ingevuld!<br>";
$wijzigen = false;
}
if($_POST['URL'] == ""){
$melding .= "Geen <strong>URL</strong> ingevuld!<br>";
$wijzigen = false;
}
if($wijzigen == true) {
mysql_query("UPDATE startpagina SET Titel = '".$_POST['Naam']."', URL = '".$_POST['URL']."' WHERE ID = '".$_POST['id']."'");
$melding = "Report: Link " . $_POST['Naam'] . " is aangepast!";
}
}
?>
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
$sql = "SELECT * FROM `startpagina` WHERE Category = '$link' ORDER BY Titel ASC";
$resultaat = mysql_query($sql) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)) {
$Titel = $rij["Titel"];
$URL = $rij["URL"];
$ID = $rij["ID"];
echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'?U='.$link.'">';
echo '<input name="Naam" value="' . htmlentities($Titel) . '">' ;
echo '<input name="URL" value="' . htmlentities($URL) . '">' ;
echo '<input type="hidden" name="id" value="' . (int) $ID . '">
<input type="image" src="../Images/delete.png" name="delete" value="delete">
<input type="image" src="../Images/bewerk.png" name="wijzig" value="wijzig">
</form>';
}
echo "\n";
?>
$sql = "SELECT * FROM `startpagina` WHERE Category = '$link' ORDER BY Titel ASC";
$resultaat = mysql_query($sql) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)) {
$Titel = $rij["Titel"];
$URL = $rij["URL"];
$ID = $rij["ID"];
echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'?U='.$link.'">';
echo '<input name="Naam" value="' . htmlentities($Titel) . '">' ;
echo '<input name="URL" value="' . htmlentities($URL) . '">' ;
echo '<input type="hidden" name="id" value="' . (int) $ID . '">
<input type="image" src="../Images/delete.png" name="delete" value="delete">
<input type="image" src="../Images/bewerk.png" name="wijzig" value="wijzig">
</form>';
}
echo "\n";
?>
Hij werkt nu 100% naar behoren maar nu zou ik nog graag willen weten...hoe zouden jullie dit script "veilig maken"
Ik heb nu mijn delete functie aangepast in iets veiliger zoals gezegd..hoop ik tenminst!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sql = "DELETE FROM startpagina WHERE ID = ".$_GET['D']." LIMIT 1";
$voerin = mysql_query($sql);
if(mysql_affected_rows() < 1)
{
$melding = 'Deze link stond niet in de database';
}
if(!isset($melding) && $voerin)
{
$melding = 'Succesvol verwijderd';
}
else
{
}
?>
$sql = "DELETE FROM startpagina WHERE ID = ".$_GET['D']." LIMIT 1";
$voerin = mysql_query($sql);
if(mysql_affected_rows() < 1)
{
$melding = 'Deze link stond niet in de database';
}
if(!isset($melding) && $voerin)
{
$melding = 'Succesvol verwijderd';
}
else
{
}
?>
iemand suggesties of tips?
Gewijzigd op 13/09/2012 20:56:01 door Mark van den Brink
https://wouterj.github.com/sql-boilerplate/ daar zie je een groot aantal code voorbeelden van PHP en SQL waarbij ik laat zien wat ik het veiligst en de beste foutafhandeling vind. (foutafhandeling is de fundering van elk script het zorgt ervoor dat je tijdens het developen snel kunt debuggen (fouten oplossen) en in productie omgeving de gebruiker geen PHP errors te zien krijgt)
1 hele belangrijke tip: Vertrouw nooit een variabele in een query.
Variabele zijn hartstikke handig alleen ze hebben 1 nadeel: Je weet nooit zeker wat ze voor waarde bevatten. Stel ik heb deze query:
Stel ik ben een hacker en vul voor $id dit in: '0 OR 1=1' Dat zorgt ervoor dat de query dit wordt:
waarbij dus alles wordt weggehaald (1=1 is namelijk altijd true).
Daarom gebruiken we hier typecasting, je zorgt dat $id altijd een int (int = integer = geheel nummer = ..., -2, -1 0, 1, 2, 3, ...) is. Dat doen we door er (int) voor te zetten:
Stel dat we i.p.v. id name gebruiken. Dan moet je wel een string (stukje tekst) invullen en kunnen we dus niet typecasten naar een int! Gelukkig heeft MySQL daarvoor de mysql_real_escape_string uit gevonden. Zoals de functienaam al zegt gebruik je dit voor elke string om deze veilig te maken:
We hebben er nu voor gezorgd dat de SQL injection hack methode niet meer mogelijk is.
Kijk eens op sql boilerplate: 1 hele belangrijke tip: Vertrouw nooit een variabele in een query.
Variabele zijn hartstikke handig alleen ze hebben 1 nadeel: Je weet nooit zeker wat ze voor waarde bevatten. Stel ik heb deze query:
Stel ik ben een hacker en vul voor $id dit in: '0 OR 1=1' Dat zorgt ervoor dat de query dit wordt:
waarbij dus alles wordt weggehaald (1=1 is namelijk altijd true).
Daarom gebruiken we hier typecasting, je zorgt dat $id altijd een int (int = integer = geheel nummer = ..., -2, -1 0, 1, 2, 3, ...) is. Dat doen we door er (int) voor te zetten:
Stel dat we i.p.v. id name gebruiken. Dan moet je wel een string (stukje tekst) invullen en kunnen we dus niet typecasten naar een int! Gelukkig heeft MySQL daarvoor de mysql_real_escape_string uit gevonden. Zoals de functienaam al zegt gebruik je dit voor elke string om deze veilig te maken:
We hebben er nu voor gezorgd dat de SQL injection hack methode niet meer mogelijk is.
Bedankt Wouter voor de heldere uitleg over Injections nu begrijp ik die codes wat beter.
1 ding je website werkt niet krijg een foutmelding! "Pagina is niet beschibaar!"
Ik heb 1 deel alvast beveiligd...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(isset($_POST['delete'])){
$sql = "DELETE FROM startpagina WHERE ID = ".(int)$_POST['id']." LIMIT 1";
if(($sql = mysql_query($sql)) === false) {
$melding = showSQLError($sql,'Fout bij verwijderen link.');
}
else
{
$melding = 'Link is succesvol verwijderd!';
}
}
?>
if(isset($_POST['delete'])){
$sql = "DELETE FROM startpagina WHERE ID = ".(int)$_POST['id']." LIMIT 1";
if(($sql = mysql_query($sql)) === false) {
$melding = showSQLError($sql,'Fout bij verwijderen link.');
}
else
{
$melding = 'Link is succesvol verwijderd!';
}
}
?>
Geen overbodige variable
Goeie foutafhandeling
en volgens mij ook veilig!
Van het weekend de rest moet goed uitrusten heb morgen een marathon te werken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if(isset($_POST['delete'])){
$sql = "DELETE FROM startpagina WHERE ID = ".(int)$_POST['id']." LIMIT 1";
if(($sql = mysql_query($sql)) === false) {
$melding = showSQLError($sql,'Fout bij verwijderen link.');
}
elseif(mysql_affected_rows() == 0)
{
$melding = 'Geen records verwijderd. <br />Query: '.$sql;
}
else
{
$melding = 'Link is succesvol verwijderd!';
}
?>
if(isset($_POST['delete'])){
$sql = "DELETE FROM startpagina WHERE ID = ".(int)$_POST['id']." LIMIT 1";
if(($sql = mysql_query($sql)) === false) {
$melding = showSQLError($sql,'Fout bij verwijderen link.');
}
elseif(mysql_affected_rows() == 0)
{
$melding = 'Geen records verwijderd. <br />Query: '.$sql;
}
else
{
$melding = 'Link is succesvol verwijderd!';
}
?>
Gewijzigd op 15/09/2012 18:29:50 door Mark van den Brink
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
echo '<form method="POST">'.
'<input name="Naam'.
$ID.
'" type="text" id="Naam" style=width:150px; value="'.
$Titel.
'"> '.
'<input name="URL'.
$ID.
'" type="text" id="URL" style=width:170px; value="'.
$URL;
'<input name="Naam'.
$ID.
'" type="text" id="Naam" style=width:150px; value="'.
$Titel.
'"> '.
'<input name="URL'.
$ID.
'" type="text" id="URL" style=width:170px; value="'.
$URL;
of dit
je html buiten de php tags
Oke en wat is het grote voordeel daarvan?