login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met form beveiliging

Offline Ronstert - 25/08/2006 16:28
Avatar van RonstertMySQL interesse hooii,

Ik heb van de scripts hier een script gebruikt waarmee je een een code moet invullen voordat je kan submitten!.

opzich werkt dit wel!. maar hij onthoudt de gegevens niet die in de db geplaats moeten worden.. ik snap dr van waarom hij dat niet doet..

hier het script. hoop dat iemand me helpen kan
  1. <?
  2. ?>
  3. <table width=700 cellpadding=0 cellspacing=0 border=0 height=100%>
  4. <tr>
  5. <td width=480 valign=top align=center>
  6. <?PHP
  7.  
  8.  
  9. function form_val($url, $chars = false, $this_chars = false){
  10. if($chars == false || !is_numeric($chars)){
  11. $chars = 3;
  12. }
  13. if($this_chars == false || !is_array($this_chars)){
  14. $this_chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
  15. 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
  16. '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
  17. );
  18. }
  19. if($chars == false || !is_numeric($chars)){
  20. $chars = 3;
  21. }
  22. if(empty($_SESSION['validate_code'])){
  23. $save = '';
  24. for($for = 0; $for < $chars; $for++){
  25. $save .= $this_chars[mt_rand(0, (count($this_chars)-1))];
  26. }
  27. $_SESSION['validate_code'] = $save;
  28. }
  29.  
  30.  
  31.  
  32. // invul velden!!!
  33. echo "<a name=plaats>";
  34. echo "<table width=95% cellpadding=0 cellspacing=0 border=0 style=\"BORDER: rgb(192,192,192) 1px solid;\">";
  35. echo "<tr>";
  36. echo "<td align=center style=\"BORDER-BOTTOM: rgb(192,192,192) 1px solid;\" bgcolor=#C0C0C0 colspan=2>";
  37. echo "<b>Bericht toevoegen</b>";
  38. echo "</td>";
  39. echo "</tr>";
  40. echo "<form method=POST name=form1 action=?p=extras/plaats1>";
  41. echo "<tr>";
  42. echo "<td>&nbsp;<img src=layout/arrow1.gif> Naam:</td><td><input type=text name=naam size=30 value=".$_POST['naam'].">";
  43. echo "</td>";
  44. echo "</tr>";
  45. echo "<tr>";
  46. echo "<td>&nbsp;<img src=layout/arrow1.gif> Homepage:</td><td><input type=text name=homepage size=30 value=http://".$_POST['email'].">";
  47. echo "</td>";
  48. echo "<tr>";
  49. echo "<td>&nbsp;<img src=layout/arrow1.gif> Emailadres:</td><td><input type=text name=email size=30 value=".$_POST['email'].">";
  50. echo "</td>";
  51. echo "</tr>";
  52. echo "<tr>";
  53. echo "<td>&nbsp;<img src=layout/arrow1.gif> Bericht:</td><td><textarea name=bericht rows=5 cols=50>".$_POST['bericht']."</textarea>";
  54. echo "</td>";
  55. echo "</tr>";
  56. echo "</tr>";
  57. echo "<tr>";
  58. echo "<td>&nbsp;<img src=layout/arrow1.gif> Validatie:</td><td>><input type=\"text\" name=\"val\"> <img src=\"validate.php\" />";
  59. echo "</td>";
  60. echo "</tr>";
  61. echo "<tr>";
  62. echo "<td colspan=2 align=center height=30 valign=middle style=\"BORDER-TOP: rgb(192,192,192) 1px solid;\"><input type=submit name=valid value=Toevoegen> <input type=reset name=reset value=Reset></td>";
  63. echo "</tr>";
  64. echo "</table></form>";
  65.  
  66. if(isset($_POST['valid'])){
  67. if($_POST['val'] == $_SESSION['validate_code']){
  68. $_SESSION['validate_code'] = '';
  69. header('Location: '.$url);
  70. }
  71. else{
  72. echo 'De code klopt niet!';
  73.  
  74. }
  75. }
  76.  
  77.  
  78. }
  79. if($_GET['act'] == 'Yep'){
  80. $dag = date("d-m-Y");
  81. $tijd = date("H:i:s");
  82. $klok = "$dag om $tijd";
  83. $sql = "INSERT INTO gastenboek (naam, datum, homepage, email, bericht) VALUES ('".$_POST['naam']."', '$klok', '".$_POST['homepage']."', '".$_POST['email']."', '".$_POST['bericht']."')";
  84. mysql_query($sql) or die (mysql_error());
  85. echo "<br>";
  86. echo "<table width=98% cellpadding=0 cellspacing=0 border=0 style=\"BORDER: rgb(192,192,192) 1px solid;\">";
  87. echo "<tr><td align=center style=\"BORDER-BOTTOM: rgb(192,192,192) 1px solid;\" bgcolor=#C0C0C0><b>Bericht toegevoegd</b></td></tr>";
  88. echo "<tr><td align=center>";
  89. echo "Bedankt voor je bericht, Je wordt teruggestuurd";
  90. echo "<meta http-equiv=\"refresh\" content=\"2\"; url=\"?p=extras/gastenboek\">";
  91. echo "</td></tr>";
  92. echo "</table>";
  93. }
  94. else{
  95. echo form_val('?p=extras/plaats1&act=Yep');
  96. }
  97.  
  98. ?>

6 antwoorden

Gesponsorde links
Offline jc2 - 25/08/2006 17:41
Avatar van jc2 PHP interesse Kijk eens op:
http://www.plaatscode.be/2254/

Daar heb ik jouw code vereenvoudigd, zodat je maar 1 pagina nodig hebt. Nu heb je geen onnodige pagina 'validate.php' of sessies meer nodig.
Ik heb hem ook getest en telkens wanneer je de juiste code invoert, krijg je de melding een nieuw bericht te hebben geplaatst en worden de gegevens in de database geplaatst.
Tenminste...in die van mij wel.:D

Suc6 ermee!
Offline Maarten - 25/08/2006 18:05 (laatste wijziging 25/08/2006 18:05)
Avatar van Maarten Erelid
  1. <? echo "". $_POST['naam'] ."" ?>
Wat the hell is dat 
  1. <?php echo $_POST['naam']; ?>
Dat is meer dan genoeg. Of nog korter:
  1. <?=$_POST['naam']?>
Offline Ronstert - 25/08/2006 19:10 (laatste wijziging 25/08/2006 19:27)
Avatar van Ronstert MySQL interesse het veld 2e veldje wat je erachter heb gezet blijft leeg!.. kan dus geen code zien.. als ik op submit druk dankrijg ik ook geen melding dat de code niet klopt.. hij doet niks helaas
Offline jc2 - 25/08/2006 19:25 (laatste wijziging 25/08/2006 19:26)
Avatar van jc2 PHP interesse Kijk maar eens op:
http://www.erwi...enboek.php

Daar werkt hij perfect. Mét zichtbare code.
De database werkte ook, maar die heb ik tijdelijk ontkoppeld.
Offline Ronstert - 25/08/2006 19:29
Avatar van Ronstert MySQL interesse hmm. ik heb het ook nog op 2 andere servers van me getest!. alle 3 (in totaal) geven bij mij geen code
Offline jc2 - 25/08/2006 19:45 (laatste wijziging 25/08/2006 19:46)
Avatar van jc2 PHP interesse Ik heb een "print screen" gemaakt:
http://www.erwi...enboek.bmp
Het bewijs dat hij het bij mij wel doet.
Zowel in FF (v2) als in IE (v6), met als OS Windows XP.

Wel vreemd dan dat hij het bij jouw op alledrie de servers niet doet.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.228s