Form validatie werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mohamed nvt

Mohamed nvt

22/06/2016 23:09:30
Quote Anchor link
Hallo allemaal,

Momenteel heb ik een form waarmee je info kunt toevoegen aan de DB.
Tot zover werkt dit zonder problemen.
Nu wil ik graag een stap verder gaan en dat is form validatie toepassen.

Via de website http://www.tutorialspoint.com/php/php_validation_example.htm heb ik een voorbeeld gevonden waarmee form validatie kan toegepast worden.
Het form validatie werkt als volgt:

Op de insert.php pagina voer ik wat gegevens in. Wanneer de input van de gebruiker door de form validatie komt, dan vang ik alle input van de gebruiker op de pagina insert_proces.php. Via dit pagina heb ik een insert sql commando, die de input in de DB opslaat.


En wanneer ik een validatie toepas, dan krijg ik allemaal Notice: Undefined variable foutmeldingen op de insert_proces.php pagina. Vervolgens wordt er een leeg record toegevoegd aan de DB.

foutmelding:

Notice: Undefined variable: first in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 26

Notice: Undefined variable: lastname in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 27

Notice: Undefined variable: department in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 28

Notice: Undefined variable: position in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 29

Notice: Undefined variable: salary in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 30

Notice: Undefined variable: startdate in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 31

Notice: Undefined variable: first in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 35
successfully loaded to the database
Go back to main page


code van insert.php pagina:

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
<?php

function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
         }

// define variables and set to empty values
         $firstnameErr = $lastnameErr = $positionErr = $salaryErr = $startdateErr ="";
         $firstnamename = $lastname = $position = $salary = $startdate = "";
        
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
                  if (empty($_POST["firstname"])) {
                     $firstnameErr = "Name is required";
                  }
else {
                     $firstname = test_input($_POST["firstname"]);
                  }

                  
                  if (empty($_POST["lastname"])) {
                     $lastnameErr = "Lastname is required";
                  }
else {
                     $lastname = test_input($_POST["email"]);
                    
                  }

                  
                  if (empty($_POST["position"])) {
                     $positionErr = "Position must be filled in";
                  }

                  else {
                     $position = test_input($_POST["position"]);
                  }

                  
                  if (empty($_POST["salary"])) {
                     $salaryErr = "salary must be filled in";
                  }
else {
                     $salary = test_input($_POST["salary"]);
                  }

                  
                  if (empty($_POST["startdate"])) {
                     $startdateErr = "startdate is required";
                  }
else {
                     $startdate = test_input($_POST["startdate"]);
                  }

                  if(count ($firstnameErr, $lastnameErr, $positionErr, $salaryErr, $startdateErr) == 0) {
                    header ("Location: insert_process.php");
                    exit();    
            }
         }

        
        
?>


code van insert_proces.php pagina

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
<?php
require_once("inc/db-config.php");

if(isset($_POST['firstname'])) {
    $first = $_POST['firstname'];    
}


if(isset($_POST['lastname'])) {
    $lastname = $_POST['lastname'];    
}

if(isset($_POST['department'])) {
    $department = $_POST['department'];    
}

if(isset($_POST['position'])) {
    $position = $_POST['position'];    
}

if(isset($_POST['salary'])) {
    $salary = $_POST['salary'];    
}

if(isset($_POST['startdate'])) {
    $startdate = $_POST['startdate'];    
}


$sql = "INSERT INTO employees VALUES (
    '',
    '"
. $first . "',
    '"
. $lastname . "',
    '"
. $department . "',
    '"
. $position . "',
    '"
. $salary . "',
    '"
. $startdate . "',
    NOW()
)"
;                                     
mysql_query($sql);
echo $first . " successfully loaded to the database";
echo "<br /> Go back to <a href='inventory.php'>main page</a>";
mysql_close($connection);
?>


Wat is jullie feedback hierop?

Alvast bedankt!

Helaas krijg ik allemaal
 
PHP hulp

PHP hulp

28/03/2024 13:14:37
 
- Ariën  -
Beheerder

- Ariën -

22/06/2016 23:14:26
Quote Anchor link
Blijkbaar is er niks gepost naar insert_proces.php.
Controleer hierop met deze structuur:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    // er is ge-POST, voer hier de actie uit.
}
?>

Tevens zijn al die issets() niet nodig. Je kan prima je $_POST['...'] variabelen gebruiken in je query. Let er wel op dat je deze met mysql(i)_real_escape_string() / $mysqli->real_escape_string beveiligt tegen SQL-injection.

En foutafhandeling op je query is ook iets wat je niet moet vergeten.

Verder is gebruik van de mysql-functies afgeraden, en raad ik iedereen MySQLi of PDO aan.
Gewijzigd op 22/06/2016 23:17:35 door - Ariën -
 
Mohamed nvt

Mohamed nvt

22/06/2016 23:24:11
Quote Anchor link
- Ariën - op 22/06/2016 23:14:26:
Blijkbaar is er niks gepost naar insert_proces.php.
Controleer hierop met deze structuur:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    // er is ge-POST, voer hier de actie uit.
}
?>

Tevens zijn al die issets() niet nodig. Je kan prima je $_POST['...'] variabelen gebruiken in je query. Let er wel op dat je deze met mysql(i)_real_escape_string() / $mysqli->real_escape_string beveiligt tegen SQL-injection.

En foutafhandeling op je query is ook iets wat je niet moet vergeten.

Verder is gebruik van de mysql-functies afgeraden, en raad ik iedereen MySQLi of PDO aan.


Hoi Ariën,

Bedankt voor je reactie!
Ik heb je verbetering aangebracht, helaas werkt het nog steeds niet.
Ik dacht er zelf aan om :
if(count ($firstnameErr, $lastnameErr, $positionErr, $salaryErr, $startdateErr) == 0) {
header ("Location: insert_process.php");
exit();
}
te verplaatsen na de laatste } van(if ($_SERVER['REQUEST_METHOD'] == "POST") of heeft dit niets mee te maken?
Ook zit alle validatie tussen de { van if ($_SERVER['request_method'] == "post"), en in dreamweaver krijg ik ook geen syntax's foutmeldingen...
Verder heb je gelijk in over al de beveiliging van queries, maar zover ben ik nog niet helaas...
Gewijzigd op 22/06/2016 23:31:51 door Mohamed nvt
 
- Ariën  -
Beheerder

- Ariën -

22/06/2016 23:37:14
Quote Anchor link
count() ondersteunt geen oneindig aantal parameters voor diverse velden.

Als je wilt bijhouden welke velden niet zijn ingevuld, dan kan je dit gebruiken":

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
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    $errors = array();
    if(trim($_POST['firstname'])=="") {
         $errors[] = "Firstname is not filled in";  
    }


    if(trim($_POST['lastname'])=="") {
            $errors[] = "Lastname is not filled in";  
    }


    if(trim($_POST['department'])=="") {
        $errors[] = "Department is not filled in";
    }

    
    if(count($errors)==0) {
        // er zijn geen error gevonden, alles voldoet aan de validatie, en je kan de boel in de database plaatsen
    } else {
        // er zijn errors gevonden. Deze staan in $errors, en kan je met foreach() doorlopen.
    }

}

?>
Gewijzigd op 22/06/2016 23:37:41 door - Ariën -
 
Mohamed nvt

Mohamed nvt

24/06/2016 13:24:42
Quote Anchor link
Hallo Ariën,
Bedankt voor je feedback.

Het insert pagina heb ik aangepast naar je feedback en ziet als volgt uit:

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
<?php

function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
         }

        
        
         if ($_SERVER['REQUEST_METHOD'] == "POST") {
                      
                      $errors = array();
                      if(trim($_POST['firstname'])=="") {
                      $errors[] = "Firstname should be filled in";                                        
                                                                          
                    }

                      if(count($errors)==0) {
                        header("Location: insert_process.php");
                        exit;
                     }
else {
                              
                    foreach($errors as $foutmelding) {
                    echo $foutmelding; }
                          
                           }
                }

        
        
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
.error {
    color:#FF0000;
    
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inserting Data into Database</title>
</head>
<body>
<p><span class = "error">* required field.</span></p>
<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" >
<fieldset>
<legend>Inserting data into database</legend>
<p><label for="firstname">Firstname:</label><br /><input type="text" name="firstname" id="firstname" placeholder="Your firstname..." value="<?php if(isset($_POST['firstname'])) echo $_POST['firstname']; ?>"/>
<span class = "error">* <?php echo $foutmelding; ?></span>
</p>

En zodra ik naar dit pagina ga, dan verschijnt de volgende foutmelding:
Notice: Undefined variable: foutmelding in C:\xampp\htdocs\employees_CRUD\insert.php on line 49

Deze foutmelding vind ik vreemd, want eerder heb ik $foutmelding veriable gedefineerd...
En voor mijn gevoel lijkt het of de validatie code helemaal niet controleert of iemand op submit knop heeft gedrukt of niet...
En wanneer ik nu een naam invul in het vakje firstname, dan word ik doorverwezen, zoals het hoort, naar insert_process.php met een foutmelding als gevolg en een lege record in db.

De foutmelding op insert_process.php is hetzelfde als voorheen.

Graag je/jullie feedback
tnx!

- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 24/06/2016 14:25:19 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

24/06/2016 14:27:10
Quote Anchor link
$foutmelding bestaat alleen binnen je foreach. Dus je kan je foreach beter tussen je HTML-code plaatsen.
 
Mohamed nvt

Mohamed nvt

24/06/2016 14:28:22
Quote Anchor link
Update 1
Zodra ik naar insert.php pagina ga, dan verschijnt automatisch deze:
Foutmelding: Notice: Undefined variable: foutmelding in C:\xampp\htdocs\employees_CRUD\insert.php on line 49

Deze foutmelding heb ik nu opgelost door :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $foutmelding; ?>
te veranderen in
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if(isset($errors['firstname'])) echo $errors['firstname']; ?>


Helaas krijg ik nog steeds foutmelding op insert_process.php pagina.
Deze foutmeldingen zijn:
Notice: Undefined variable: first in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 26

Notice: Undefined variable: lastname in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 27

Notice: Undefined variable: department in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 28

Notice: Undefined variable: position in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 29

Notice: Undefined variable: salary in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 30

Notice: Undefined variable: startdate in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 31

Notice: Undefined variable: first in C:\xampp\htdocs\employees_CRUD\insert_process.php on line 35
successfully loaded to the database
Go back to main page


Insert_process.php ziet als volgt uit:
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
<?php
require_once("inc/db-config.php");

if(isset($_POST['firstname'])) {
    $first = $_POST['firstname'];    
}


if(isset($_POST['lastname'])) {
    $lastname = $_POST['lastname'];    
}

if(isset($_POST['department'])) {
    $department = $_POST['department'];    
}

if(isset($_POST['position'])) {
    $position = $_POST['position'];    
}

if(isset($_POST['salary'])) {
    $salary = $_POST['salary'];    
}

if(isset($_POST['startdate'])) {
    $startdate = $_POST['startdate'];    
}


$sql = "INSERT INTO employees VALUES (
    '',
    '"
. $first . "',
    '"
. $lastname . "',
    '"
. $department . "',
    '"
. $position . "',
    '"
. $salary . "',
    '"
. $startdate . "',
    NOW()
)"
;                                     
mysql_query($sql);
echo $first . " successfully loaded to the database";
echo "<br /> Go back to <a href='inventory.php'>main page</a>";
mysql_close($connection);
?>

