Problemen met Notice: Undefined index: A1 in ... on line 22
Wanneer ik echter een vraag oningevuld laat krijg ik steeds de melding 'Notice: Undefined index...'.
Ik begrijp dat dit betekent dat de vraag niet ingevuld is, maar dacht dit te laten melden door volgende code:
Code (php)
1
2
3
4
2
3
4
<?php
if (empty($Email) || empty($Voornaam) || empty($Achternaam) || empty($Geslacht) || empty($Postcode) || empty($A1) || empty($A2) || empty($A3) || empty($A4) || empty($A5) || empty($A6) || empty($A7) || empty($A8) || empty($A9) || empty($B1) || empty($B2) || empty($B3) || empty($B4) || empty($B5) || empty($B6) || empty($B7) || empty($B8) || empty($B9)) {
echo "Gelieve alle vragen in te vullen.";
?>
if (empty($Email) || empty($Voornaam) || empty($Achternaam) || empty($Geslacht) || empty($Postcode) || empty($A1) || empty($A2) || empty($A3) || empty($A4) || empty($A5) || empty($A6) || empty($A7) || empty($A8) || empty($A9) || empty($B1) || empty($B2) || empty($B3) || empty($B4) || empty($B5) || empty($B6) || empty($B7) || empty($B8) || empty($B9)) {
echo "Gelieve alle vragen in te vullen.";
?>
Het gevolg is nu dat de Notice meldingen nog steeds op de webpagina verschijnen mét daaronder mijn melding "Gelieve alle vragen in te vullen.'
Ik heb hieronder de code van mijn .php bestand geplaatst. Kan iemand me uitleggen wat ik verkeerd doe en hoe ik het beter kan doen? Alvast bedankt!!!
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
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
<?php
/* Onderstaande code maakt connectie met de database */
function Connect_DB () {
global $connection;
$connection = mysqli_connect ('localhost', 'root', '', 'DatabaseHobby'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed' . mysqli_error());
}
}
/* Haalt alle gegevens uit het formulier en stockeert ze in database */
if (isset($_POST ['Submit'])){
$Email = $_POST['Email'];
$Voornaam = $_POST['Voornaam'];
$Achternaam = $_POST['Achternaam'];
$Geslacht = $_POST['Geslacht'];
$Postcode = $_POST['Postcode'];
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];
$B1 = $_POST['B1'];
$B2 = $_POST['B2'];
$B3 = $_POST['B3'];
$B4 = $_POST['B4'];
$B5 = $_POST['B5'];
$B6 = $_POST['B6'];
$B7 = $_POST['B7'];
$B8 = $_POST['B8'];
$B9 = $_POST['B9'];
if (empty($Email) || empty($Voornaam) || empty($Achternaam) || empty($Geslacht) || empty($Postcode) || empty($A1) || empty($A2) || empty($A3) || empty($A4) || empty($A5) || empty($A6) || empty($A7) || empty($A8) || empty($A9) || empty($B1) || empty($B2) || empty($B3) || empty($B4) || empty($B5) || empty($B6) || empty($B7) || empty($B8) || empty($B9)) {
echo "Gelieve alle vragen in te vullen.";
}
Connect_DB ();
$query = "INSERT INTO DatabaseTabel (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8, A9, B1, B2, B3, B4, B5, B6, B7, B8, B9) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9','$B1','$B2','$B3','$B4','$B5','$B6','$B7','$B8','$B9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
}
?>
/* Onderstaande code maakt connectie met de database */
function Connect_DB () {
global $connection;
$connection = mysqli_connect ('localhost', 'root', '', 'DatabaseHobby'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed' . mysqli_error());
}
}
/* Haalt alle gegevens uit het formulier en stockeert ze in database */
if (isset($_POST ['Submit'])){
$Email = $_POST['Email'];
$Voornaam = $_POST['Voornaam'];
$Achternaam = $_POST['Achternaam'];
$Geslacht = $_POST['Geslacht'];
$Postcode = $_POST['Postcode'];
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];
$B1 = $_POST['B1'];
$B2 = $_POST['B2'];
$B3 = $_POST['B3'];
$B4 = $_POST['B4'];
$B5 = $_POST['B5'];
$B6 = $_POST['B6'];
$B7 = $_POST['B7'];
$B8 = $_POST['B8'];
$B9 = $_POST['B9'];
if (empty($Email) || empty($Voornaam) || empty($Achternaam) || empty($Geslacht) || empty($Postcode) || empty($A1) || empty($A2) || empty($A3) || empty($A4) || empty($A5) || empty($A6) || empty($A7) || empty($A8) || empty($A9) || empty($B1) || empty($B2) || empty($B3) || empty($B4) || empty($B5) || empty($B6) || empty($B7) || empty($B8) || empty($B9)) {
echo "Gelieve alle vragen in te vullen.";
}
Connect_DB ();
$query = "INSERT INTO DatabaseTabel (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8, A9, B1, B2, B3, B4, B5, B6, B7, B8, B9) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9','$B1','$B2','$B3','$B4','$B5','$B6','$B7','$B8','$B9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
}
?>
Gewijzigd op 07/10/2019 18:25:42 door Kristof Bruyneel
Die notice komt omdat een variabele niet is ge-set. Dit zou je zo op kunnen lossen:
Code (php)
Regel 17 t/m 39 is complete onzin. Zolang je niks verandert aan die variabele is het onzin om deze te kopiëren. Gebruik gewoon direct de POST variabele.
Variabele moet je buiten quotes plaatsen.
Dus niet echo "hallo $naam"; maar echo "Hallo " . $naam;
Een beter alternatief voor if (isset($_POST ['Submit'])){ is
if($_SERVER['REQUEST_METHOD'] == "POST") {
Toevoeging: Wanneer je gebruikers input ($_GET, $_POST) gebruikt is dit altijd een veiligheids risico. Gebruik daarom in je query mysqli_real_escape_string($connection, $_POST['Email']) enz.
edit:typo's
Gewijzigd op 07/10/2019 18:37:43 door Michael -
Ik weet niet wat het is, maar dit kan je groeperen:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$items['auto']['masda'] = $_POST['auto']['masda'];
$items['auto']['audi'] = $_POST['auto']['audi'];
$items['fiets']['batavus'] = $_POST['fiets']['batavus'];
$items['fiets']['gazelle'] = $_POST['fiets']['gazelle'];
?>
$items['auto']['masda'] = $_POST['auto']['masda'];
$items['auto']['audi'] = $_POST['auto']['audi'];
$items['fiets']['batavus'] = $_POST['fiets']['batavus'];
$items['fiets']['gazelle'] = $_POST['fiets']['gazelle'];
?>
Maar zonder duidelijkheid over de betekenissen van deze velden wordt het lastig om te zeggen hoe je dit kan normaliseren. Toch is het iets wat je zeker moet normaliseren voor de duidelijkheid.
Sorry voor mijn trage begrip maar heb ik regel 17 t/m 39 niet nodig om de 'name' uit het html formulier om te zetten naar de juiste variabele in PHP?
En is het dan de bedoeling dat ik regel 17 t/m 39 volledig wis en vervang door:
Code (php)
Ariën:
De vragen A1 t/m B9 zijn vragen gesteld in de vorm van een 5-punts Likert schaal waarbij men per vraag een antwoord kan geven van 'totaal niet akkoord' tot 'helemaal akkoord'
Omdat ik deze antwoorden wil hebben in een database heb ik de kolom in de database afgekort naar A1 (= da's vraag 1) t/m B9 (da's vraag 18).
Gewijzigd op 07/10/2019 18:45:10 door Kristof Bruyneel
Nee dan wordt het
Code (php)
etc.
Variabelen kopiëren is alleen nodig als je de inhoud wijzigt.
moet je dan gebruiken..
Anders sta je nu onnodig variabelen te kopiëren.
Oef, genummerde velden, niet echt handig, dat kan veel beter worden opgeslagen....
Gewijzigd op 07/10/2019 18:47:20 door - Ariën -
- Ariën - op 07/10/2019 18:45:55:
$_POST['A1'],$_POST['A2'],$_POST['A3'] etc...
moet je dan gebruiken..
Anders sta je nu onnodig variabelen te kopiëren.
Oef, genummerde velden, niet echt handig, dat kan veel beter worden opgeslagen....
moet je dan gebruiken..
Anders sta je nu onnodig variabelen te kopiëren.
Oef, genummerde velden, niet echt handig, dat kan veel beter worden opgeslagen....
Hoe dan? Alle tips zijn handig!
Wat hij bedoelt met genummerd, is dat een nummer niet zegt wat erin zit. Wat is een A1,A2,A3 ??
Ik ben een html formulier aan het maken waar een 18- tal vragen gesteld zullen worden om te peilen naar de mate waarin men akkoord is of niet.
Hieronder een deel van de html/css code:
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
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
<html>
<form action="Likert_form.php" method="post">
<label class="statement">Emailadres:</label>
<input type="text" name="Email"><br/><br/>
<label class="statement">Voornaam:</label>
<input type="text" name="Voornaam"><br/><br/>
<label class="statement">Achternaam:</label>
<input type="text" name="Achternaam"><br/><br/>
<label class="statement">Geslacht:</label>
<ul class="demography">
<li>
<input type="checkbox" name="Geslacht" value="Man">
<label>Man</label>
</li>
<li>
<input type="checkbox" name="geslacht" value="Vrouw">
<label>Vrouw</label>
</li>
</ul>
<label class="statement">Postcode:</label>
<input type="text" name="Postcode"><br/><br/>
<label class="statement"><br/><!-- A1 --><br/>Hoe tevreden bent u over de muziekkeuze van de dirigent?</label>
<ul class='likert'>
<li>
<input type="checkbox" name="A1" value="Absoluut niet tevreden">
<label>Absoluut niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A1" value="Niet tevreden">
<label>Niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A1" value="Neutraal">
<label>Neutraal</label>
</li>
<li>
<input type="checkbox" name="A1" value="Tevreden">
<label>Tevreden</label>
</li>
<li>
<input type="checkbox" name="A1" value="Zeer tevreden">
<label>Zeer tevreden</label>
</li>
</ul>
<label class="statement"><br/><!-- A2 --><br/>Hoe tevreden bent u de duurtijd van de pauze?</label>
<ul class='likert'>
<li>
<input type="checkbox" name="A2" value="Absoluut niet tevreden">
<label>Absoluut niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A2" value="Niet tevreden">
<label>Niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A2" value="Neutraal">
<label>Neutraal</label>
</li>
<li>
<input type="checkbox" name="A2" value="Tevreden">
<label>Tevreden</label>
</li>
<li>
<input type="checkbox" name="A2" value="Zeer tevreden">
<label>Zeer tevreden</label>
</li>
</ul>
</form>
</html>
<form action="Likert_form.php" method="post">
<label class="statement">Emailadres:</label>
<input type="text" name="Email"><br/><br/>
<label class="statement">Voornaam:</label>
<input type="text" name="Voornaam"><br/><br/>
<label class="statement">Achternaam:</label>
<input type="text" name="Achternaam"><br/><br/>
<label class="statement">Geslacht:</label>
<ul class="demography">
<li>
<input type="checkbox" name="Geslacht" value="Man">
<label>Man</label>
</li>
<li>
<input type="checkbox" name="geslacht" value="Vrouw">
<label>Vrouw</label>
</li>
</ul>
<label class="statement">Postcode:</label>
<input type="text" name="Postcode"><br/><br/>
<label class="statement"><br/><!-- A1 --><br/>Hoe tevreden bent u over de muziekkeuze van de dirigent?</label>
<ul class='likert'>
<li>
<input type="checkbox" name="A1" value="Absoluut niet tevreden">
<label>Absoluut niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A1" value="Niet tevreden">
<label>Niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A1" value="Neutraal">
<label>Neutraal</label>
</li>
<li>
<input type="checkbox" name="A1" value="Tevreden">
<label>Tevreden</label>
</li>
<li>
<input type="checkbox" name="A1" value="Zeer tevreden">
<label>Zeer tevreden</label>
</li>
</ul>
<label class="statement"><br/><!-- A2 --><br/>Hoe tevreden bent u de duurtijd van de pauze?</label>
<ul class='likert'>
<li>
<input type="checkbox" name="A2" value="Absoluut niet tevreden">
<label>Absoluut niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A2" value="Niet tevreden">
<label>Niet tevreden</label>
</li>
<li>
<input type="checkbox" name="A2" value="Neutraal">
<label>Neutraal</label>
</li>
<li>
<input type="checkbox" name="A2" value="Tevreden">
<label>Tevreden</label>
</li>
<li>
<input type="checkbox" name="A2" value="Zeer tevreden">
<label>Zeer tevreden</label>
</li>
</ul>
</form>
</html>
Deze ingevulde data wil ik dan laten inlezen in een database die ik met MySQL geschreven heb. Dus dacht ik gebruik te maken van de C (van CRUD) om deze in mijn database te krijgen dmv POST.
Moet de php code dan zo zijn? Want zo krijg ik nog steeds de meldingen te zien :/
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
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
<?php
/* Onderstaande code maakt connectie met de database */
function Connect_DB () {
global $connection;
$connection = mysqli_connect ('localhost', 'root', '', 'wolfsecurity'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed' . mysqli_error());
}
}
/* Haalt alle gegevens uit het formulier en stockeert ze in database */
if (!isset($_POST['Email'],$_POST['Voornaam'], $_POST['Achternaam'], $_POST['Geslacht'], $_POST['Postcode'], $_POST['A1'], $_POST['A2'], $_POST['A3'], $_POST['A4'], $_POST['A5'], $_POST['A6'], $_POST['A7'], $_POST['A8'], $_POST['A9'], $_POST['B1'], $_POST['B2'], $_POST['B3'], $_POST['B4'], $_POST['B5'], $_POST['B6'], $_POST['B7'], $_POST['B8'], $_POST['B9'])) {
echo "Gelieve alle vragen in te vullen.";
}
Connect_DB ();
$query = "INSERT INTO klantentevredenheid_2019 (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8, A9, B1, B2, B3, B4, B5, B6, B7, B8, B9) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9','$B1','$B2','$B3','$B4','$B5','$B6','$B7','$B8','$B9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
?>
/* Onderstaande code maakt connectie met de database */
function Connect_DB () {
global $connection;
$connection = mysqli_connect ('localhost', 'root', '', 'wolfsecurity'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed' . mysqli_error());
}
}
/* Haalt alle gegevens uit het formulier en stockeert ze in database */
if (!isset($_POST['Email'],$_POST['Voornaam'], $_POST['Achternaam'], $_POST['Geslacht'], $_POST['Postcode'], $_POST['A1'], $_POST['A2'], $_POST['A3'], $_POST['A4'], $_POST['A5'], $_POST['A6'], $_POST['A7'], $_POST['A8'], $_POST['A9'], $_POST['B1'], $_POST['B2'], $_POST['B3'], $_POST['B4'], $_POST['B5'], $_POST['B6'], $_POST['B7'], $_POST['B8'], $_POST['B9'])) {
echo "Gelieve alle vragen in te vullen.";
}
Connect_DB ();
$query = "INSERT INTO klantentevredenheid_2019 (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8, A9, B1, B2, B3, B4, B5, B6, B7, B8, B9) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9','$B1','$B2','$B3','$B4','$B5','$B6','$B7','$B8','$B9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
?>
Gewijzigd op 08/10/2019 17:28:26 door - Ariën -
$_POST['A1'] etc.....
Uiteraard verdient dit ook verplichte escaping tegen SQL-injection.
Verder is een tabelnaam met een jaar ook niet echt genormaliseerd.
Als ik zo kijk heb je
Vragen en meningen van 1 t/m 5
DAn zul je dus een tabel moeten hebben met:
- De vragen
- Een tabel met de meningen (gekoppeld op ID nummer van de vraag), de ID-nummer van de persoon, en het jaar.
Kristof Bruyneel op 07/10/2019 19:11:43:
<input type="checkbox" name="Geslacht" value="Man">
<input type="checkbox" name="geslacht" value="Vrouw">
<input type="checkbox" name="geslacht" value="Vrouw">
Dus men kan zowel man als vrouw zijn.
Geef ze exact dezelfde name en gebruik typ="radio"
Michael - op 07/10/2019 18:30:39:
Regel 17 t/m 39 is complete onzin. Zolang je niks verandert aan die variabele is het onzin om deze te kopiëren. Gebruik gewoon direct de POST variabele.
Complete onzin is het nou ook weer niet. Het kan wat handiger zijn (zodat je niet elke keer die $_POST uit hoeft te schrijven), maar icm je probleem kun je ook dit doen:
Als "A1" nu niet in je POST zat heeft $A1 toch een geldige waarde (null). Je foutmelding is hiermee dus opgelost (als je dit toepast voor $A1 t/m $B9).
Michael - op 07/10/2019 18:30:39:
Variabele moet je buiten quotes plaatsen.
Dus niet echo "hallo $naam"; maar echo "Hallo " . $naam;
Dus niet echo "hallo $naam"; maar echo "Hallo " . $naam;
Dat moet niet (mag wel). Zeker met dubbele aanhalingstekens kan het juist wel. "hallo $naam" is 100% valide PHP code (en persoonlijk vindt ik het lekkerder lezen dan "Hallo " . $naam ; zeker als de tekst wat langer wordt met meer variabelen, zoals je $query). Let bij je query wel op SQL-injectie. Als iemand nu bewust of onbewust een enkel aanhalingsteken in (bijvoorbeeld) z'n achternaam gebruikt, dan klopt je query niet meer. Kijk hiervoor eens naar mysqli_real_escape_string.
Los daarvan is het in deze tijd ook verstandig om: "Anders" aan te bieden. ;-)
Dat PHP alles valide vind, zegt meer iets over de taal ;-) echo "Hallo " . $naam; is imo de correcte en duidelijkste manier.
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
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
<?php
include 'Connection_db.php';
/* Haalt alle gegevens uit het formulier */
if (isset($_POST ['Submit'])){
if (!isset($_POST['Email'], $_POST['Voornaam'], $_POST['Achternaam'], $_POST['Geslacht'], $_POST['Postcode'], $_POST['A1'], $_POST['A2'], $_POST['A3'], $_POST['A4'], $_POST['A5'], $_POST['A6'], $_POST['A7'], $_POST['A8'], $_POST['A9'])) {
echo "Gelieve alle vragen te beantwoorden.";
} else {
$Email = $_POST['Email'];
$Voornaam = $_POST['Voornaam'];
$Achternaam = $_POST['Achternaam'];
$Geslacht = $_POST['Geslacht'];
$Postcode = $_POST['Postcode'];
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];
}
$connection = mysqli_connect ('localhost', 'root', '', 'wolf'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed');}
$query = "INSERT INTO klantentevredenheid_2019 (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
}
?>
include 'Connection_db.php';
/* Haalt alle gegevens uit het formulier */
if (isset($_POST ['Submit'])){
if (!isset($_POST['Email'], $_POST['Voornaam'], $_POST['Achternaam'], $_POST['Geslacht'], $_POST['Postcode'], $_POST['A1'], $_POST['A2'], $_POST['A3'], $_POST['A4'], $_POST['A5'], $_POST['A6'], $_POST['A7'], $_POST['A8'], $_POST['A9'])) {
echo "Gelieve alle vragen te beantwoorden.";
} else {
$Email = $_POST['Email'];
$Voornaam = $_POST['Voornaam'];
$Achternaam = $_POST['Achternaam'];
$Geslacht = $_POST['Geslacht'];
$Postcode = $_POST['Postcode'];
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];
}
$connection = mysqli_connect ('localhost', 'root', '', 'wolf'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed');}
$query = "INSERT INTO klantentevredenheid_2019 (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
}
?>
Dit is de foutboodschap als ik vragen niet invul:
Gelieve alle vragen te beantwoorden.connection completed
Notice: Undefined variable: Email in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: Voornaam in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: Achternaam in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: Geslacht in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: Postcode in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A1 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A2 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A3 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A4 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A5 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A6 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A7 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A8 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Notice: Undefined variable: A9 in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 34
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\Wolf\Likert_form_php.php on line 38
query failed
Gewijzigd op 08/10/2019 16:54:17 door Kristof Bruyneel
if ($_SERVER['REQUEST_METHOD'] == "POST") {
Verder is een validatie met isset() niet voldoende. Als iemand een spatie invult dan is het al oké.
Dus bouw een if-elseif-elseif-else constructie in waarbij je controleert of iets is ingevuld. Waarbij er bij de 'else' aan alle validaties is voldaan.
Een mooie doch simpele check of iets is ingevuld is:
Gewijzigd op 08/10/2019 17:13:09 door - Ariën -
Alles na regel 26 wordt altijd uitgevoerd of het nou wel of niet is toegevoegd. Daarom die foutmeldingen.
if (isset($_POST ['Submit'])){ vervangen door if ($_SERVER['REQUEST_METHOD'] == "POST") { .
De errors zijn inderdaad verdwenen (bedankt!), maar ik krijg gewoon terug mijn formulier te zien met bovenaan de boodschap 'Gelieve alle vragen te beantwoorden.' terwijl er niets ingevoerd is in mijn database óókal heb ik alle vragen ingevuld.
Verder zie ik geen wijzigingen of boodschappen...
Dit is de meest recente code die ik nu heb:
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
include 'Connection_db.php';
/* Haalt alle gegevens uit het formulier */
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (!isset($_POST['Email'], $_POST['Voornaam'], $_POST['Achternaam'], $_POST['Geslacht'], $_POST['Postcode'], $_POST['A1'], $_POST['A2'], $_POST['A3'], $_POST['A4'], $_POST['A5'], $_POST['A6'], $_POST['A7'], $_POST['A8'], $_POST['A9'])) {
echo "Gelieve alle vragen te beantwoorden.";
} else {
$Email = $_POST['Email'];
$Voornaam = $_POST['Voornaam'];
$Achternaam = $_POST['Achternaam'];
$Geslacht = $_POST['Geslacht'];
$Postcode = $_POST['Postcode'];
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];
$connection = mysqli_connect ('localhost', 'root', '', 'wolfsecurity'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed');}
$query = "INSERT INTO klantentevredenheid_2019 (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
}
}
?>
include 'Connection_db.php';
/* Haalt alle gegevens uit het formulier */
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (!isset($_POST['Email'], $_POST['Voornaam'], $_POST['Achternaam'], $_POST['Geslacht'], $_POST['Postcode'], $_POST['A1'], $_POST['A2'], $_POST['A3'], $_POST['A4'], $_POST['A5'], $_POST['A6'], $_POST['A7'], $_POST['A8'], $_POST['A9'])) {
echo "Gelieve alle vragen te beantwoorden.";
} else {
$Email = $_POST['Email'];
$Voornaam = $_POST['Voornaam'];
$Achternaam = $_POST['Achternaam'];
$Geslacht = $_POST['Geslacht'];
$Postcode = $_POST['Postcode'];
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];
$connection = mysqli_connect ('localhost', 'root', '', 'wolfsecurity'); /* 'Servernaam', 'gebruikersnaam', 'wachtwoord', 'databasenaam' */
if (!$connection) {
die ('connection failed');}
$query = "INSERT INTO klantentevredenheid_2019 (Email, Voornaam, Achternaam, Geslacht, Postcode, A1, A2, A3, A4, A5, A6, A7, A8) "; /* Naam tabel (kolommen) */
$query .= "VALUES ('$Email','$Voornaam','$Achternaam','$Geslacht','$Postcode','$A1','$A2','$A3','$A4','$A5','$A6','$A7','$A8','$A9')"; /*ingevulde waarde */
$result = mysqli_query ($connection, $query);
if (!$result) {
die ('query failed' . mysqli_error());
}
}
}
?>
Gewijzigd op 08/10/2019 17:19:18 door Kristof Bruyneel