php session form post op 1 page
ik heb een vraagje ik heb zeg maar een 3 stap formulier
hoe kan ik zeg maar dat bij de laatste stap pas alles gesaved wordt de formulier
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<div class="container">
<h1>Multi-step form</h1>
<div class="form">
<div class="inner">
<ul class="steps">
<li class="listItem show">
<div class="col1">
<span class="step"
><span>1</span><span class="checkmark"></span
></span>
<span class="line"></span>
</div>
<div class="col2 stepBody">
<div class="stepTitle">
Step 1
</div>
<div class="content">
<div class="inputGroup">
<label for="name">How should we call you?</label>
<input
autocomplete="off"
type="text"
name="name"
id="name"
/>
</div>
<div class="buttons">
<button class="next" disabled>Continue</button>
</div>
</div>
</div>
</li>
<li class="listItem">
<div class="col1">
<span class="step"
><span>2</span><span class="checkmark"></span
></span>
<span class="line"></span>
</div>
<div class="col2 stepBody">
<div class="stepTitle">
Step 2
</div>
<div class="content">
<!-- wrap inputs into div to enable :focus-within css selector on container -->
<div class="inputGroup">
<label for="email">Your email</label>
<input
autocomplete="off"
type="email"
name="email"
id="email"
/>
</div>
<div class="inputGroup">
<label for="password">Set password</label>
<input
autocomplete="off"
type="password"
name="password"
id="password"
/>
</div>
<div class="buttons">
<button class="next" disabled>Continue</button>
<button class="prev">Back</button>
</div>
</div>
</div>
</li>
<li class="listItem">
<div class="col1">
<span class="step"
><span>3</span><span class="checkmark"></span
></span>
<span class="line"></span>
</div>
<div class="col2 stepBody">
<div class="stepTitle">
Step 3
</div>
<div class="content">
<div class="inputGroup">
<p>
Congratulations! Now you're all set,<br />
hit that submit button!
</p>
</div>
<div class="buttons">
<button class="submit">Submit</button>
<button class="prev">Back</button>
</div>
<div class="message">
<span class="success">You signed up succesfully!</span>
<span class="fail"
>Oops, something went wrong! Please double-check your
inputs.</span
>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<script type="module" src="js/main.js"></script>
</body>
<h1>Multi-step form</h1>
<div class="form">
<div class="inner">
<ul class="steps">
<li class="listItem show">
<div class="col1">
<span class="step"
><span>1</span><span class="checkmark"></span
></span>
<span class="line"></span>
</div>
<div class="col2 stepBody">
<div class="stepTitle">
Step 1
</div>
<div class="content">
<div class="inputGroup">
<label for="name">How should we call you?</label>
<input
autocomplete="off"
type="text"
name="name"
id="name"
/>
</div>
<div class="buttons">
<button class="next" disabled>Continue</button>
</div>
</div>
</div>
</li>
<li class="listItem">
<div class="col1">
<span class="step"
><span>2</span><span class="checkmark"></span
></span>
<span class="line"></span>
</div>
<div class="col2 stepBody">
<div class="stepTitle">
Step 2
</div>
<div class="content">
<!-- wrap inputs into div to enable :focus-within css selector on container -->
<div class="inputGroup">
<label for="email">Your email</label>
<input
autocomplete="off"
type="email"
name="email"
id="email"
/>
</div>
<div class="inputGroup">
<label for="password">Set password</label>
<input
autocomplete="off"
type="password"
name="password"
id="password"
/>
</div>
<div class="buttons">
<button class="next" disabled>Continue</button>
<button class="prev">Back</button>
</div>
</div>
</div>
</li>
<li class="listItem">
<div class="col1">
<span class="step"
><span>3</span><span class="checkmark"></span
></span>
<span class="line"></span>
</div>
<div class="col2 stepBody">
<div class="stepTitle">
Step 3
</div>
<div class="content">
<div class="inputGroup">
<p>
Congratulations! Now you're all set,<br />
hit that submit button!
</p>
</div>
<div class="buttons">
<button class="submit">Submit</button>
<button class="prev">Back</button>
</div>
<div class="message">
<span class="success">You signed up succesfully!</span>
<span class="fail"
>Oops, something went wrong! Please double-check your
inputs.</span
>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<script type="module" src="js/main.js"></script>
</body>
iemand idee ik hoe dat ongeveer moet doen
Tijdelijk opslaan in een PHP session.
heb je een voorbeeldje
begint altijd met
En met dit, kan je alle $_POST elementen opslaan in een sessie.
Voor de tweede pagina sla je de data op in $_SESSION['step2'], en dan step 3 enzovoorts.|
En na afloop kan je de hele $_SESSION doorlopen met foreach en alles verwerken.
Gewijzigd op 15/02/2023 18:49:17 door - Ariën -
@Ariën, kun je zoiets niet oplossen door gewoon 1 formulier te gebruiken maar door divs met daarin de formuliervelden te tonen en verbergen?
Zou eventueel ook kunnen.
http://jeurl.nl
automatisch naar een session id wordt geleid
index.php?sessionid=46420ee89c4c356956888c3b9584df6a
heb nu zo
Dit lijkt mij juist gevaarlijker omdat je de SessionID in logs achterlaat, en dan is hijacking zo gebeurd.
Gewijzigd op 17/02/2023 00:01:06 door - Ariën -
ik wil dat zeg maar wanneer iemand op mijn websitebezoekt een eigen session id heeft voor de form
Je kan toch ook een eigen sessie-code aanmaken?
https://www.phptutorial.net/php-tutorial/php-csrf/
Hiermee zorg je ervoor dat anderen vanaf een eigen locatie je formulier niet kunnen misbruiken voor spam.
https://www.phptutorial.net/php-tutorial/php-prg/
Dit is bedoeld om dubbelposten tegen te gaan.
En in de CSRF tutorial staat ook hoe je een eigen sessiecode aanmaakt. Daar wil je geen PHP SessionD voor aanroepen. Je kan wel losstaande sessies gebruiken, zoals ik al eerder heb genoemd.
Gewijzigd op 17/02/2023 00:12:47 door - Ariën -
>> hoe kan ik zeg maar dat bij de laatste stap pas alles gesaved wordt de formulier
>> ik wil dat zeg maar wanneer iemand op mijn websitebezoekt een eigen session id heeft voor de form
Je hebt "zeg maar" een opvallend stopwoordje :-)
Ik vermoed, gezien de vragen die je stelt en de voorstellen die je doet dat je nog niet zo heel veel ervaring hebt met programmeren. Klopt dat?