foutmelding op zelfde pagina als form
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
error_reporting(-1);
ini_set('display_errors', 1);
include '/verbinding.php';
include '/logincheck.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
<html>
<form method="post" action="adresversturen.php">
<TABLE CELLSPACING="2" CELLPADDING="2" BORDER="0">
<tr>
<td>straatnaam:</td>
<td><input type="text" name="straat" /></td>
</tr>
<tr>
<td>huisnummer:</td>
<td><input type="text" name="huisnummer" /></td>
</tr>
<tr>
<td>postcode:</td>
<td><input type="text" name="postcode" /></td>
</tr>
<tr>
<td>plaats:</td>
<td><input type="text" name="plaats" /></td>
</tr>
<tr>
<td>land:</td>
<td><select name="landid" STYLE="width: 145px">
<?php
$sql = "execute spLandBox";
foreach ($db->query($sql) as $row) {
echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}
?>
</select></td>
</tr>
<tr>
<td>Contactpersoon adres:</td>
<td><select name="opdrachtid" STYLE="width: 145px">
<option value="-1">Kies contactpersoon</option>
<?php
$sql = "{CALL spOpdrachtgeverBox (@Opdrachtgeverid=:opdrachtgever)}";
$stmt = $db->prepare($sql);
$opdrachtgeverid = $_SESSION['relatie'];
$stmt->bindParam(':opdrachtgever',$opdrachtgeverid, PDO::PARAM_STR);
$stmt->execute();
foreach ($stmt->fetchall(PDO::FETCH_ASSOC) as $row) {
echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}
?>
</select></td>
</tr>
<tr>
<td>opmerkingen:</td>
<td><TEXTAREA Name="opmerking" rows="6" cols="50"></TEXTAREA></td>
</tr>
<?php
<tr>
<td><input type="submit" value="Verzenden">
<INPUT TYPE="button" VALUE="Terug" onClick="history.go(-1);return true;"></td>
</tr>
</form>
</html>
error_reporting(-1);
ini_set('display_errors', 1);
include '/verbinding.php';
include '/logincheck.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
<html>
<form method="post" action="adresversturen.php">
<TABLE CELLSPACING="2" CELLPADDING="2" BORDER="0">
<tr>
<td>straatnaam:</td>
<td><input type="text" name="straat" /></td>
</tr>
<tr>
<td>huisnummer:</td>
<td><input type="text" name="huisnummer" /></td>
</tr>
<tr>
<td>postcode:</td>
<td><input type="text" name="postcode" /></td>
</tr>
<tr>
<td>plaats:</td>
<td><input type="text" name="plaats" /></td>
</tr>
<tr>
<td>land:</td>
<td><select name="landid" STYLE="width: 145px">
<?php
$sql = "execute spLandBox";
foreach ($db->query($sql) as $row) {
echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}
?>
</select></td>
</tr>
<tr>
<td>Contactpersoon adres:</td>
<td><select name="opdrachtid" STYLE="width: 145px">
<option value="-1">Kies contactpersoon</option>
<?php
$sql = "{CALL spOpdrachtgeverBox (@Opdrachtgeverid=:opdrachtgever)}";
$stmt = $db->prepare($sql);
$opdrachtgeverid = $_SESSION['relatie'];
$stmt->bindParam(':opdrachtgever',$opdrachtgeverid, PDO::PARAM_STR);
$stmt->execute();
foreach ($stmt->fetchall(PDO::FETCH_ASSOC) as $row) {
echo printf('<option value="%d">%s</option>', $row['id'], $row['naam']);
}
?>
</select></td>
</tr>
<tr>
<td>opmerkingen:</td>
<td><TEXTAREA Name="opmerking" rows="6" cols="50"></TEXTAREA></td>
</tr>
<?php
<tr>
<td><input type="submit" value="Verzenden">
<INPUT TYPE="button" VALUE="Terug" onClick="history.go(-1);return true;"></td>
</tr>
</form>
</html>
Gewijzigd op 18/04/2012 11:07:57 door Gerhard timmerman
Bij de input velden doe je dan bijv:
adresversturen.php
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
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
<?php
error_reporting(-1);
ini_set('display_errors', 1);
include '/logincheck.php';
include '/verbinding.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "{call spAdresToevoegen (@Relatieid=:relatieid,@Plaats=:plaats,@Straat=:straat,@Huisnummer=:huisnummer,@Postcode=:postcode,@Landid=:landid,@opmerking=:opmerking,@Contactid=:opdrachtgever,@foutmelding=:fout)}";
$stmt = $db->prepare($sql);
$relatieid = $_SESSION['relatie'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$landid = $_POST['landid'];
$opmerking = $_POST['opmerking'];
$opdrachtgever = $_POST['opdrachtid'];
$stmt->bindParam(':relatieid',$relatieid, PDO::PARAM_STR);
$stmt->bindParam(':plaats',$plaats, PDO::PARAM_STR);
$stmt->bindParam(':straat',$straat, PDO::PARAM_STR);
$stmt->bindParam(':huisnummer',$huisnummer, PDO::PARAM_STR);
$stmt->bindParam(':postcode',$postcode, PDO::PARAM_STR);
$stmt->bindParam(':landid',$landid, PDO::PARAM_STR);
$stmt->bindParam(':opmerking',$opmerking, PDO::PARAM_STR);
$stmt->bindParam(':opdrachtgever',$opdrachtgever, PDO::PARAM_STR);
$stmt->bindParam(':fout',$fout, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT,100);
$stmt->execute();
if ( $fout == "" ) {
echo "Adres is toegevoegt";
}
print $fout;
?>
error_reporting(-1);
ini_set('display_errors', 1);
include '/logincheck.php';
include '/verbinding.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "{call spAdresToevoegen (@Relatieid=:relatieid,@Plaats=:plaats,@Straat=:straat,@Huisnummer=:huisnummer,@Postcode=:postcode,@Landid=:landid,@opmerking=:opmerking,@Contactid=:opdrachtgever,@foutmelding=:fout)}";
$stmt = $db->prepare($sql);
$relatieid = $_SESSION['relatie'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$landid = $_POST['landid'];
$opmerking = $_POST['opmerking'];
$opdrachtgever = $_POST['opdrachtid'];
$stmt->bindParam(':relatieid',$relatieid, PDO::PARAM_STR);
$stmt->bindParam(':plaats',$plaats, PDO::PARAM_STR);
$stmt->bindParam(':straat',$straat, PDO::PARAM_STR);
$stmt->bindParam(':huisnummer',$huisnummer, PDO::PARAM_STR);
$stmt->bindParam(':postcode',$postcode, PDO::PARAM_STR);
$stmt->bindParam(':landid',$landid, PDO::PARAM_STR);
$stmt->bindParam(':opmerking',$opmerking, PDO::PARAM_STR);
$stmt->bindParam(':opdrachtgever',$opdrachtgever, PDO::PARAM_STR);
$stmt->bindParam(':fout',$fout, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT,100);
$stmt->execute();
if ( $fout == "" ) {
echo "Adres is toegevoegt";
}
print $fout;
?>
Gewijzigd op 18/04/2012 11:08:35 door gerhard timmerman
Ja, in je tweede script controleer je waarschijnlijk de geposte gegevens dat zet je nu boven de form.
ja maar als ik action leeg laat hoe worden ze dan gepost op die pagina en zo als je ziet word door mijn database gecheckt of de gegevens kloppen
1) vanuit het form direct posten naar een andere pagina, waarbij je als er een fout is de user via een redirect terug stuurt.
2) vanuit het form posten naar dezelfde pagina en als alles goed is de user via een redirect doorsturen naar de volgende pagina.
3) een eerste check in javascript uitvoeren zodat je voor normale gebruikers (lees: geen hackers die moedwillig fouten invoeren) alles nog in de browser kan controleren en je dus zeker weet dat als je echt post alles ook voldoet aan je eisen.
3 is de mooiste manier voor de gebruiker, omdat de pagina niet hoeft te herladen. Het kost je alleen wel meer werk, omdat je nog steeds OOK de check op de server moet doen. Bij normale gebruiker zal de browser check wel goed gaan, maar bij iemand die moedwillig die check omzeilt krijg je alsnog corrupte data binnen.
ja 1 lijkt me de makelijkste optie maar daar staat wel in tegen dat de gegevens niet meer ingevuld zijn die ze eerder hadden ingevuld. of is hier een oplossing voor
Dit kan je natuurlijk niet doen met heel veel data, or met gevoelige data. Dat soort data zou je normaal met een POST meegeven, dus enige voorzichtigheid is wel geboden.
Gewijzigd op 18/04/2012 11:31:21 door gerhard timmerman
Of.... bedenk ik me nu, je kan het tijdelijk in een sessie stoppen. Dus als je de gebruiker terug moet sturen dat stop je alle info die in POST stond in een sessie, redirect de user terug en op de pagina waar je het form opbouwt check je voor de info in de POST array. Wel daarna direct alles daar weer uit halen, anders blijft de gebruiker hetb elke keer weer terug zien.
ja dat zou kunnen maar mijn inlog systeem werkt ook met sessies dus zodra ik die ga vernietigen is de gebruiker ook uitgelogd en dat is niet de bedoeling
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
function validateForm()
{
var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid e-mail address");
return false;
}
}
{
var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid e-mail address");
return false;
}
}
maar hoe maak ik hier dan 1 van dat als je naam en email adres niet klopt het in de zelfde alert komt. javascript lijkt me toch een stukje mooier
Gewijzigd op 18/04/2012 11:55:04 door gerhard timmerman
En als er geen gebruik wordt gemaakt van javascript?
Gewijzigd op 18/04/2012 12:06:10 door gerhard timmerman
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
code kan beter, maar het was alleen als voorbeeldje. Hoop dat je het idee snapt
Gerhard timmerman op 18/04/2012 12:03:51:
de meeste mensen gebruiken wel java
java <> javascript!
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript">
function validateForm()
{
var x=document.forms["contacttoevoegen"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Geen geldig email adres");
return false;
}
}
{
var x=document.forms["contacttoevoegen"]["naam"].value;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
</script>
function validateForm()
{
var x=document.forms["contacttoevoegen"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Geen geldig email adres");
return false;
}
}
{
var x=document.forms["contacttoevoegen"]["naam"].value;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
</script>
Gewijzigd op 18/04/2012 13:14:40 door gerhard timmerman
ik heb het al op een andere manier opgelost maar wel met javascript ik zit momenteel niet achter mijn project computer dus zal morgen het script hier posten zodat andere mensen er ook wat aan hebben.
Ga dan aub verder in 1 topic en verwijs naar het andere. Nu ben je in 2 topics bezig over hetzelfde onderwerp.