Delete Functie (werkt niet)
scripting is niet zo proper
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
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
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
<?php
if(!isset($_SESSION["naam"])){
$text = "u bent ni ingelogd dus ik zou <a href=\"../login/login.php\">naar hier gaan </a>";
echo($text);
}
else{
if($_SESSION["level"] == 13){
include("config.php");
if($_POST["submit"]){
if($_POST["submit"] && isset($_SESSION["naam"]) && !empty($_POST["bericht"]) && !empty($_POST["titel"])){
include("config.php");
$datum = date("Y-m-d H:i:s");
$query = "INSERT INTO nieuws (naam, bericht, titel, datum)";
$query .= "VALUES ('".$_SESSION["naam"]."' , '".$_POST["bericht"]."' , '".$_POST["titel"]."' , '".$datum."');";
$result = mysql_query($query);
if(!empty($result)){
echo "uw bericht is toegevoegd -- u wordt doorverbonden of klik hier";
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">overzicht</a>";
header("Refresh: 3; URL=nieuws.php");
}
else{
echo "oei probke me de db ofzo bericht is ni toegevoegd srry";
}
}
else{
echo "foutje bij het invullen --> <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">vul in</a>";
}
}
elseif($_GET['show'] == "add"){
echo "voeg een bericht toe";
echo "Toon mij <a href=\"begin.php\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek</a><br /><br />";
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "Titel:<br>";
echo "<input type=\"text\" name=\"titel\" maxlenght=\"100\">";
echo "Bericht:<br>";
echo "<textarea name=\"bericht\" rows=\"5\" cols=\"35\"></textarea><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"Bericht plaatsen!\">";
echo "</form>";
}
elseif($_GET['show'] == "delete"){
$query = "DELETE FROM nieuws WHERE id ='".$rij['id']."'";
$result = mysql_query($query) or die("error");
echo "verwijderd oke!!!!";
header("Refresh: 3; URL=nieuws.php");
}
else{
echo "bericht toevoegen";
echo "Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.";
$query = "SELECT id,naam,bericht,titel,DATE_FORMAT(datum, '%d.%m.%Y %H.%i.%s') as datum FROM nieuws ORDER BY datum DESC";
$result = mysql_query($query);
if(mysql_num_rows($result) >= 1){
while($rij = mysql_fetch_array($result)){
echo "<br><br><b>" . $rij['naam'] . "</b> ::::: <b>" . $rij['titel'] . "</b> schreef op <i>" . $rij['datum'] . "</i>: ::::::: <a href=\"".$_SERVER['PHP_SELF']."?id=".$rij['id']."&show=delete\">delete</a><br>";
echo "<hr />";
echo $rij["bericht"]. "<hr />";
}
}
else{
echo "nog geen berichten in nieuws";
}
}
}
else{
echo "u heeft hier geen rechten voor";
}
}
?>
if(!isset($_SESSION["naam"])){
$text = "u bent ni ingelogd dus ik zou <a href=\"../login/login.php\">naar hier gaan </a>";
echo($text);
}
else{
if($_SESSION["level"] == 13){
include("config.php");
if($_POST["submit"]){
if($_POST["submit"] && isset($_SESSION["naam"]) && !empty($_POST["bericht"]) && !empty($_POST["titel"])){
include("config.php");
$datum = date("Y-m-d H:i:s");
$query = "INSERT INTO nieuws (naam, bericht, titel, datum)";
$query .= "VALUES ('".$_SESSION["naam"]."' , '".$_POST["bericht"]."' , '".$_POST["titel"]."' , '".$datum."');";
$result = mysql_query($query);
if(!empty($result)){
echo "uw bericht is toegevoegd -- u wordt doorverbonden of klik hier";
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">overzicht</a>";
header("Refresh: 3; URL=nieuws.php");
}
else{
echo "oei probke me de db ofzo bericht is ni toegevoegd srry";
}
}
else{
echo "foutje bij het invullen --> <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">vul in</a>";
}
}
elseif($_GET['show'] == "add"){
echo "voeg een bericht toe";
echo "Toon mij <a href=\"begin.php\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek</a><br /><br />";
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "Titel:<br>";
echo "<input type=\"text\" name=\"titel\" maxlenght=\"100\">";
echo "Bericht:<br>";
echo "<textarea name=\"bericht\" rows=\"5\" cols=\"35\"></textarea><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"Bericht plaatsen!\">";
echo "</form>";
}
elseif($_GET['show'] == "delete"){
$query = "DELETE FROM nieuws WHERE id ='".$rij['id']."'";
$result = mysql_query($query) or die("error");
echo "verwijderd oke!!!!";
header("Refresh: 3; URL=nieuws.php");
}
else{
echo "bericht toevoegen";
echo "Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.";
$query = "SELECT id,naam,bericht,titel,DATE_FORMAT(datum, '%d.%m.%Y %H.%i.%s') as datum FROM nieuws ORDER BY datum DESC";
$result = mysql_query($query);
if(mysql_num_rows($result) >= 1){
while($rij = mysql_fetch_array($result)){
echo "<br><br><b>" . $rij['naam'] . "</b> ::::: <b>" . $rij['titel'] . "</b> schreef op <i>" . $rij['datum'] . "</i>: ::::::: <a href=\"".$_SERVER['PHP_SELF']."?id=".$rij['id']."&show=delete\">delete</a><br>";
echo "<hr />";
echo $rij["bericht"]. "<hr />";
}
}
else{
echo "nog geen berichten in nieuws";
}
}
}
else{
echo "u heeft hier geen rechten voor";
}
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen J
Ikzelf gok dat het hem zit in de variabele voor het id, $rij['id']. Waar komt die vandaan?
als je niet doet toont hij alle berichten wat onderaan het script staat en vandaar uit haalt hij de id
en hij haalt hem boven dat heb ik al gemerkt
mysql_affected_rows toont hij 0
en als ik de query uitvoer toont hij 1
Gewijzigd op 01/01/1970 01:00:00 door Jeroen J
php werkt in een vaste volgorde door je script , van boven naar onder. Het is niet mogelijk een waarde uit een variabele al te gebruiken voor deze uberhaupt bestaat.
en haal dat ob_start() meuk weg, werk je alleen maar om een probleem heen ipv deze op te lossen
ob_start(); weggehaalt en geen error ivm de delete functie
Gewijzigd op 01/01/1970 01:00:00 door Jeroen J
Dus gebruik $_GET['id'] ipv $rij['id']. En ik zou bovendien nog wel een stukje controle invoeren voordat je zomaar dingen uit een database verwijderd. Bijvoorbeeld of de gebruiker wel iets mag verwijderen en op zijn minst ook controleren of het id wel numeriek is. Dit om SQL injectie te voorkomen.
maar die controle zou je mss iets verder moeten uitleggen
en hoe ik die id uit die rij in die $_GET['id']
srry he ni zo'ne kenner
Je geeft $rij['id'] al mee als GET variabele dus die kun je gewoon ophalen met $_GET['id']. Je gebruikt toch ook
Dat is precies hetzelfde. Eigenlijk hoor je hier nog wel met isset() te controleren of de GET variabele 'show' wel bestaat. Als deze namelijk niet in de url staat zal je script een foutmelding opleveren.
En wat die controle betreft:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(isset($_GET['id']) && ctype_digit($_GET['id']))
{
// Het id is numeriek en kan gebruikt worden
}
else
{
// Er is geen geldig id meegegeven in de url
}
?>
if(isset($_GET['id']) && ctype_digit($_GET['id']))
{
// Het id is numeriek en kan gebruikt worden
}
else
{
// Er is geen geldig id meegegeven in de url
}
?>
ik zal da is tjecken
ja ik heb nog ni de kennis om zonder een voorbeeldje te snappen hoe ik da zou moeten plaatsen
alvast bedankt
edit = het werkt dikke merci
Gewijzigd op 01/01/1970 01:00:00 door Jeroen J