Iemand een idee?
Gewijzigd op 24/06/2016 14:57:56 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/06/2016 14:54:02
Quote Anchor link
Een aantal dingen lopen nog niet helemaal lekker.

Als eerste snap ik de behoefte niet om die formulieren te verspreiden over twee verschillende .php bestanden. Het maakt het allemaal zo ingewikkeld. Hou het lekker op één pagina met de volgende structuur:

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
<?php
// deze functie kijkt of er een $_POST variabele bestaat met de opgegeven naam. Zo niet dan wordt een standaard waarde teruggegeven.
function getPostVar($name, $default = '') {
    if(isset($_POST[$name]))
        return trim($_POST[$name]);

    return $default;
}

function
validate() {
    // valideer de input en geef een array met foutmeldingen terug. Is de array leeg dan is alles okiedokie
    $errors = array();

    // i hate empty() because empty('0') returns true :-( so don't use it!
    if(strlen(trim($_POST['firstname'])) < 2) {
        $errors['firstname'] = 'Vul uw voornaam in';
    }


    // hebben we enkel karakters?
    if(!ctype_alpha(trim($_POST['firstname']))) {
        $errors['firstname'] = 'Voornaam mag enkel alfabetische letters bevatten';
    }


    // position moet een positief getal zien
    if(intval($_POST['position']) < 1) {
        $errors['position'] = 'Geef een positief getal op';
    }


    return $errors;
}



