Hallo,

Ik ben bezig met een verificatie script, echter krijg ik geen results.
Ik kan de fout niet vinden en ik vroeg me af of ik ergens een fout heb gemaakt of is er een ander probleem waardoor ik geen results krijg.

Ik zal de code even plakken, is een korte code, maar op een of andere manier werkt het niet.

<html>
	<head>
		<title>Sexy Devil</title>
		<link href="inc/div.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>

<?php

	session_start();
	error_reporting(0);
	
	if(isset($_SESSION['over18']))
	{
		header('location: index.php');
	}
	if(isset($_SESSION['under18']))
	{
		header('location: https://www.disneyplus.com/');
	}
	
	if(isset($_SESSION['submit']))
		{
			$day = $_POST['day'];
			$month = $_POST['month'];
			$year = $_POST['year'];
			
			$birthday = mktime(0,0,0,$month,$day,$year);
			$difference = time() - $birthday;
			
			$age = floor($difference / 31556926);
			
			if($age >= 18)
			{
				$_SESSION['over18'] = 1;
				header('location: index.php');
			}else{
				$_SESSION['under18'] = 0;
				header('location: https://www.disneyplus.com/');
			}
		}
	echo $age;
	echo
		"
		<div class='container'>
			<form id='contact' action='confirm.age.php' method='POST'>
				<fieldset>
					<input placeholder='Day' type='number' name='day' value='00' tabindex='1' autofocus>
					<input placeholder='Month' type='number' name='month' value='00' tabindex='1' autofocus>
					<input placeholder='Year' type='number' name='year' value='0000' tabindex='1' autofocus>
				</fielfdset>
				<input type='submit' value='Verify' name='submit'>
			</form>
		</div>
		";
?>
	</body>
</html>
Uiteraard het beste.
Ivo P op 23/02/2023 11:27:38

if($_SERVER['REQUEST_METHOD'] === 'POST') {
}


@SanThe ... altijd grappig hoe jij 'ineens' weer uit het niets verschijnt :-) Winterslaap gehouden? :-D
- SanThe - op 23/02/2023 12:21:38

Uiteraard het beste.
[quote="Ivo P op 23/02/2023 11:27:38"]
if($_SERVER['REQUEST_METHOD'] === 'POST') {
}



[/quote]

Dit lijkt me een goede oplossing, straks eens proberen toe te passen.

Dat geeft in ieder geval al duidelijk aan dat er een gecontroleerd wordt of er ge-POST is.
Die techniek pas ik al jaren toe. Isset() voor een controle of er wat verstuurd is kan ook, maar is niet echt correct.
Volgens mij is dat al gezegd, maar de manier waarop jij de leeftijd uitgerekend vind ik best omslachtig.
Zou eerder iets doen als

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
	$birthday = new DateTime($_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day']);
	$today = new DateTime('today');
	$age = $birthday->diff($today)->y;
   
	echo $age;
}
?>
Michael - op 23/02/2023 16:32:34

Volgens mij is dat al gezegd, maar de manier waarop jij de leeftijd uitgerekend vind ik best omslachtig.
Zou eerder iets doen als

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
	$birthday = new DateTime($_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day']);
	$today = new DateTime('today');
	$age = $birthday->diff($today)->y;
   
	echo $age;
}
?>



Ja ik zag de code van iemand op youtube en deze overgeschreven, werkte wel als losse page, maar zodra ik heb wil toepassen als een include, werdt het verhaal anders.

Born : https://www.youtube.com/@abell12
Links : https://www.youtube.com/watch?v=Gb6PjXAY5a8&list=PLF72E8A5A53766BE6


Includeren is geen rocketscience, hoor. :-)

Maar als je een grote site hebt, is het zeker geen slecht idee om alle op te vragen pagina's in de index.php te includeren, aan de hand van $_GET. (index.php?pagina=contact)

In dit geval zou je eenmalig een check kunnen gebruiken.
In plaats van 3 HTTP POST variabelen voor een datum kan je er ook 1 gebruiken met <input type="date">, daarmee voorkom je ongeldige invoer (tenzij iemand echt moeite doet) en heb je er ook meteen een date picker bij met de locale van de browser.
Is het inmiddels al gelukt? Waar loop je anders tegenaan? Welke foutmeldingen?
Nee het lukt wel, maar ik krijg nu dit als ik de pagina refresh.

ERR_TOO_MANY_REDIRECTS

Reageren