Gastenboek met verwijder en wijzig functie
Wijzig.php Hier kan ik dus iets wijzigen als ik ingelogd ben. Hier heb ik ook het probleem dat die wijziging niet doorkomt terwijl ik wel de bevestiging krijg:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
if($_POST['submit']){
$id = $_GET["id"];
if ($_POST['naam'] == ""){
print("U hebt geen naam ingevuld, wat vereist is. Klik <a href=\"javascript:history.go(-1)\">hier</a> om terug te keren en uw naam in te vullen.<br>");
}
else if ($_POST['bericht'] == ""){
print("U heeft geen bericht ingevuld, wat vereist is. Klik <a href=\"javascript:history.go(-1)\">hier</a> om terug te keren en uw bericht in te vullen.<br>");
}
else if ($_POST['url']!="" && substr($_POST['url'], 0, 7)!="http://"){
print("Er zit een fout in het adres van uw homepage. Let er op dat het adres begint met \"http://\". Klik <a href=\"javascript:history.go(-1)\">hier</a> om terug te keren en dit te verbeteren.");
}
else{
require("connectie.php");
$query="UPDATE gastenboek SET naam='".strip_tags($_POST['naam'])."', bericht='".strip_tags($_POST['bericht'])."', email='".strip_tags($_POST['email'])."', url='".strip_tags($_POST['url'])."' WHERE id='".$id."'";
$wijzig=mysql_query($query) or die(mysql_error());
print("Bericht gewijzigd<br>Klik <a href=\"gastenboek.php\">hier</a> om terug te keren naar het gastenboek.");
}
}
else{
require ("connectie.php");
$select = mysql_query("SELECT * FROM gastenboek WHERE id='".$id."'");
$data = mysql_fetch_array($select);
?>
if($_POST['submit']){
$id = $_GET["id"];
if ($_POST['naam'] == ""){
print("U hebt geen naam ingevuld, wat vereist is. Klik <a href=\"javascript:history.go(-1)\">hier</a> om terug te keren en uw naam in te vullen.<br>");
}
else if ($_POST['bericht'] == ""){
print("U heeft geen bericht ingevuld, wat vereist is. Klik <a href=\"javascript:history.go(-1)\">hier</a> om terug te keren en uw bericht in te vullen.<br>");
}
else if ($_POST['url']!="" && substr($_POST['url'], 0, 7)!="http://"){
print("Er zit een fout in het adres van uw homepage. Let er op dat het adres begint met \"http://\". Klik <a href=\"javascript:history.go(-1)\">hier</a> om terug te keren en dit te verbeteren.");
}
else{
require("connectie.php");
$query="UPDATE gastenboek SET naam='".strip_tags($_POST['naam'])."', bericht='".strip_tags($_POST['bericht'])."', email='".strip_tags($_POST['email'])."', url='".strip_tags($_POST['url'])."' WHERE id='".$id."'";
$wijzig=mysql_query($query) or die(mysql_error());
print("Bericht gewijzigd<br>Klik <a href=\"gastenboek.php\">hier</a> om terug te keren naar het gastenboek.");
}
}
else{
require ("connectie.php");
$select = mysql_query("SELECT * FROM gastenboek WHERE id='".$id."'");
$data = mysql_fetch_array($select);
?>
<form name="data" method="POST" action="wijzig.php?id=">
<input type="hidden" name="submit" value="1">
verwijder.php Hier dus hetzelfde als met wijzig.php alleen dan met verwijderen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
if($_POST['submit']){
$id = $_GET['id'];
require ("connectie.php");
$query = "DELETE FROM gastenboek WHERE id = '$id' ";
$verwijder = mysql_query($query) or die(mysql_error());
print("Het bericht is verwijdert.<br>Klik <a href=\"gastenboek.php\">hier</a> om terug te keren naar het gastenboek.");
}
else{
?>
if($_POST['submit']){
$id = $_GET['id'];
require ("connectie.php");
$query = "DELETE FROM gastenboek WHERE id = '$id' ";
$verwijder = mysql_query($query) or die(mysql_error());
print("Het bericht is verwijdert.<br>Klik <a href=\"gastenboek.php\">hier</a> om terug te keren naar het gastenboek.");
}
else{
?>
<center>Ben je zeker dat je dit bericht wilt verwijderen?<br><br></center>
<form name="delete" action="verwijder.php?id=" method="POST">
<input type="hidden" name="submit" value="1">
Gewijzigd op 01/01/1970 01:00:00 door Wesley rees
Ik zou zeggen, post eens een relevant stukje van je script. Dus bijvoorbeeld het stukje waar je de update of delete queries uitvoert...
Wijzigen ligt geheel aan je database etc
Edit:
Zet je script even tussen code tags ( [ c o d e] zonder spaties ofc)
Gewijzigd op 01/01/1970 01:00:00 door Thijs X
Me script staat er nu. Dit is me eerste post dus ik wist niet dat je meteen je script in de tekst moest plaatsen. dacht dat ik dat daarna pas hoefde te doen
@thijs
Dat stukje staat al in me script.
PS: sorry dat het script zo'n zootje is nog, ik moet hem nog een beetje orderen
Gewijzigd op 01/01/1970 01:00:00 door wesley rees
Je hebt een probleem met het updaten en verwijderen uit de database. De regels script die dan met name interessant zijn, zijn de regels waar jij je update en delete queries hebt staan en uitvoert. Alle html daar omheen voegt verder niets toe.
Gewijzigd op 01/01/1970 01:00:00 door wesley rees
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if(isset($_GET['action']) && $_GET['action'] == "delete"){
$record = $_GET['gastenboekID'];
$sqlDelete = "DELETE FROM tblgastenboek WHERE gastenboekID = $record";
mysql_query($sqlDelete);
echo "Bericht verwijderd!";
}
if(!isset($_GET['action'])){
$resutaten = mysql_query("SELECT * FROM tblgastenboek ORDER BY gastenboekID DESC") or die(mysql_error());
//gegevens weergeven
while($gastenboek = mysql_fetch_array($resutaten)){
echo "<hr>";
echo "<div id=editgastenboek><a href='adgastenboek.php?action=edit&gastenboekID=".$gastenboek[0]."'><img src='".$rootdir."images/edit.JPG' border=0></a> <a href='adgastenboek.php?action=delete&gastenboekID=".$gastenboek[0]."'><img src='".$rootdir."images/drop.JPG' name='imgDrop' border=0></a></div>";
echo "<font color=white font size=2px>Gepost door: <font color=red>".$gastenboek['gastenboekNaam']."</font><br />Datum: ".$gastenboek['gastenboekDatum']."</font><br>";
echo "<font color=white>---------------------------</font>";
echo "<br /><br />";
echo "<font color=white font size=2px>".$gastenboek['gastenboekBericht']."</font>";
echo "<br /><br />";
}
?>
if(isset($_GET['action']) && $_GET['action'] == "delete"){
$record = $_GET['gastenboekID'];
$sqlDelete = "DELETE FROM tblgastenboek WHERE gastenboekID = $record";
mysql_query($sqlDelete);
echo "Bericht verwijderd!";
}
if(!isset($_GET['action'])){
$resutaten = mysql_query("SELECT * FROM tblgastenboek ORDER BY gastenboekID DESC") or die(mysql_error());
//gegevens weergeven
while($gastenboek = mysql_fetch_array($resutaten)){
echo "<hr>";
echo "<div id=editgastenboek><a href='adgastenboek.php?action=edit&gastenboekID=".$gastenboek[0]."'><img src='".$rootdir."images/edit.JPG' border=0></a> <a href='adgastenboek.php?action=delete&gastenboekID=".$gastenboek[0]."'><img src='".$rootdir."images/drop.JPG' name='imgDrop' border=0></a></div>";
echo "<font color=white font size=2px>Gepost door: <font color=red>".$gastenboek['gastenboekNaam']."</font><br />Datum: ".$gastenboek['gastenboekDatum']."</font><br>";
echo "<font color=white>---------------------------</font>";
echo "<br /><br />";
echo "<font color=white font size=2px>".$gastenboek['gastenboekBericht']."</font>";
echo "<br /><br />";
}
?>
zo heb ik het bij mijn site
dit is dus alleen maar het delete gedeelte
Gewijzigd op 01/01/1970 01:00:00 door Kenneth Dehouwer
@kenneth, dat is ook zo lek als een mandje. geen foutafhandeling, geen var controle, geen check of iets wel gebeurd ... undsoweiter
het bericht wordt verwijderd.. net zoals ik wil
voor de rest moet er nix gebeuren
Gewijzigd op 01/01/1970 01:00:00 door Kenneth Dehouwer
gebruikers zijn dom en kunnen alles invullen kenneth, niet alles gaat altijd zoals JIJ dat wil als programmeur
dus woorden invullen of ID veranderen gaat de admin zelf niet doen denk ik
of is hij zo dom?
iedereen is dom kenneth
kenneth kan je mij dat vertellen hoe ik die van mij zou moeten aanpassen richting die van jouw zodat het bij mij ook werkt?
Je gebruikt in je scripten wel de var $id, maar heeft die wel een waarde? Anders wordt de query wel uitgevoerd, maar wordt er niks veranderd of verwijderd. Dus geen foutmelding en geen resultaat..
Daan schreef op 08.03.2007 13:27:
@ Wesley:
Je gebruikt in je scripten wel de var $id, maar heeft die wel een waarde? Anders wordt de query wel uitgevoerd, maar wordt er niks veranderd of verwijderd. Dus geen foutmelding en geen resultaat..
Je gebruikt in je scripten wel de var $id, maar heeft die wel een waarde? Anders wordt de query wel uitgevoerd, maar wordt er niks veranderd of verwijderd. Dus geen foutmelding en geen resultaat..
Ik had dat al gevonden na het posten van dit script ik heb hem nu geupdated maar of het goed is weet ik zelf niet. Ik blijf hetzelfde effect houden
iemand nog een oplossing of niet??
mysql_affected_rows() te controleren of er ook daadwerkelijk records zijn veranderd of verwijderd.
Controleer ook altijd of $_GET['id'] wel numeriek is (bijv met ctype_digit()). En bij het updaten gebruik je nu alleen strip_tags() voor de input, maar je moet minimaal ook mysql_real_escape_string() gebruiken om sql injectie tegen te gaan.
Na een UPDATE of DELETE query is het altijd van belang om met Controleer ook altijd of $_GET['id'] wel numeriek is (bijv met ctype_digit()). En bij het updaten gebruik je nu alleen strip_tags() voor de input, maar je moet minimaal ook mysql_real_escape_string() gebruiken om sql injectie tegen te gaan.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit