pagina beveiliging werkt niet
Ik heb een formulier in php. Zonder deze code werkt deze formulier uitstekend. Nu moet ik er een stukje beveiliging in plaatsten dat wanneer iemand gewoon naar dit php bestandje surft geen toegang krijgt enkeld bij betaling.
**************************************************************
Ik heb dit gekregen van de betaal dienst:
Stap 1 - Maak een micropayment aan
Maak eerst een micropayment, waarbij u kiest voor de optie "Toegang tot site". Hier kunt u een URL opgeven waar wij de klant naar toe moeten sturen zodra de betaling is gedaan. Op deze URL moet dan ook de betaalde content staan die voor bepaalde tijd beschikbaar is.
Gebruik onze tool om een micropayment te maken
Stap 2 - Toegang URL
Wanneer er een betaling is verwerkt, sturen wij uw klant (in een nieuw scherm) naar de URL die u bij het aanmaken van de micropayment heeft aangegeven. Hieronder ziet u een voorbeeld waar wij een klant heen kunnen sturen. Dit gebeurt alleen wanneer een betaling juist is afgerond.
Voorbeeld URL
http://www.uwsite.nl/toegang.php?toegangscode=1dc5361e...157f4b9a8606c17
toegangscode: de unieke code die voor bepaalde tijd geldig is (nodig voor betaal controle, zie stap 3);
Let op: u dient op deze pagina een 'betaalcode' controle te doen (zie stap 3);
Stap 3 - Betaal controle
Controleer op elke pagina waar u betaalde content aanbiedt of de klant die op uw URL is gekomen een betaalde of nog geldige toegangscode beschikt, stuur daarom de parameter 'toegangscode' ook door naar subpagina's waar een betaling voor nodig is. Uw script (de "toegang URL") moet op de achtergrond een HTTP request naar de onderstaande URL doen, om te controleren of de toegangscode ook daadwerkelijk geldig is. Wij geven op basis van de parameters de volgende resultaten terug "OK" (betaald) of "NOTOK" (niet betaald).
Bijvoorbeeld
http://www.mollie.nl/partners/api/micropayment/?toegan...157f4b9a8606c17
Extra veiligheid: Om het systeem nog veiliger te maken kunt u tevens de parameter "ip" met als waarde het IP nummer van uw klant mee sturen. Wij controleren dan tevens of het IP adres van uw klant overéén komt;
Ons systeem stuurt de onderstaande mogelijkheden terug:
OK - deze toegangscode is betaald en nog geldig
NOTOK - toegangscode is niet betaald of niet meer geldig
Op basis van dit resultaat kunt u content laten zien aan de klant. Wij geven vanzelf aan met "NOTOK" wanneer de betaling is verlopen.
Voorbeeld PHP
Code (php)
**************************************************************
Dit is het formulier waar mensen terecht moetten komen na betaling. Genaamd betaald.php, mensen die gewoon naar deze site surfen moeten dus geen toegang kunnen krijgen via bovenstaande manier. ( betaalsysteem die werkt al, en doorverwijzing naar betaald.php ook).
**************************************************************
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'naam'; // Je naam...
$cEmail = 'email'; // email waar het heen moet
$cOndPre = 'Emailtje -'; // prefix voor onderwerp
$cOndSuf = '- van mij'; // suffix achter onderwerp
$cSpam = 10; // Anti Spam, X aantal minuten
?>
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'naam'; // Je naam...
$cEmail = 'email'; // email waar het heen moet
$cOndPre = 'Emailtje -'; // prefix voor onderwerp
$cOndSuf = '- van mij'; // suffix achter onderwerp
$cSpam = 10; // Anti Spam, X aantal minuten
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="javascript" src="http://www.mollie.nl/partners/js/4635.js"> </script>
<title>Mail Formulier</title>
<style type="text/css">
body, input, textarea
{
font-size: 10pt;
color: #000000;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
input, textarea
{
border: 1px solid black;
background-color: #FEFEFE;
}
</style>
</head>
<body>
Code (php)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?
if(!empty($_POST['verstuur']))
{ // Er is op de knop 'verstuur e-mail' gedrukt...
$pError = ''; // Een begin met de errors als die er zijn
$pI = 0; // Deze telt het aantal erros.
if(strlen($_POST['naam']) < 2)
{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
if(strlen($_POST['onderwerp']) < 3)
{ $pError .= '- Je hebt geen geldig onderwerp ingevuld!<br>'; $pI++; }
if(strlen($_POST['bericht']) < 10)
{ $pError .= '- Je hebt geen geldig bericht ingevuld!<br>'; $pI++; }
if(!empty($pError))
{ // Als er dan toch errors zijn..
echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
echo $pError; // echoën van de error(s)
}
else
{
// uiteindelijk toch mailen :)
$pHeader = "MIME-Version: 1.0\r\n";
$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
$pBericht = 'Het volgende bericht is gestuurd via het contact formulier:<br><hr><br>'.$_POST['bericht'].$website;
mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
if(isset($_POST['usermail']))
{ // Als de persoon het vakje 'Ook naar mezelf mailen' heeft aangevinkt...
$pBerichtUser = 'Het volgende bericht heb je verstuurd via contact formulier:<br><hr><br>'.$_POST['bericht'];
mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
}
echo 'De e-mail is succesvol verzonden!';
setcookie('mailform',1,time()+($cSpam*60)); // cookie zetten tegen spam
$pShow = true; // formulier wordt niet weer getoond
}
}
// Kijken of er een waarde moet worden gegeven aan velden...
$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['mailform']))
{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
if(!isset($pShow))
{ // het formulier als $pShow niet bestaat.
?>
if(!empty($_POST['verstuur']))
{ // Er is op de knop 'verstuur e-mail' gedrukt...
$pError = ''; // Een begin met de errors als die er zijn
$pI = 0; // Deze telt het aantal erros.
if(strlen($_POST['naam']) < 2)
{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
if(strlen($_POST['onderwerp']) < 3)
{ $pError .= '- Je hebt geen geldig onderwerp ingevuld!<br>'; $pI++; }
if(strlen($_POST['bericht']) < 10)
{ $pError .= '- Je hebt geen geldig bericht ingevuld!<br>'; $pI++; }
if(!empty($pError))
{ // Als er dan toch errors zijn..
echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
echo $pError; // echoën van de error(s)
}
else
{
// uiteindelijk toch mailen :)
$pHeader = "MIME-Version: 1.0\r\n";
$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
$pBericht = 'Het volgende bericht is gestuurd via het contact formulier:<br><hr><br>'.$_POST['bericht'].$website;
mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
if(isset($_POST['usermail']))
{ // Als de persoon het vakje 'Ook naar mezelf mailen' heeft aangevinkt...
$pBerichtUser = 'Het volgende bericht heb je verstuurd via contact formulier:<br><hr><br>'.$_POST['bericht'];
mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
}
echo 'De e-mail is succesvol verzonden!';
setcookie('mailform',1,time()+($cSpam*60)); // cookie zetten tegen spam
$pShow = true; // formulier wordt niet weer getoond
}
}
// Kijken of er een waarde moet worden gegeven aan velden...
$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['mailform']))
{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }
if(!isset($pShow))
{ // het formulier als $pShow niet bestaat.
?>
<form method="post" action="">
<dl>
<dt><b>Naam:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><input type="text" name="naam" size="15" value=""></dd>
<dt><b>Email:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><input type="text" name="email" size="15" value=""></dd>
<dt><b>Website:</b></dt>
<dd><input type="text" name="website" size="15" value=""></dd>
<dt><b>Onderwerp:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><input type="text" name="onderwerp" size="15" value=""></dd>
<dt><b>Bericht:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><textarea name="bericht" cols="40" rows="10"></textarea></dd>
<dt><b>Ook naar mezelf mailen:</b></dt>
<dd><input type="checkbox" name="usermail"></dd>
<dt><b>Formulier opties:</b></dt>
<dd>
<input type="submit" value="Verstuur e-mail" name="verstuur"> <input type="reset" value="Wis velden"></dd>
</dl>
</form>
</body>
</html>
**************************************************************
Dit formulier werkt perefct ( zonder de beveiliging ) ik heb al mail ontvangen, uitteraard wel met mijn gegevens ingevuld. Dus formulier is juist.
Waar moet ik nou de beveiliging plaatsten. Heb het helemaal bovenin geplaatst maar dat werkt niet. Ik kan gewoon nog naar de pagina surfen.
Hoe moet mijn script er dan komen uit te zien?
Er zijn nog geen reacties op dit bericht.