Nieuws bewerken/verwijderen
Ik ben nog niet zo lang bezig met PHP, dus ken er nog niet al te veel van.
Ik ben bezig met nieuwssysteem te maken, het lukt me al om nieuwsberichten toe te voegen, maar ik kan ze nog niet bewerken of verwijderen.
Iemand enig idee wat ik fout doe?
CODE:
BERICHT TOEVOEGEN:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
require("constants.php");
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
die("Database connection failed!" . mysql_error());
}
$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
die("Database connection failed!" . mysql_error());
}
?>
require("constants.php");
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
die("Database connection failed!" . mysql_error());
}
$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
die("Database connection failed!" . mysql_error());
}
?>
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
<?php
if(isset($_POST['voegtoe']))
{
$datum = $_POST['datum'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
mysql_query("INSERT INTO nieuws (datum, onderwerp, bericht)
VALUES ('".$datum."', '".$onderwerp."', '".$bericht."')")
or die (mysql_error());
echo 'Het nieuws is succesvol opgeslagen.';
}
else
{
?>
if(isset($_POST['voegtoe']))
{
$datum = $_POST['datum'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
mysql_query("INSERT INTO nieuws (datum, onderwerp, bericht)
VALUES ('".$datum."', '".$onderwerp."', '".$bericht."')")
or die (mysql_error());
echo 'Het nieuws is succesvol opgeslagen.';
}
else
{
?>
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<table cellspacing="10" width="100%">
<tr>
<td class="tekst" valign="top"><b>Datum:</b></td>
<td><input type="text" class="formke" name="datum" size="30" value="<?php echo date("d/m/y"); ?>"></td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Onderwerp:</b></td>
<td><input type="text" class="formke" name="onderwerp" size="30"></td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Bericht:</b></td>
<td><textarea cols="70" rows="20" class="formke" name="bericht"></textarea></td>
<tr>
<td class="tekst"> </td>
<td><input type="submit" class="form" name="voegtoe" value="Voeg toe"></td>
</tr>
</table>
</form>
[/CODE]
<?php
}
?>
<?php
mysql_close(DB_SERVER, DB_USER, DB_PASS);
?>
[/CODE]
[b]BERICHT VERWIJDEREN:[/b]
<?php
require("constants.php");
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
die("Database connection failed!" . mysql_error());
}
$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
die("Database connection failed!" . mysql_error());
}
?>
[CODE]
<SCRIPT LANGUAGE="JavaScript">
function doedelete(numb){
if (confirm("Ben je zeker dat je dit bericht wil verwijderen?"))
{
window.document.submitform.del.value = numb;
window.document.submitform.submit();
}
}
</SCRIPT>
[/CODE]
<?php
if (isset($del) && $del >= 0)
{
mysql_query("DELETE FROM nieuws
WHERE id = '$del'");
}
?>
<?php
$result = mysql_query("SELECT id, onderwerp, datum
FROM nieuws
ORDER BY id DESC");
while($show_msg = mysql_fetch_array($result))
{
echo( "<tr>\n\t<td class=\"tekst\" colspan=\"2\">$show_msg[datum]</td>\n" .
"\t<td class=\"tekst\" colspan=\"2\">$show_msg[onderwerp]</td>\n" .
"\t<td class=\"tekst\" align=\"right\"><a href=\"nieuws_edit.php?id=$show_msg[id]\"><img src=\"images/edit.gif\" width=\"19\" height=\"14\" alt=\"Bewerk dit bericht\" border=\"0\"></a><a href=\"\" OnClick=\"Javascript:doedelete('$show_msg[id]');return false;\"><img src=\"images/delete.gif\" width=\"19\" height=\"14\" alt=\"Verwijder dit bericht\" border=\"0\"></a></td></tr>\n");
}
?>
[CODE]
</table>
</div>
<form method="post" name="submitform">
<input type="hidden" name="del" value="-1">
</form>
</td>
</tr>
</table>
[/CODE]
<?php
mysql_close(DB_SERVER, DB_USER, DB_PASS);
?>
[b]BERICHT BEWERKEN:[/b]
<?php
require("constants.php");
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
die("Database connection failed!" . mysql_error());
}
$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
die("Database connection failed!" . mysql_error());
}
?>
<?php
if(isset($_POST['voegtoe'])) {
mysql_query("UPDATE nieuws
SET bericht = '".$_POST['bericht']."'
WHERE id ='".$_POST['id']."'")
or die ("fout bij het opslaan van je bericht in de databank");
}
$result = mysql_query("SELECT *
FROM nieuws
WHERE id = '$id'");
$show_msg = mysql_fetch_array($result);
?>
[CODE]
<form method="POST" name="submitform" action="nieuws_admin2.php">
<table cellspacing="10" width="100%">
<tr>
<td class="tekst" valign="top"><b>Onderwerp:</b></td>
<td><input type="text" class="formke" name="onderwerp" size="30" value="<?=$show_msg[onderwerp]?>"></td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Bericht:</b></td>
<td><textarea cols="70" rows="20" class="formke" name="bericht"><?=$show_msg[bericht]?></textarea></td>
<tr>
<td class="tekst"> </td>
<td><input type="submit" class="form" name="voegtoe" value=" Wijzig "> <input type="reset" class="form" value=" reset "></td>
</tr>
</table>
<input type="hidden" value="<?=$id?>" name="id">
</form>
</td>
</tr>
</table>
[/CODE]
<?php
mysql_close(DB_SERVER, DB_USER, DB_PASS);
?>
<table cellspacing="10" width="100%">
<tr>
<td class="tekst" valign="top"><b>Datum:</b></td>
<td><input type="text" class="formke" name="datum" size="30" value="<?php echo date("d/m/y"); ?>"></td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Onderwerp:</b></td>
<td><input type="text" class="formke" name="onderwerp" size="30"></td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Bericht:</b></td>
<td><textarea cols="70" rows="20" class="formke" name="bericht"></textarea></td>
<tr>
<td class="tekst"> </td>
<td><input type="submit" class="form" name="voegtoe" value="Voeg toe"></td>
</tr>
</table>
</form>
[/CODE]
<?php
}
?>
<?php
mysql_close(DB_SERVER, DB_USER, DB_PASS);
?>
[/CODE]
[b]BERICHT VERWIJDEREN:[/b]
<?php
require("constants.php");
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
die("Database connection failed!" . mysql_error());
}
$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
die("Database connection failed!" . mysql_error());
}
?>
[CODE]
<SCRIPT LANGUAGE="JavaScript">
function doedelete(numb){
if (confirm("Ben je zeker dat je dit bericht wil verwijderen?"))
{
window.document.submitform.del.value = numb;
window.document.submitform.submit();
}
}
</SCRIPT>
[/CODE]
<?php
if (isset($del) && $del >= 0)
{
mysql_query("DELETE FROM nieuws
WHERE id = '$del'");
}
?>
<?php
$result = mysql_query("SELECT id, onderwerp, datum
FROM nieuws
ORDER BY id DESC");
while($show_msg = mysql_fetch_array($result))
{
echo( "<tr>\n\t<td class=\"tekst\" colspan=\"2\">$show_msg[datum]</td>\n" .
"\t<td class=\"tekst\" colspan=\"2\">$show_msg[onderwerp]</td>\n" .
"\t<td class=\"tekst\" align=\"right\"><a href=\"nieuws_edit.php?id=$show_msg[id]\"><img src=\"images/edit.gif\" width=\"19\" height=\"14\" alt=\"Bewerk dit bericht\" border=\"0\"></a><a href=\"\" OnClick=\"Javascript:doedelete('$show_msg[id]');return false;\"><img src=\"images/delete.gif\" width=\"19\" height=\"14\" alt=\"Verwijder dit bericht\" border=\"0\"></a></td></tr>\n");
}
?>
[CODE]
</table>
</div>
<form method="post" name="submitform">
<input type="hidden" name="del" value="-1">
</form>
</td>
</tr>
</table>
[/CODE]
<?php
mysql_close(DB_SERVER, DB_USER, DB_PASS);
?>
[b]BERICHT BEWERKEN:[/b]
<?php
require("constants.php");
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
die("Database connection failed!" . mysql_error());
}
$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
die("Database connection failed!" . mysql_error());
}
?>
<?php
if(isset($_POST['voegtoe'])) {
mysql_query("UPDATE nieuws
SET bericht = '".$_POST['bericht']."'
WHERE id ='".$_POST['id']."'")
or die ("fout bij het opslaan van je bericht in de databank");
}
$result = mysql_query("SELECT *
FROM nieuws
WHERE id = '$id'");
$show_msg = mysql_fetch_array($result);
?>
[CODE]
<form method="POST" name="submitform" action="nieuws_admin2.php">
<table cellspacing="10" width="100%">
<tr>
<td class="tekst" valign="top"><b>Onderwerp:</b></td>
<td><input type="text" class="formke" name="onderwerp" size="30" value="<?=$show_msg[onderwerp]?>"></td>
</tr>
<tr>
<td class="tekst" valign="top"><b>Bericht:</b></td>
<td><textarea cols="70" rows="20" class="formke" name="bericht"><?=$show_msg[bericht]?></textarea></td>
<tr>
<td class="tekst"> </td>
<td><input type="submit" class="form" name="voegtoe" value=" Wijzig "> <input type="reset" class="form" value=" reset "></td>
</tr>
</table>
<input type="hidden" value="<?=$id?>" name="id">
</form>
</td>
</tr>
</table>
[/CODE]
<?php
mysql_close(DB_SERVER, DB_USER, DB_PASS);
?>
Gewijzigd op 09/01/2012 10:59:28 door Jos Vermassen
- Gebruik codetags
- En vertel ook wat er niet lukt en gebeurt.
Gewijzigd op 09/01/2012 10:40:02 door - Ariën -
Het lukt me niet om nieuws te bewerken of te verwijderen, als ik een nieuwsitem bewerk en ik klik op 'wijzig' dan wordt het niet gewijzigd. En juist het zelfde als ik een bericht wil verwijderen dan doet hij dit niet.
- Aar - op 09/01/2012 10:39:30:
- Toon hier alleen *relevante* code
- Gebruik [code ]tags
- Gebruik [code ]tags
Dus pas je post even aan.
Gewijzigd op 09/01/2012 10:49:57 door - Ariën -
En wil je je topic start post eens bewerken, [code] tags om de code heen zetten en alle niet relevante code weghalen?
Verder punten die me nu al opvallen:
- Foutafhandeling via die is niet correct. Handel een fout netjes af doormiddel van een echo ergens onder het doctype.
- HTML tags zijn allemaal met kleine letters
- Language attribuut heeft nooit bestaan, gebruik type="text/javascript"
- 2e Codeblock regel 3, 4 en 5 is onnodig variabele kopiëren, gebruik gewoon de post variabele in je script
- or die is ook geen foutafhandeling
- je script is onveilig, gebruik mysql_real_escape_string om SQL injectie tegen te gaan.
- $_SERVER['PHP_SELF'] is ook onveilig. Vul gewoon niks in de action attribute
- Kijken of iets gepost is doen we met:
- Zet alle PHP code voor je doctype en gebruik alleen echo en simpele if statements of loopjes onder het doctype.
- Haal variabele uit de quotes
- Gebruik mysql_affected_rows om te kijken of er werkelijk iets verwijderd/bewerkt is.
- Gebruik mysql_fetch_assoc i.p.v. fetch_array dit is sneller.
- Check of een query echt wel uitgevoerd is
- Gebruik geen tabellen voor de opmaak in HTML
- Font tag stamt uit 1900, tegenwoordig moet je dit oplossen met CSS
- Gebruik geen inline CSS
Verder wat Aar zegt :)
Denk aan de veiligheid. Lees eens over SQL-Injection want dit script is lek.
Maar ik kan hier nog niet zo goed aan uit, heb zo wat alles gedaan wat Wouter zei.
Maar goed, het script rammelt verder aan alle kanten.
Begin eens met een schone lei en pas onze tips eens toe. Als je er vragen over hebt horen we die gerust.