Ik kom er maar niet achter wat hier fout gaat.

<?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&nbsp;
						<input type="radio" name="auth" value="0" />Nee&nbsp;
					<tr>
					<tr>
						<td><label for="periode">Geldigheidsduur: </label></td>
						<td><input type="radio" name="period" value="1" />Oneindig&nbsp;
						<input type="radio" name="period" value="0" />Eén week;
					<tr>
						<td>&nbsp;</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.
Ja, ik snap wel wat je bedoelt, maar voor dat kasteeltje op de Laan van Meerdervoort ben ik nog aan het sparen. Waarmee ik zeggen wil, ik kom wel steeds verder (met jullie hulp), maar er is nog veel te wensen.
Ik heb nogal eens pogingen gedaan om met OOP te gaan werken, maar ik blijf dat erg moeilijk vinden. Het lijkt mij wel de beste weg om alles klaar te zetten, voordat ik iets uitvoer.
Maar.. Dit zou toch ook moeten kunnen in een script als hierboven, maar ik weet niet hoe. Weet je toevallig een 'tutorial voor Dummy´s' gericht op dit onderwerp?

Reageren