Archief - MYSQL: form input beveiligen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

little

Legacy Member
Hallo allemaal,

Voor het goede doel (jamasee) dat mijn school dit jaar steunt, heb ik een kleine mini-site in elkaar gestoken. Er zou ook een veiling van 2 schilderijen moeten zijn. Dit is het eerste scriptje met MYSQL dat ik in elkaar gestoken heb. ( er zitten waarschijnlijk nog veel fouten in , maar het werkt wat ik al een prestatie vond :) ). Nu weet ik dat je via de input van je form ook mijn databank kan legen etc. Wat is de beste manier om die maw te beveiligen, want is er van beveiliging nog geen sprake.

dit is de code die ik tot nu toe heb :
Code:
<?php

$naam1 = htmlentities($_POST['naam1'], ENT_QUOTES);
$email1 = htmlentities($_POST['email1'], ENT_QUOTES);
$adres1 = htmlentities($_POST['adres1'], ENT_QUOTES);
$bod1 = htmlentities($_POST['bod1'], ENT_QUOTES);

$naam2 = htmlentities($_POST['naam2'], ENT_QUOTES);
$email2 = htmlentities($_POST['email2'], ENT_QUOTES);
$adres2 = htmlentities($_POST['adres2'], ENT_QUOTES);
$bod2 = htmlentities($_POST['bod2'], ENT_QUOTES);

if(isset($_POST['submit1'])) {


if (empty($naam1)) 
	{ 
	  echo "<p class=\"warning\">Uw naam is niet ingevuld</p>"; 
        } 
if (empty($email1)) 
	{ 
	  echo "<p class=\"warning\">Uw email is niet ingevuld</p>"; 
        }  
if (empty($adres1))
	{ 
	  echo "<p class=\"warning\">Uw adres is niet ingevuld</p>"; 
        } 
if (empty($bod1))
	{ 
	  echo "<p class=\"warning\">Uw bod is niet ingevuld</p>"; 
        } 



	if ($insert = ("INSERT INTO veiling (naam, email, adres, bod ) VALUES ('$naam1','$email1', '$adres1','$bod1')"))
		{
			echo "<p class=\"berichtOK\">Uw bod werd goed ontvangen.  Jamasee dankt u!</p>";
		} else {
			echo "<p class=\"warning\">Uw bod werd niet goed ontvangen.  Probeer aub opnieuw.  Bij blijvende problemen, <a href=\"mailto:[email protected]\">contacteer gerust de webmaster</a></p>";
		}
		
	mysql_query($insert);

}


if(isset($_POST['submit2'])) {


if (empty($naam2))
	{ 
	  echo "<p class=\"warning\">Uw naam is niet ingevuld</p>"; 
        } 
if (empty($email2))
	{ 
	  echo "<p class=\"warning\">Uw email is niet ingevuld</p>"; 
        }  
if (empty($adres2))
	{ 
	  echo "<p class=\"warning\">Uw adres is niet ingevuld</p>"; 
        } 
if (empty($bod2))
	{ 
	  echo "<p class=\"warning\">Uw bod is niet ingevuld</p>"; 
        } 


	if ($insert2 = ("INSERT INTO veiling2 (naam, email, adres, bod ) VALUES ('$naam2','$email2','$adres2','$bod2')"))
		{
			echo "<p class=\"berichtOK\">Uw bod werd goed ontvangen.  Jamasee dankt u!</p>";
		} else {
			echo "<p class=\"warning\">Uw bod werd niet goed ontvangen.  Probeer aub opnieuw.  Bij blijvende proberen, <a href=\"mailto:[email protected]\">contacteer gerust de webmaster</a></p>";
		}
		
	mysql_query($insert2);

}


?>

<?php
$query="SELECT * FROM $tabel_veiling ORDER by bod DESC";

$resultaat = mysql_query($query) or die(mysql_error());

$rij = mysql_fetch_array($resultaat) or die(mysql_error());
?>

<div class="schilderij">

Het huidige bod staat op:<br />
<span><?php echo $rij['bod']; ?> euro</span><br />
Dit bod werd geplaatst door:<br />
<h2><?php echo $rij['naam']; ?></h2>

<form action="" method="post">
Naam : <input type="text" name="naam1" /> <br />
E-mail :<input type="text" name="email1" /><br />
Adres :<input type="text" name="adres1" /><br />
Bod : <input type="text" name="bod1" /><br />
<input type="submit" value="verzenden" name="submit1" />

</form>	
</div>

<?php
$query="SELECT * FROM $tabel_veiling2 ORDER by bod DESC";

$resultaat = mysql_query($query) or die(mysql_error());

$rij = mysql_fetch_array($resultaat) or die(mysql_error());
?>

<div class="schilderij2">

Het huidige bod staat op:<br />
<span><?php echo $rij['bod']; ?> euro</span><br />
Dit bod werd geplaatst door:<br />
<h2><?php echo $rij['naam']; ?></h2>

<form action="" method="post">
Naam : <input type="text" name="naam2" /> <br />
E-mail :<input type="text" name="email2" /><br />
Adres :<input type="text" name="adres2" /><br />
Bod : <input type="text" name="bod2" /><br />
<input type="submit" value="verzenden" name="submit2" />

</form>
</div>

Bedankt!

little

Legacy Member
Code:
<?php

$naam1 = htmlentities($_POST['naam1'], ENT_QUOTES);
$email1 = htmlentities($_POST['email1'], ENT_QUOTES);
$adres1 = htmlentities($_POST['adres1'], ENT_QUOTES);
$bod1 = htmlentities($_POST['bod1'], ENT_QUOTES);


if(isset($_POST['submit1'])) {


if (empty($naam1)) 
	{ 
	  echo "<p class=\"warning\">Uw naam is niet ingevuld</p>"; 
        } 
if (empty($email1)) 
	{ 
	  echo "<p class=\"warning\">Uw email is niet ingevuld</p>"; 
        }  
if (empty($adres1))
	{ 
	  echo "<p class=\"warning\">Uw adres is niet ingevuld</p>"; 
        } 
if (empty($bod1))
	{ 
	  echo "<p class=\"warning\">Uw bod is niet ingevuld</p>"; 
        } 



	if ($insert = ("INSERT INTO veiling (naam, email, adres, bod ) VALUES ('mysql_real_escape_string($naam1)','mysql_real_escape_string($email1)', 'mysql_real_escape_string($adres1)','mysql_real_escape_string($bod1)')"))
		{
			echo "<p class=\"berichtOK\">Uw bod werd goed ontvangen.  Jamasee dankt u!</p>";
		} else {
			echo "<p class=\"warning\">Uw bod werd niet goed ontvangen.  Probeer aub opnieuw.  Bij blijvende problemen, <a href=\"mailto:[email protected]\">contacteer gerust de webmaster</a></p>";
		}
		
	mysql_query($insert);

}

dus ik denk dat jullie zoiets bedoelen?

**CY**

BartDP

Legacy Member
Tyfius zei:
Mijn link niet goed genoeg? :unsure:


n/o de php manual kan soms verwarrend overkomen als je PHP recent hebt ontdekt of niet veel gebruikt (vond ik in toch)

little

Legacy Member
Tyfius zei:
Mijn link niet goed genoeg? :unsure:

jawel, jawel, ik heb dat dan ook erin toegepast en ik denk dat het juist is ...

Code:
if ($insert = ("INSERT INTO veiling (naam, email, adres, bod ) VALUES ('mysql_real_escape_string($naam1)','mysql_real_escape_string($email1)', 'mysql_real_escape_string($adres1)','mysql_real_escape_string($bod1)')"))
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan