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>
Je mag geen output zoals HTML voor je header() en session_start() gebruiken. Als je de error_reporting aanzet, dan word je er voor gewaarschuwd.
- Ariën - op 22/02/2023 12:18:42

Je mag geen output zoals HTML voor je header() en session_start() gebruiken. Als je de error_reporting aanzet, dan word je er voor gewaarschuwd.


Kun je mij uitleggen hoe je dat bedoeld?
Je mag voor die functies absoluut geen HTML gebruiken.
Maar dan laat hij de css script niet

[size=xsmall]Toevoeging op 22/02/2023 12:28:47:[/size]

Heb het nu zo gedaan dan, is dat dan wel okay?


<?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;
?>
<html>
	<head>
		<title>Sexy Devil</title>
		<link href="inc/div.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
<?php

	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>
Dit klopt prima!
Eerst moet je de sessie initialiseren met session_start(), dan kijken of er doorgestuurd moet worden. En dan komt de HTML.

En nu je toch bezig bent met ontwikkelen, zet je error_reporting aan!!
- Ariën - op 22/02/2023 12:29:20

Dat kan prima daarna!
Eerst moet je de sessie initialiseren met session_start(), dan kijken of er doorgestuurd moet worden. En dan komt de HTML.


Gedaan, maar script werkt nog niet.
Als ik een verificatie doe met het jaar 2016, waardoor ik dus te jong ben, zou hij mij naar de site van disney moeten sturen, maar dat doe hij niet eens.
Error_reporting op E_ALL gezet en display_errors op 1?
Nee, dat niet.
ga ik nu eens doen.

[size=xsmall]Toevoeging op 22/02/2023 12:44:04:[/size]

Het werkt, nu nog alles goed zetten en de css aanpassen.
thanks voor de hulp
Graag gedaan :-)
En kijk ook eens naar de datetime functies van php

https://www.php.net/manual/en/datetime.diff.php

Een datum omrekenen naar het aantal seconden sinds (of vóór) 1970 en dat vergelijken met het aantal seconden dat we NU voorbij 1970 zijn.
En dan dat vergelijken met een enorm getal (18 * 365 * 24 *60 * 60 ?)

Lijkt me wat onoverzichtelijk en tegennatuurlijk.

btw: niet alles op disneyplus is geschikt voor tere kinderzieltjes.

Reageren