login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Formulier verwerken

Offline NTS64 - 18/07/2006 15:05 (laatste wijziging 19/07/2006 14:27)
Avatar van NTS64PHP gevorderde Hallo,


In het volgende script is het de bedoeling dat je bij het verwijderen van een lid, het verwijderen bevestigd(ja) of afbreekt(nee)
Het probleem is als je de pagina opent en op ja of nee klikt, er niets gebeurd.
  1. <?php
  2. include("config.php");
  3. if(isset($_GET['id'])){
  4. $id = $_GET['id'];
  5. }
  6. $query = mysql_query("SELECT * FROM members WHERE memberid='{$_GET['id']}'") or die(mysql_error());
  7. while($data = mysql_fetch_object($query)){
  8. $gebruikersnaam = $data->gebruikersnaam;
  9. if(isset($_POST['ja'])){
  10. mysql_query("DELETE FROM `members` WHERE memberid='$id'") or die(mysql_error());
  11. echo "U heeft $gebruikersnaam succesvol verwijderd";
  12. }elseif(isset($_POST['nee'])){
  13. echo "Verwijdering afgebroken";
  14. }
  15. }
  16. ?>
  17. <html>
  18. <head>
  19. <title>Verwijderen</title>
  20. </head>
  21. <body>
  22. <form name="verwijderen" method="post" action=" <?php echo $_SERVER['PHP_SELF']; ?>">
  23. <input type="submit" name="ja" value="ja"><input type="submit" name="nee" value="nee">
  24. </form>
  25. </body>
  26. </html>


Groeten, Woedi 

8 antwoorden

Gesponsorde links
Offline Tuinstoel - 18/07/2006 15:08
Avatar van Tuinstoel PHP expert id bestaat niet, je form url is niet goed .
Offline webrik - 18/07/2006 15:15
Avatar van webrik HTML interesse
  1. <form name="verwijderen" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

Er stond een spatie te veel, dit moet werken
Offline Tuinstoel - 18/07/2006 15:19
Avatar van Tuinstoel PHP expert Rofl dat is onzin. Hij geeft geen id mee, lees dan. Met $_SERVER['PHP_SELF']; krijg je alleen de bestandsnaam. Je hoeft alleen nog maar ?id=... toe te voegen na de ?> in de <form> tag.
Offline NTS64 - 18/07/2006 15:19 (laatste wijziging 18/07/2006 15:30)
Avatar van NTS64 PHP gevorderde
Citaat:
Je hoeft alleen nog maar ?id=... toe te voegen na de ?> in de <form> tag.

het hoeft tog niet na de ?> ?
Ik deed het zo:
  1. <form name="verwijderen" method="post" action="<?php echo $_SERVER['PHP_SELF']."?id=".$_GET['id']; ?>">

Maar toch bedankt:D
Offline Ultimatum - 18/07/2006 15:33
Avatar van Ultimatum PHP expert hoe je het nu doet ga je er al vanuit dat er een id in the url staat wat niet zo is anders deed je scriptje het wel, dus je moet een id uit een database of iets dergelijks neer zetten waar je nu $_GET['id'] hebt staan
Offline Maarten - 18/07/2006 15:33 (laatste wijziging 18/07/2006 15:36)
Avatar van Maarten Erelid Ja, maar waarom zou je dat doen, dat is alleen extra parsetijd?
  1. <form name="verwijderen" method="post" action="<?=$_SERVER['PHP_SELF']?>?id=<?=$_GET['id']?>">


En waarom doe je dit:
  1. <?php
  2. if(isset($_GET['id'])){
  3. $id = $_GET['id'];
  4. }
  5. ?>

Je verandert toch niks aan $_GET['id'], dus kan je evengoed $_GET['id'] gebruiken in je query, dat spaart weer 3 regels uit.

En controleer of id numeriek is, om hackpogingen tegen te gaan..
  1. <?php
  2. if(isset($_GET['id'])) {
  3. if(!is_numeric($_GET['id'])) {
  4. echo 'Geen numerieke waarde meegegeven..';
  5. } else {
  6. // Doe query
  7. }
  8. }
  9. ?>
Offline NTS64 - 18/07/2006 15:35 (laatste wijziging 18/07/2006 15:37)
Avatar van NTS64 PHP gevorderde Ja, eigenlijk werk ik beter de hele tijd met $_GET, maar dat was hier nu het probleem niet.
Offline Maarten - 18/07/2006 15:37
Avatar van Maarten Erelid Neen dat is inderdaad het probleem niet maar we proberen hier wel zoveel mogelijk slechte gewoontes af te leren.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.25s