(parse?) Fout in PHP script
Ik heb een fout in een van mijn PHP pagina's maar ik kom er niet uit.
Willen jullie misschien even een handje helpen.
Bij voorbaat dank!
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
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
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
<?
//ingelogt ? chek start
if (isset($_COOKIE['username'])){
//ingelogt ? chek stop
?>
<?
// artikel toevoegen php script start
if(mysql_connect('localhost','xxx','xxx'))
{
mysql_select_db('michelrakh_gfex') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}
$soort = $_POST['soort'];
$merk = $_POST['merk'];
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['soort'] == '')
{
$aFouten[] = 'Je Hebt geen soort ingeveuld';
}
if($_POST['merk'] == '')
{
$aFouten[] = 'Je hebt geen merk ingevuld';
}
if($_POST['type'] == '')
{
$aFouten[] = 'Je hebt geen merk ingeveuld';
}
if($_POST['artikelnummer'] == '')
{
$aFouten[] ='Je hebt geen artikelnummer ingeveuld';
}
if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br/><br/>';
for($Fi = 0; $Fi <count($aDouten); $Fi++)
{
echo $aFouten[$fi].'<br/>';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{
mysql_query("INSERT INTO Voorraad (Soort,Merk,Type,Artikelnummer) VALUES ('".addslashes($_POST['soort'])."','".addslashes($_POST['merk'])."','".$_POST['Type']."','".addslashes($_POST['Artikelnummer'])."')") or die (mysql_error());
echo 'De gegevens zijn succesvol opgeslagen in de database<br/><a href="artikeltoevoegen.php">klik hier om terug te gaan';
}
}
else
{
// artikel toevoegen php script stop
?>
<H1>Artikel toevoegen</H1>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<table><tr><td>
<select name="soort"><option value="">Soort</option>
<?PHP
$sql = "SELECT Soort FROM Soort ORDER BY Soort ASC";
$query = mysql_query($sql);
while($rij = mysql_fetch_object($query)) {
$soort = htmlspecialchars($rij->Soort);
echo "<option value=\"".$soort."\">".$soort."</option>\n";
}
?>
</select>
</td></tr><tr><td>
<select name="merk"><option value="">Merk</option>
<?PHP
$sql = "SELECT Merk FROM merken ORDER BY Merk ASC";
$query = mysql_query($sql);
while($rij = mysql_fetch_object($query)) {
$merk = htmlspecialchars($rij->Merk);
echo "<option value=\"".$merk."\">".$merk."</option>\n";
}
?>
</select>
</td></tr><tr><td>
Type:<br /> <input type="text" name="Type"><br />
Artikelnummer:<br /> <input type="text" name="Artikelnummer"><br />
</td></tr>
<tr><td><input type="submit" name="verzenden" value="verzenden"></td></tr>
</table>
</form>
<?
//ingelogt ? error start
} else {
echo "Je bent niet ingelogd.";
}
//ingelogt ? error stop
?>
//ingelogt ? chek start
if (isset($_COOKIE['username'])){
//ingelogt ? chek stop
?>
<?
// artikel toevoegen php script start
if(mysql_connect('localhost','xxx','xxx'))
{
mysql_select_db('michelrakh_gfex') or die(mysql_error());
}
else
{
echo 'Kan geen verbinding maken';
exit;
}
$soort = $_POST['soort'];
$merk = $_POST['merk'];
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST))
{
$aFouten = array();
if($_POST['soort'] == '')
{
$aFouten[] = 'Je Hebt geen soort ingeveuld';
}
if($_POST['merk'] == '')
{
$aFouten[] = 'Je hebt geen merk ingevuld';
}
if($_POST['type'] == '')
{
$aFouten[] = 'Je hebt geen merk ingeveuld';
}
if($_POST['artikelnummer'] == '')
{
$aFouten[] ='Je hebt geen artikelnummer ingeveuld';
}
if(count($aFouten) != 0)
{
echo 'De volgende fouten zijn opgetreden: <br/><br/>';
for($Fi = 0; $Fi <count($aDouten); $Fi++)
{
echo $aFouten[$fi].'<br/>';
}
echo '<br />Klik <a href="javascript:history.go(-1);">hier</a> om terug te keren';
}
else
{
mysql_query("INSERT INTO Voorraad (Soort,Merk,Type,Artikelnummer) VALUES ('".addslashes($_POST['soort'])."','".addslashes($_POST['merk'])."','".$_POST['Type']."','".addslashes($_POST['Artikelnummer'])."')") or die (mysql_error());
echo 'De gegevens zijn succesvol opgeslagen in de database<br/><a href="artikeltoevoegen.php">klik hier om terug te gaan';
}
}
else
{
// artikel toevoegen php script stop
?>
<H1>Artikel toevoegen</H1>
<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
<table><tr><td>
<select name="soort"><option value="">Soort</option>
<?PHP
$sql = "SELECT Soort FROM Soort ORDER BY Soort ASC";
$query = mysql_query($sql);
while($rij = mysql_fetch_object($query)) {
$soort = htmlspecialchars($rij->Soort);
echo "<option value=\"".$soort."\">".$soort."</option>\n";
}
?>
</select>
</td></tr><tr><td>
<select name="merk"><option value="">Merk</option>
<?PHP
$sql = "SELECT Merk FROM merken ORDER BY Merk ASC";
$query = mysql_query($sql);
while($rij = mysql_fetch_object($query)) {
$merk = htmlspecialchars($rij->Merk);
echo "<option value=\"".$merk."\">".$merk."</option>\n";
}
?>
</select>
</td></tr><tr><td>
Type:<br /> <input type="text" name="Type"><br />
Artikelnummer:<br /> <input type="text" name="Artikelnummer"><br />
</td></tr>
<tr><td><input type="submit" name="verzenden" value="verzenden"></td></tr>
</table>
</form>
<?
//ingelogt ? error start
} else {
echo "Je bent niet ingelogd.";
}
//ingelogt ? error stop
?>
Ik heb even de topic titel aangepast en het wachtwoord in je script weggehaald, wees er bewust van dat dit soort informatie ook geïndexeerd wordt in Google e.d. en het gevolg kan zijn dat je site gehackt wordt e.d. Graag in het vervolg een passende topic titel gebruiken (waar het probleem/vraagstuk ook echt over gaat) en ik zou ook even kijken naar de security tips van de antwoorden in dit topic.[/modedit]
Gewijzigd op 23/01/2012 21:21:47 door Kees Schepers
Dus is het niet handiger dat je vertelt wat er gebeurt?
Gewijzigd op 23/01/2012 20:40:01 door - Ariën -
Aar was me net voor.
Gewijzigd op 23/01/2012 20:41:46 door Bas IJzelendoorn
Dreamweaver CS5: There is a syntax error on line 102. Code Hinting may not work until you fix this error.
Nee even serieus, behalve dat het een eitje is om een cookie aan te passen en dus in te loggen op dit systeem, is het script vatbaar voor Sql injectie, je bij een echo beter een enkelvoudige apostrof kunt gebruiken, de foutenafhandeling mist bij query's, toch niet de beste manier is om een formulier te versturen, tabellen niet gemaakt zijn voor formulieren, variabelen meervoudig kopiëren overbodig is, en ik zojuist vast nog wel e.e.a over het hoofd gezien heb, snijd je jezelf in de hand door op regel 48 hoofdletters te gebruiken en 2 regels verderop kleine letters toe te passen. Ik heb het vermoeden dat het daar fout gaat.
Succes!
Je script zit vol met lekken, je post je wachtwoord inclusief gebruikersnaam en db, en de fout die je zoekt zit hem in een } ;) Je vergeet namelijk de else af te sluiten bij if request_method=post ;) Dus op regel 100 nog een } erbij.