Gastenboek met verwijder en wijzig functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wesley rees

wesley rees

08/03/2007 11:40:00
Quote Anchor link
Ik heb een tijdje terug ergens een gastenboek gevonden en hem aangepast naar mijn wensen qua layout enz... Het enige probleem wat ik nu heb is dat mijn Wijzigig- of Verwijder command niet doorkomt in de mySQL database. Ik krijg wel te zien dat het bericht gewijzigd of verwijdert zou moeten zijn maar als ik terug ga naar het gastenboek staat het bericht er nog steeds zoals het daarvoor er ook stond. Kan iemand mijn script nakijken en me vertellen wat er aangepast moet worden ik kom er gewoon niet meer uit.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
?>

<form name="data" method="POST" action="wijzig.php?id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_GET ['id'];?>
">
<input type="hidden" name="submit" value="1">

verwijder.php Hier dus hetzelfde als met wijzig.php alleen dan met verwijderen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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{
?>

<center>Ben je zeker dat je dit bericht wilt verwijderen?<br><br></center>
<form name="delete" action="verwijder.php?id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_GET ['id'];?>
" method="POST">
<input type="hidden" name="submit" value="1">
Gewijzigd op 01/01/1970 01:00:00 door Wesley rees
 
PHP hulp

PHP hulp

20/11/2024 10:35:19
 
Joren de Wit

Joren de Wit

08/03/2007 11:42:00
Quote Anchor link
Ik zou zeggen, post eens een relevant stukje van je script. Dus bijvoorbeeld het stukje waar je de update of delete queries uitvoert...
 
Thijs X

Thijs X

08/03/2007 11:46:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
DELETE FROM databasenaam WHERE id = berichtid


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
 
Wesley rees

wesley rees

08/03/2007 11:52:00
Quote Anchor link
@blanche:

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
 
Joren de Wit

Joren de Wit

08/03/2007 12:20:00
Quote Anchor link
Wesley, ik vroeg om een relevant stukje code. Niet je hele script...

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.
 
Wesley rees

wesley rees

08/03/2007 12:34:00
Quote Anchor link
heb je hier genoeg aan?
Gewijzigd op 01/01/1970 01:00:00 door wesley rees
 
Kenneth Dehouwer

Kenneth Dehouwer

08/03/2007 12:49:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>&nbsp;&nbsp;<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
 
- wes  -

- wes -

08/03/2007 12:54:00
Quote Anchor link
@kenneth, dat is ook zo lek als een mandje. geen foutafhandeling, geen var controle, geen check of iets wel gebeurd ... undsoweiter
 
Kenneth Dehouwer

Kenneth Dehouwer

08/03/2007 12:57:00
Quote Anchor link
waarom moet dat allemaal
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
 
- wes  -

- wes -

08/03/2007 12:59:00
Quote Anchor link
en als ik nou je pagina oproep en 'gastenboekID' leeglaat, of op een ander id zet dan toegestaan, of ik vul er een woord in, of ik zet er MySQL injection in...

gebruikers zijn dom en kunnen alles invullen kenneth, niet alles gaat altijd zoals JIJ dat wil als programmeur
 
Kenneth Dehouwer

Kenneth Dehouwer

08/03/2007 13:01:00
Quote Anchor link
wel er zit natuurlijk een beveiling op dat alleen de admin erop kan..
dus woorden invullen of ID veranderen gaat de admin zelf niet doen denk ik
of is hij zo dom?
 
- wes  -

- wes -

08/03/2007 13:05:00
Quote Anchor link
iedereen is dom kenneth
 
Wesley rees

wesley rees

08/03/2007 13:06:00
Quote Anchor link
kenneth kan je mij dat vertellen hoe ik die van mij zou moeten aanpassen richting die van jouw zodat het bij mij ook werkt?
 
Daan

Daan

08/03/2007 13:27:00
Quote Anchor link
@ 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..
 
Wesley rees

wesley rees

08/03/2007 14:01:00
Quote Anchor link
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..


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
 
Wesley rees

wesley rees

08/03/2007 21:13:00
Quote Anchor link
iemand nog een oplossing of niet??
 
Joren de Wit

Joren de Wit

08/03/2007 21:49:00
Quote Anchor link
Na een UPDATE of DELETE query is het altijd van belang om met 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.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.