<?php
session_start();
ini_set('display_errors',1); // 1 == on , 0 == off
error_reporting(E_ALL | E_STRICT);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//Hier checks op de invoer
if (count($_SESSION['error']) == 0) {
try {
require_once ('data/link.php');
$sql = "UPDATE members SET auth=:auth, period=:period WHERE id = :id";
$stmt = $db->prepare($sql);
$stmt->execute(array(
':id' => $_SESSION['id'],
':auth' => $_POST['auth'],
':period' => $_POST['period']
));
if($stmt->rowCount() == 0) {
throw new PDOException('Er zijn geen rijen gewijzigd in de UPDATE query.');
}
}
catch(PDOException $e) {
echo 'Foutmelding: '.$e->getMessage().' op regel '.$e->getLine();
header ('Refresh: 2; url=nieuwe-aanmelding.php');
exit();
}
}
}
try {
require_once ('data/link.php');
$sql = "SELECT id, firstname, lastname, username, email, randomcode FROM members WHERE randomcode=:randomcode";
$stmt = $db->prepare($sql);
$stmt->execute(array(
':randomcode' => $_GET['key']
));
sleep(1);
//Get the results from the database and close the connection
$result = $stmt->fetchAll();
if (count($result) == 1) {
$_SESSION['id'] = $result[0]['id'];
$_SESSION['firstname'] = $result[0]['firstname'];
$_SESSION['lastname'] = $result[0]['lastname'];
$_SESSION['username'] = $result[0]['username'];
$_SESSION['email'] = $result[0]['email'];
$_SESSION['randomcode'] = $result[0]['randomcode'];
}
else {
echo 'Geen resultaat gevonden.';
exit;
}
}
catch(PDOException $e) {
echo 'Foutmelding: '.$e->getMessage().' op regel '.$e->getLine();
}
?>
Het belangrijke deel uit het Postformulier in html is als volgt:
<tr>
<td><label for="firstname">Voornaam:</label></td>
<td><input type="text" name="firstname" value="<?php echo isset($_SESSION['firstname']) ? htmlspecialchars($_SESSION['firstname']) : '' ?>"/></td>
</tr>
<tr>
<td><label for="lastname">Achternaam:</label></td>
<td><input type="text" name="lastname" value="<?php echo isset($_SESSION['lastname']) ? htmlspecialchars($_SESSION['lastname']) : '' ?>"/>
</tr>
<tr>
<td><label for="email">Emailadres: </label></td>
<td><input type="text" name="email" value="<?php echo isset($_SESSION['email']) ? htmlspecialchars($_SESSION['email']) : '' ?>"/></td>
</tr>
<tr><td><input type="text" name="check" id="check" /></td></tr>
<tr>
<td><label for="authorisatie">Authorisatie: </label></td>
<td><input type="radio" name="auth" value="1" />Ja
<input type="radio" name="auth" value="0" />Nee
<tr>
<tr>
<td><label for="periode">Geldigheidsduur: </label></td>
<td><input type="radio" name="period" value="1" />Oneindig
<input type="radio" name="period" value="0" />Eén week;
<tr>
<td> </td>
<td><input type="submit" value="Verstuur" id="button"/>
<input type="reset" value="Wissen" id="button" /></td>
</tr>
Ik krijg wel contact met de database, want de gevraagde id wordt opgehaald.
Maar ik krijg steeds de melding dat er geen rijen gewijzigd worden, terwijl ik wel andere waarde invoer.
Ik heb geen idee meer wat ik fout doe.