Ik heb een formulier waar een php validatie opzit (dus als je nix invult dan krijg je in het rood te zien dat je de velden gebruikersnaam en wachtwoord in moet vullen).
Maar als je wel een gebruikersnaam en wachtwoord invult dan is het de bedoeling dat inloggen.php wordt uitgevoerd (het controleren van de gebruikersnaam en wachtwoord in de database).
En het laatste werkt niet.
Ik krijg dan de foutmelding:
Notice: Undefined index: gebruikersnaam in C:\xampp\htdocs\website\inloggen.php on line 8
Notice: Undefined index: wachtwoord in C:\xampp\htdocs\website\inloggen.php on line 9
in het formulier bij action staat nu:
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"> ik heb bij action inloggen.php gezet maar dan werkt de validatie niet als de velden leeg zijn.
mijn vraag is: Hoe moet ik inloggen.php uitvoeren als er in de velden gebruikersnaam en wachtwoord wel iets ingevuld is? en als de velden gebruikersnaam en wachtwoord leeg zijn dat dan de rode tekst komt dat de velden ingevoerd moeten worden als op de knop wordt geklikt.
alvast bedankt
index.php
<?php
$nameErr = $wwErr = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$valid = true;
if (empty($_POST["gebruikersnaam"])) {
$nameErr = "Gebruikersnaam is verplicht";
$valid = false;
}
if (empty($_POST["wachtwoord"])) {
$wwErr = "Wachtwoord is verplicht";
$valid = false;
}
if($valid){
$username = mysqli_real_escape_string ($conn, $_POST ['gebruikersnaam']);
$password = mysqli_real_escape_string ($conn, $_POST ['wachtwoord']);
header('Location: inloggen.php');
exit();
}
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Beheer</title>
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body>
<?php
//include 'includes/header.php';
?>
<header>
<img src="images/logo_wit.png" width="200" alt="logo"/>
</header>
<div id="main_container">
<div id="inloggen">
<p><span class="error">* verplicht veld</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
Gebruikersnaam: <input type="text" name="gebruikersnaam" /><span class="error">* <?php echo $nameErr;?></span><br /><br />
Wachtwoord: <input type="password" name="wachtwoord" /><span class="error">* <?php echo $wwErr;?></span><br /><br />
<input type="submit" name="submit" value="Inloggen" />
</form>
</div>
</div>
</body>
</html>
inloggen.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include 'connect.php';
session_start();
$username = mysqli_real_escape_string ($conn, $_POST ['gebruikersnaam']);
$password = mysqli_real_escape_string ($conn, $_POST ['wachtwoord']);
$query = ("SELECT naam, wachtwoord FROM leden WHERE naam= ? AND wachtwoord= ? LIMIT 1 ");
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $username, $password );
$stmt->execute();
$stmt->bind_result($username, $password);
$stmt->store_result();
if($stmt->num_rows > 0) {
while($stmt->fetch()) {
$_SESSION ['gebruikersnaam'] = $username;
header('Location: dashboard.php');
}
}
else {
echo "<h3>incorrect wachtwoord of gebruikersnaam, voer opnieuw in <a href='index.php'>Klik hier</a></h3>";
die ();//als je niks intypt en je klikt toch op de knop login dan krijg je deze melding
}
?>