login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Update vanuit url werkt niet (Opgelost)

Offline Lyrix - 14/10/2009 00:25 (laatste wijziging 14/10/2009 00:26)
Avatar van LyrixNieuw lid Hallo,

Ik heb een script waarbij cellen vanuit een tabel worden ingevuld.
Als ik de cellen via $id = '10'; in laat vullen worden deze netjes gevuld.
Als ik ze wijzig en op sla werkt dat ook prima.
Doe ik dit vanuit een url, bv test.php?id=10 worden de cellen ook netjes gevuld maar als ik dan iets wijzig en opsla wordt dit niet opgeslagen in de database.
De gegevens blijven dan ongewijzigd.

Hoe krijg ik dit werkend?

  1. <?
  2. require("config.php");
  3. //$id = '10';
  4. $id = $_GET['id'];
  5.  
  6. $query = mysql_query("SELECT * FROM members WHERE memberid='". $id ."'");
  7.  
  8. if(!$submit){
  9.  
  10. while($object = mysql_fetch_object($query)){
  11. ?>
  12. <br>
  13. <form method="POST" action="<? echo $PHP_SELF ?>">
  14.  
  15. <table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
  16. <tr>
  17. <td>
  18. <input type="hidden" name="submit" value="1">
  19. Voornaam:</td>
  20. <td><input type="text" name="voornaam" size="30" value="<? echo $object->voornaam ?>"></td>
  21. </tr>
  22. <tr>
  23. <td>Achternaam:</td>
  24. <td><input type="text" name="achternaam" size="30" value="<? echo $object->achternaam ?>"></td>
  25. </tr>
  26.  
  27. </table>
  28. <p align="center">
  29. <input type="image" src="siteart/floppy.png" name="submit2" value="Opslaan">
  30. </p>
  31. </form>
  32. <?
  33. }
  34. }
  35. else{
  36. mysql_query("UPDATE members SET voornaam='$voornaam', achternaam = '$achternaam' WHERE memberid = '$id'") or die(mysql_error());
  37. echo "Gegevens zijn succesvol opgeslagen...";
  38. }
  39. ?>



5 antwoorden

Gesponsorde links
Offline Martijn1989 - 14/10/2009 00:37
Avatar van Martijn1989 PHP ver gevorderde <form method="POST" action="">

Misschien dit, anders even tutorial opzoeken van verwerking van formulieren..
Offline tomdb - 14/10/2009 08:35
Avatar van tomdb Nieuw lid
  1. <form method="POST" action="<? echo $PHP_SELF ?>">

Moet denk ik zijn:
  1. <form method="POST" action="<? echo $_SERVER['PHP_SELF'] ?>">
Offline ArieMedia - 14/10/2009 11:11 (laatste wijziging 14/10/2009 11:11)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
tomdb schreef:
[..code..]
Moet denk ik zijn:
[..code..]
Dat weet ik wel zeker,
en nog iets wat ik zeker weet is dat $_SERVER['PHP_SELF'] gevaarlijk is. Je kan hier xss namelijk op toepassen.

Edit.. en controleer de userinput met if(is_numeric($_POST['id']))
Offline Gerard - 14/10/2009 11:54
Avatar van Gerard Ouwe rakker Probeer in de action inderdaad altijd gewoon handmatig het pad in te voeren waar de verwerking plaats dient te vinden. Sowieso moet je de variabele even door de PHP.net: htmlentities of PHP.net: htmlspecialchars halen om er zeker van te zijn dat eventuele schadelijke HTML omgezet wordt.
Offline Lyrix - 14/10/2009 17:20 (laatste wijziging 14/10/2009 18:21)
Avatar van Lyrix Nieuw lid @tomdb

dat was inderdaad het probleem. Jouw oplossing werkt perfect.

TNX!

@grerard

als ik het zo oplos is dat dan beter?
  1. action="test.php?id=<? echo $id ?>"
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.425s