fout bij updaten
ik heb een scriptje gamaakt wat artikelen uit een database haalt.
als ik het overzicht van de artikelen zie kan ik kiezen voor verwijderen en updaten.
uit de database wordt ook de url van het plaatje van het artikel gehaald.
maar als ik daar niets aan wijzig geeft hij een internal server error.
nu ben ik erachter dat hij dat alleen doet als de url met http:// begint.
http: gaat nog goed maar bij een / geeft hij die foutmelding.
het gaat dus fout bij artikel_afbeelding.
bvd
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
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
<?php
include "";
// colntroleer of de pagina zichzelf heeft aangeroepen
if (isset($_POST["bevestiging"]))
{
//query samenstellen
$query=("UPDATE artikelen SET artikel_nummer='".$_POST["artikel_nummer"] .
"',artikel_titel ='".$_POST["artikel_titel"] .
"',artikel_prijs='".$_POST["artikel_prijs"] .
"',artikel_beschrijving='".$_POST["artikel_beschrijving"] .
"',artikel_afbeelding='".$_POST["artikel_afbeelding"] .
"'WHERE artikel_id=" .$_POST["id"]);
$result = mysql_query($query) or die ("fout" . mysql_error());
echo("de volgende query is uitgevoerd: <b>$query</b><br>");
if($result)
{
echo ("record nummer" .$_POST["id"]."is bijgewerkt<br>");
echo ("<a href=\"artikeloverzicht.php\">terug naar het overzicht</a>");
}
}
else {
//pagina heeft zichzelf nog niet aangeroepen
$query=("SELECT * FROM artikelen WHERE artikel_id=".$_GET["id"]);//mysql error als id artikel_id word
$result = mysql_query($query) or die ("fout" . mysql_error());
?>
<html>
<head><title>wijzig de gegevens</title></head>
<body>
<h2>wijzig de gegevens</h2>
<?php
//gegevens ophalen en toekennen aan de tijdelijke variabelen
while ($rij=mysql_fetch_array($result))
{
$num=$rij['afdeling_nummer'];
$tit=$rij['artikel_titel'];
$prijs=$rij['artikel_prijs'];
$beschr=$rij['artikel_beschrijving'];
$afb=$rij['artikel_afbeelding'];
}
?>
<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"]);?>">
nummer <input type="text" name="artikel_nummer" value="<?php echo($num);?>" size="11"><br>
titel <input type="text" name="artikel_titel" value="<?php echo($tit);?>" size="75"><br>
prijs <input type="text" name="artikel_prijs" value="<?php echo($prijs);?>" size="5"><br>
bescrijving <input type="text" name="artikel_beschrijving" value="<?php echo($beschr);?>" size="75"><br>
afbeelding <input type="text" name="artikel_afbeelding" value="<?php echo($afb);?>" size="80"><br>
<hr>
<input type="submit" value="bijwerken">
<input type="button" value="terug" onclick="javascript:history.back();">
</form>
<?php //else blok afsluiten
}
echo $_GET["id"];
?>
</body>
</html>
include "";
// colntroleer of de pagina zichzelf heeft aangeroepen
if (isset($_POST["bevestiging"]))
{
//query samenstellen
$query=("UPDATE artikelen SET artikel_nummer='".$_POST["artikel_nummer"] .
"',artikel_titel ='".$_POST["artikel_titel"] .
"',artikel_prijs='".$_POST["artikel_prijs"] .
"',artikel_beschrijving='".$_POST["artikel_beschrijving"] .
"',artikel_afbeelding='".$_POST["artikel_afbeelding"] .
"'WHERE artikel_id=" .$_POST["id"]);
$result = mysql_query($query) or die ("fout" . mysql_error());
echo("de volgende query is uitgevoerd: <b>$query</b><br>");
if($result)
{
echo ("record nummer" .$_POST["id"]."is bijgewerkt<br>");
echo ("<a href=\"artikeloverzicht.php\">terug naar het overzicht</a>");
}
}
else {
//pagina heeft zichzelf nog niet aangeroepen
$query=("SELECT * FROM artikelen WHERE artikel_id=".$_GET["id"]);//mysql error als id artikel_id word
$result = mysql_query($query) or die ("fout" . mysql_error());
?>
<html>
<head><title>wijzig de gegevens</title></head>
<body>
<h2>wijzig de gegevens</h2>
<?php
//gegevens ophalen en toekennen aan de tijdelijke variabelen
while ($rij=mysql_fetch_array($result))
{
$num=$rij['afdeling_nummer'];
$tit=$rij['artikel_titel'];
$prijs=$rij['artikel_prijs'];
$beschr=$rij['artikel_beschrijving'];
$afb=$rij['artikel_afbeelding'];
}
?>
<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"]);?>">
nummer <input type="text" name="artikel_nummer" value="<?php echo($num);?>" size="11"><br>
titel <input type="text" name="artikel_titel" value="<?php echo($tit);?>" size="75"><br>
prijs <input type="text" name="artikel_prijs" value="<?php echo($prijs);?>" size="5"><br>
bescrijving <input type="text" name="artikel_beschrijving" value="<?php echo($beschr);?>" size="75"><br>
afbeelding <input type="text" name="artikel_afbeelding" value="<?php echo($afb);?>" size="80"><br>
<hr>
<input type="submit" value="bijwerken">
<input type="button" value="terug" onclick="javascript:history.back();">
</form>
<?php //else blok afsluiten
}
echo $_GET["id"];
?>
</body>
</html>
mysql_real_escape_string() over de input halen.
Het gaat hoogstwaarschijnlijk fout omdat je je POST variabelen direct in de database probeert te proppen. Voordat je input van gebruikers invoert in een database moet je minimaal de functie kun je mij een handje helpen hoe ik dat ga doen.