// initialisatie
$errors = array(); // een lege array voor de foutmeldingen
$firstname = getPostVar('firstname'); // zo de variabele $firstname bestaat nu ALTIJD en dat scheelt undefined variabele warnings
$position = getPostVar('position', '1'); // Geef $position standaard de waarde '1'.


// IS DEZE PAGINA AANGEROEPEN IN DE POST METHODE? START DAN MET DE VERWERKING VAN HET FORMULIER

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    // valideer het formulier
    $errors = validate();
    
    // als er geen errors zijn dan de gegevens opslaan in de database
    if(!count($errors)) {
        // HIER ALLES WAT JE MOET DOEN ZOALS OPSLAAN IN DE DATABASE OF HET VERZENDEN VAN EEN EMAIL
        mail('[email protected]', 'gegevens aangepast', 'bla bla');
        
        // stuur de gebruiker door naar een bevestigings- of bedank pagina.
        // Doe altijd een redirect zodat $_SERVER['REQUEST_METHOD'] geen 'POST' blijft!

        header('Location: bedankt.php');
        exit; // redirect en kap dit script af.
    }
}

?>

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Formulier voorbeeld</title>
</head>
<body>
    <form action method="post">
        <?php if(isset($errors['firstname'])) echo $errors['firstname']; ?>
        <input type="text" name="firstname" value="<?php echo $firstname; ?>">
        
        <?php if(isset($errors['position'])) echo $errors['position']; ?>
        <input type="number" name="position" value="<?php echo $position; ?>">
        
        <button>Opslaan</button>
        
    </form>
</body>
</html>


Ten tweede: Hou op met empty()! Een voornaam bijvoorbeeld moet meer dan één karakter bevatten en geen cijfers bevatten. gebruik functies als strlen() en ctype_alpha()
Gewijzigd op 24/06/2016 15:00:57 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

24/06/2016 14:58:47
Quote Anchor link
En verder werkt de code-tag hier met blokhaken, i.p.v. vissenhaken. Dus: [code] en [/code]
Gewijzigd op 24/06/2016 14:59:01 door - Ariën -
 
Obelix Idefix

Obelix Idefix

24/06/2016 15:40:17
Quote Anchor link
Je stuurt vanaf insert.php door met een location naar insert_process.php
Daarbij gaan, vermoed ik, de $_POST gegevens verloren.
Je controleert wel met isset of $_POST waarden bestaan en maakt nieuwe variabelen aan (waarom eigenlijk?), maar je laat het script doorlopen en dus proberen om de query uit te voeren.

Ik zie mysql_query en mysql_close staan.
Je weet dat dat verouderd is?! Stap over op mysqli (of OOP).
 
Mohamed nvt

Mohamed nvt

25/06/2016 22:20:29
Quote Anchor link
Hallo Obelix en Idefix,

Ik vermoed ook dat data verloren gaat na de form validatie, want zonder validatie werkt de form prima.
Jah ik weet dat mysql_query verouderd is, maar dat geeft nu niet. Wanneer de test applicatie werkt, dan wil ik pas overstappen.

@Frank Nietbelangrijk, Je hebt gelijk dat het praktisch is wanneer het formulier, validatie en het inserten van data in DB gaat. Ik vraag me af of deze structuur mijn probleem gaat oplossen.

Ondertussen zoek ik even verder op en hopelijk zal ik hier snel een update plaatsen.

Toevoeging op 25/06/2016 23:33:45:

Update 2

Undefined variable: en Undefined index: foutmeldingen heb ik nu opgelost door de veriable's vooraf te declareren op insert_process.php

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
<?php
require_once("inc/db-config.php");
$first ="";
$lastname ="";
$department = "";
$position = "";
$salary = "";
$startdate ="";



if (isset($_POST['firstname'])) {
$first = $_POST['firstname']; }
if (isset($_POST['lastname'])) {
$lastname = $_POST['lastname']; }

if (isset ($_POST['department'])) {
    $department = $_POST['department']; }


if(isset($_POST['position'])) {
    $position = $_POST['position']; }

if (isset($_POST['salary'])) {
$salary = $_POST['salary']; }

if (isset($_POST['startdate'])) {
$startdate = $_POST['startdate']; }

$sql = "INSERT INTO employees VALUES (
    '',
    '"
. $first . "',
    '"
. $lastname . "',
    '"
. $department . "',
    '"
. $position . "',
    '"
. $salary . "',
    '"
