is dit een veilig script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart nukem

bart nukem

26/02/2009 16:19:00
Quote Anchor link
Onderstaand script doet wat hij moet doen.. maar is het ook een veilig script. Zou iemand hier is naar willen kijken? Het haalt data uit een tabel aanvraag, bekijkt of deze data al voorkomt in de tabel clubrec, indien ja volgt een update tabel clubrec en delete in de aanvraag, en anders een insert in clubrec gevolgd door een delete in de aanvraag... bvd



Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
include('config.php');
if(!isset($_SESSION['gebruiker'])) {
    header("Location: login.php");
}


// verbinding met database invoegen
require("contactdb.php");

// controleren of pagina zichzelf heeft aangeroepen
// via hidden-field uit het formulier


if(($_POST[bevestiging])) {
    $vnaam=mysql_real_escape_string(ucfirst(strtolower($_POST[vnaam])));
    $anaam=ucfirst(strtolower($_POST[anaam]));
    $geslacht=ucfirst(strtolower($_POST[geslacht]));
    $cat=$_POST[cat];
    $onderdeel=$_POST[onderdeel];
    $waar=ucfirst(strtolower($_POST[waar]));
    $jaar=$_POST[jaar];
    $binbut=$_POST[binbut];
    $prestatie=$_POST[prestatie];
    
        $resultaat = mysql_query("SELECT * FROM clubrec WHERE geslacht = '$geslacht' AND cat = '$cat' AND onderdeel = '$onderdeel' AND binbut = '$binbut'");
        $count = mysql_num_rows($resultaat);
        if ($count < 1) {
                
        $sql=" INSERT into clubrec (vnaam,anaam,geslacht,cat,onderdeel,waar,jaar,binbut,prestatie)
        VALUES(
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['vnaam']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['anaam']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['geslacht']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['cat']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['onderdeel']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['waar']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['jaar']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['binbut']))))."',
'"
.mysql_real_escape_string(htmlspecialchars(ucfirst(strtolower($_POST['prestatie']))))."'
)"
;
        
    
mysql_query($sql);
mysql_query("DELETE FROM aanvraag WHERE id='".$_POST['id']."'");
header("Location: overzicht.php");
}


elseif ($count > 0) {
//vanaf hier als er meer als 0 gevonden zijn
$query="UPDATE clubrec SET
    
        vnaam = '"
. ucfirst(strtolower($_POST["vnaam"])) ."',
        anaam = '"
. ucfirst(strtolower($_POST["anaam"])) . "',
        geslacht = '"
. ucfirst(strtolower($_POST["geslacht"])) ."',
        cat = '"
. ucfirst(strtolower($_POST["cat"])) ."',
        onderdeel = '"
. ucfirst(strtolower($_POST["onderdeel"])) ."',
        waar = '"
. ucfirst(strtolower($_POST["waar"])) ."',
        jaar = '"
. $_POST["jaar"] ."',
        binbut = '"
. ucfirst(strtolower($_POST["binbut"])) ."',
        prestatie = '"
. $_POST["prestatie"] . "'
WHERE geslacht = '$geslacht' AND cat = '$cat' AND onderdeel = '$onderdeel' AND binbut = '$binbut'"
;
$result = mysql_query($query) or die ("FOUT1: " . mySql_error());
    echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
    echo ("<a href=\"overzicht.php\">Terug naar het overzicht</a>");
    mysql_query("DELETE FROM aanvraag WHERE id='".$_POST['id']."'");





// tot hier als er meer als 0 gevonden zijn
}
}
else{
    // pagina heeft zichzelf nog niet aangeroepen,
    // formulier tonen om gegevens te bewerken

        $query="SELECT * FROM aanvraag WHERE id=" . $_GET["id"];
        $result = mysql_query($query) or die ("FOUT2: " . mysql_error());
?>

<html>
<head>
    <title>Bewerken: wijzig de gegevens</title>
    <link href="style2.css" rel="stylesheet" type="text/css" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<h2>Indien nodig wijzig deze gegevens:</h2>
<?php
// gegevens ophalen en toekennen aan tijdelijke variabelen
while ($rij = mysql_fetch_array($result)){
    $vn = $rij['vnaam'];
    $an = $rij['anaam'];
    $ge = $rij['geslacht'];
    $ca = $rij['cat'] ;
    $on = $rij['onderdeel'];
    $wa = $rij['waar'];
    $ja = $rij['jaar'];
    $bi = $rij['binbut'] ;
    $pr = $rij['prestatie'];
    
    
    
}
?>

<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
    <input type="hidden" name="bevestiging" value="1">
    <input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
Voornaam:    <input type="text" name="vnaam" value="<?php echo($vn);?>" size="30"><br>
Achternaam:    <input type="text" name="anaam" value="<?php echo($an);?>" size="30"><br>
Geslacht: <input type="text" name="geslacht" value="<?php echo($ge);?>" size="5"><br>
Categorie: <input type="text" name="cat" value="<?php echo($ca);?>" size="5""><br>
Onderdeel:    <input type="text" name="onderdeel" value="<?php echo($on);?>" size="30"><br>
Waar:    <input type="text" name="waar" value="<?php echo($wa);?>" size="30"><br>
Jaar: <input type="text" name="jaar" value="<?php echo($ja);?>" size="5"><br>
In of outdoor: <input type="text" name="binbut" value="<?php echo($bi);?>" size="5""><br>
Prestatie:    <input type="text" name="prestatie" value="<?php echo($pr);?>" size="30"><br>

<hr>
<input type="Submit" value="Toevoegen aan clubrecords">
<input type="Button" value="Terug" onclick="javascript:history.back();">
</form>

<?php
 }
include("footer.html");
?>
 
PHP hulp

PHP hulp

03/05/2024 21:15:19
 
- SanThe -

- SanThe -

26/02/2009 16:24:00
Quote Anchor link
Nee. Het is sql-injection gevoelig.

Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
 
Bart nukem

bart nukem

26/02/2009 16:26:00
Quote Anchor link
heb ik gedaan. het geeft dan wel meteen een error! Notice: Use of undefined constant bevestiging - assumed 'bevestiging' in /........../toevoegen_aanvraag.php on line 14

Notice: Undefined index: bevestiging in ......../toevoegen_aanvraag.php on line 14
Gewijzigd op 01/01/1970 01:00:00 door bart nukem
 
Dennis Mertens

Dennis Mertens

26/02/2009 16:26:00
Quote Anchor link
Iig lelijk!

gebruik $_SERVER['REQUEST_METHOD'] == 'POST' om te controleren of er een post request is.

Het kopiëren van variabelen is totaal overbodig. Indien je een variabele door een functie wilt heen halen kan dit ook bij het gebruiken van de variabele.

Wanneer je variabele een array is en gebruikt maakt van een key, en de key is NIET numeriek, gebruik dan quotes (').

In een query gebruik je bij een variabelen indien het een integer is GEEN quotes. Maak gebruik van real_escape_string...
 
Bart nukem

bart nukem

26/02/2009 16:34:00
Quote Anchor link
Bedankt, ik ga het een en ander aanpassen!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.