Problemen met Notice: Undefined index: A1 in ... on line 22

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Kristof Bruyneel

Kristof Bruyneel

07/10/2019 18:23:07
Quote Anchor link
Ik ben net begonnen voor mijn hobby om PHP te leren en zou graag een enquête maken welke gelinkt is aan een database.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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.";
?>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());
        }
        
}


?>
Gewijzigd op 07/10/2019 18:25:42 door Kristof Bruyneel
 
PHP hulp

PHP hulp

29/11/2024 06:37:14
 
Michael -

Michael -

07/10/2019 18:30:39
Quote Anchor link
Ik begrijp dat je net bent begonnen met PHP, maar er kunnen een hoop zaken beter.

Die notice komt omdat een variabele niet is ge-set. Dit zou je zo op kunnen lossen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (!isset($Email,$Voornaam,$Achternaam,$Geslacht,$Postcode,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9)) {
        echo "Gelieve alle vragen in te vullen.";
}

?>


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 -
 
- Ariën  -
Beheerder

- Ariën -

07/10/2019 18:35:24
Quote Anchor link
Vind je A1 t/m A9 en B1 t/m B9 zelf duidelijk, vraag ik mij af?

Ik weet niet wat het is, maar dit kan je groeperen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
?>


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.
 
Kristof Bruyneel

Kristof Bruyneel

07/10/2019 18:40:17
Quote Anchor link
Michael:

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {    
    if (!isset($Email,$Voornaam,$Achternaam,$Geslacht,$Postcode,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9)) {
        echo "Gelieve alle vragen in te vullen.";
    }

?>


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
 
Michael -

Michael -

07/10/2019 18:44:34
Quote Anchor link
Geen probleem. We hebben het allemaal een keer moeten leren.
Nee dan wordt het
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
 if (!isset($_POST['Email'],$_POST['Voornaam'])) {
        echo "Gelieve alle vragen in te vullen.";
}

?>

etc.
Variabelen kopiëren is alleen nodig als je de inhoud wijzigt.
 
- Ariën  -
Beheerder

- Ariën -

07/10/2019 18:45:55
Quote Anchor link
$_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....
Gewijzigd op 07/10/2019 18:47:20 door - Ariën -
 
Kristof Bruyneel

Kristof Bruyneel

07/10/2019 18:48:25
Quote Anchor link
- 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....


Hoe dan? Alle tips zijn handig!
 
Michael -

Michael -

07/10/2019 18:56:32
Quote Anchor link
Dan moeten we meer weten over wat je aan het maken bent.
Wat hij bedoelt met genummerd, is dat een nummer niet zegt wat erin zit. Wat is een A1,A2,A3 ??
 
Kristof Bruyneel

Kristof Bruyneel

07/10/2019 19:11:43
Quote Anchor link
Ariën:

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)
PHP script in nieuw venster Selecteer het PHP script
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
<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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());
        }

        
?>
Gewijzigd op 08/10/2019 17:28:26 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

07/10/2019 19:30:17
Quote Anchor link
$A1','$A2','$A3'etc hebben geen waarde. Ze komen uit POST dus is het:

$_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.
 
- SanThe -

- SanThe -

07/10/2019 19:37:37
Quote Anchor link
Kristof Bruyneel op 07/10/2019 19:11:43:
<input type="checkbox" name="Geslacht" value="Man">
<input type="checkbox" name="geslacht" value="Vrouw">


Dus men kan zowel man als vrouw zijn.

Geef ze exact dezelfde name en gebruik typ="radio"
 
Rob Doemaarwat

Rob Doemaarwat

07/10/2019 19:52:18
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$A1 = $_POST['A1'] ?? null;

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;

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.
 
- Ariën  -
Beheerder

- Ariën -

07/10/2019 19:53:11
Quote Anchor link
Los daarvan is het in deze tijd ook verstandig om: "Anders" aan te bieden. ;-)
 
Michael -

Michael -

07/10/2019 20:01:09
Quote Anchor link
@Rob, Schrijfwijze is enigszins een persoonlijke voorkeur. Zoals jij het doet zou het echo "Hallo {$naam}"; moeten zijn.
Dat PHP alles valide vind, zegt meer iets over de taal ;-) echo "Hallo " . $naam; is imo de correcte en duidelijkste manier.
 
Rob Doemaarwat

Rob Doemaarwat

07/10/2019 20:28:22
Quote Anchor link
Nee hoor, "Hallo $naam" werkt ook prima. Die accolades heb je alleen nodig als nit helemaal duidelijk is waar de variabele eindigt, en de (rest van de) zin weer verder gaat, of als je niet-numerieke indexen in een array gebruikt: https://www.php.net/manual/en/language.types.string.php#language.types.string.parsing
 
Michael -

Michael -

07/10/2019 20:31:03
Quote Anchor link
@Rob, Het is makkelijker om eenvoud te houden. Daarom kun je beter altijd accolades plaatsen ipv soms wel en soms niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$money
= 10;

echo "you have earned $$money.00"; // Gaat helemaal fout.
echo "you have earned ${$money}.00"; // kan wel.
echo 'You have earned $' . $money . '.00'; // kan ook.
?>
 
Kristof Bruyneel

Kristof Bruyneel

08/10/2019 16:51:00
Quote Anchor link
Ik heb ondertussen mijn code proberen aanpassen en ben tot onderstaande code geraakt. Maar nog steeds blijf ik foutmeldingen krijgen in plaats van een mooie "Gelieve alle antwoorde te beantwoorden." boodschap. Kan iemand me verduidelijken waar ik nu weer in de fout ga en hoe ik dit kan oplossen? :(

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());
        }
        
}


?>


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
 
- Ariën  -
Beheerder

- Ariën -

08/10/2019 16:59:29
Quote Anchor link
Controlleer eens met dit op lijn 7 of een formulier is verstuurd:

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(trim($_POST['iets'])=="") {
 echo "Is niet ingevuld";
}

?>
Gewijzigd op 08/10/2019 17:13:09 door - Ariën -
 
Michael -

Michael -

08/10/2019 17:01:45
Quote Anchor link
Dat komt omdat je bracket } niet goed staat op regel 26.
Alles na regel 26 wordt altijd uitgevoerd of het nou wel of niet is toegevoegd. Daarom die foutmeldingen.
 
Kristof Bruyneel

Kristof Bruyneel

08/10/2019 17:17:20
Quote Anchor link
Ik heb de bracket van lijn 26 verplaatst naar lijn 39 en heb op lijn 7 de code
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());
        }
    }
        
}


?>
Gewijzigd op 08/10/2019 17:19:18 door Kristof Bruyneel
 
- Ariën  -
Beheerder

- Ariën -

08/10/2019 17:21:40
Quote Anchor link
Laat je relevante code nu eens zien tussen code-tags? En heb je mijn validatie al toegepast?

let ook op SQL-injection!!!!
Gewijzigd op 08/10/2019 17:21:58 door - Ariën -
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.