. $startdate . "',
    NOW()
)"
;                                     
mysql_query($sql);
echo $first . " successfully loaded to the database";
echo "<br /> Go back to <a href='inventory.php'>main page</a>";
mysql_close($connection);
?>

Ik krijg dus nu geen foutmeldingen meer, maar er wordt ook geen data opgeslagen in DB...

Iemand nog een idee...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

25/06/2016 23:53:04
Quote Anchor link
Foutafhandeling...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(mysql_query($sql)) {
    echo $first . " successfully loaded to the database";
}
else {
    echo mysql_error() . "<br>";
    echo $sql;
}

?>
Gewijzigd op 25/06/2016 23:55:00 door Frank Nietbelangrijk
 
Obelix Idefix

Obelix Idefix

26/06/2016 09:59:44
Quote Anchor link
Mohamed nvt op 25/06/2016 22:20:29:
Ik vermoed ook dat data verloren gaat na de form validatie, want zonder validatie werkt de form prima.

Welke validatie bedoel je? Waar heb je dan de insert-query? In 1 bestand?
Dan controleer je toch of die data doorkomt / verloren gaat? Want daar ligt volgens mij de oorzaak.

Mohamed nvt op 25/06/2016 22:20:29:
Jah ik weet dat mysql_query verouderd is, maar dat geeft nu niet. Wanneer de test applicatie werkt, dan wil ik pas overstappen.

Als jij graag dubbel werkt. ;-)
Lijkt me inefficient. Straks loop je weer tegen problemen aan met omzetten, kun je weer alles nalopen. Waarom niet in 1x? Maar goed. Dat is jouw keuze.

Mohamed nvt op 25/06/2016 22:20:29:
@Frank Nietbelangrijk, Je hebt gelijk dat het praktisch is wanneer het formulier, validatie en het inserten van data in DB gaat. Ik vraag me af of deze structuur mijn probleem gaat oplossen.

Dat denk ik wel. Nu raak je de informatie 'kwijt'. Door het in 1 bestand te houden, zal dat niet gebeuren.


Mohamed nvt op 25/06/2016 22:20:29:
Ik krijg dus nu geen foutmeldingen meer, maar er wordt ook geen data opgeslagen in DB...

Je lost de basis van je probleem niet op: worden de waarden doorgestuurd? Nee. Dan kun je wel allerlei variabelen aanmaken, maar daarmee los je de oorsprong van je probleem niet op.

Kies voor de oplossing van Frank.
 
Mohamed nvt

Mohamed nvt

26/06/2016 14:18:10
Quote Anchor link
Hallo Obelix en Idefix,
Met andere woorden adviseer je mij om nu al over te stappen op OOP?
Ik vind dit een beetje eng, omdat ik niet zo lang geleden beb begonnen met het leren van PHP.
En, ik ben bang dat ik alles vanaf nul moet beginnen en vanaf de scracth te werken en dit zal nog langer duren...

Het idee van Frank heb ik al een keer toegepast door form + validatie + inserten op een pagina te doen, maar dat lukte niet. Vanavond zal ik weer een update plaatsen door alles op een pagina te doen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

26/06/2016 14:24:01
Quote Anchor link
mysqli functies kun je toepassen zoals mysql. Ze hebben voor iedere functie een OOP schilletje (Object oriented style) of de normale functie aanroep (Procedural style) net als bij mysql_ functies. Kijk als voorbeeld eens naar http://php.net/manual/en/mysqli.query.php. Je ziet daar onder 'Procedural style' de "niet-oop" functie aanroep staan. Er is maar één verschil met de mysql_query functie en dat is dat je de connectie op moet geven welke je krijgt met mysqli_connect(). Niet al te moeilijk als je er even de tijd voor neemt.
 
Thomas van den Heuvel

Thomas van den Heuvel

26/06/2016 15:27:50
Quote Anchor link
Even vanaf het begin mensen.

@Obelix zat nog het dichtste bij de oorzaak van het probleem.

POST data is alleen beschikbaar op het moment dat je deze verstuurt naar de server (via POST). Wanneer je vervolgens wegnavigeert van het doel-script in de action-eigenschap van het formulier is je POST data weg. Het is dus niet zo verwonderlijk dat $_POST leeg is omdat je vanuit het doel-script redirect naar een ander script...

---

Validatie en verwerking horen wel min of meer bij elkaar, het is allebei onderdeel van de afhandeling van een formulier submit, dus ik zou deze wel bij elkaar houden.
 



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.