Ik blijf echt dezelfde error krijgen zoals de titel al zegt ( Undifined index ).
Hoe zou ik dit op kunnen lossen?
Ik heb al geprobeerd de pagina's die ik include weg te laten, scripts weg te laten etc etc.

Error:
Notice: Undefined index: test in /var/www/vhosts/brandofart.com/httpdocs/cms/upload.php on line 56

Code:

<?php
	session_start();
	ini_set('display_errors', 1);
	error_reporting(E_ALL);
	require("require/dbconnect.php");
	
	if(!isset($_COOKIE["email"]))
	{
		header("Location: ../account.php");
	}	
	if(isset($_COOKIE["email"]) && $_SESSION["functie"] != 1)
		{
			header("Location: ../loggedin.php");
		}
	$test = $_COOKIE["email"];

	require("require/logout.php");

?>
<html>
	<head>
		<?php
			include ("navigationcmshead.php");
		?>
	</head>
	<body>
	<div id="fullscreen3">
		<?php
			include ("navigationcmsbody.php");
		?>
		
		<div id="textform2">
			
			<div id="uploadartimage">
				<div id="aachen">
					Upload Art
				</div>
				<div id="aachenS">
				Admin
				</div>
			</div>
			<div id="backbutton">
				<a href="admin.php"><img src="images/cms/upload/back.png"></a>
			</div>
			<div id="uploadImages">
				d
			</div>
			<div id="uploadImagePreview">
				d
			</div>
			<div id="uploadArtInformation">
				<form>
					<input type="checkbox" name="test" value="test">
					<input type="submit" value="submit">
					<?php
						echo $_POST ['test'];
					?>
				</form>
			</div>	
			
		<script type="text/javascript">
		  function onFocusWachtwoord(id)
		  {
			   id.type="password";
			   id.value="";
		  }		  
		  function onFocusHerhaalWachtwoord(id)
		  {
			   id.type="password";
			   id.value="";
		  }
		  
		  function blurFunction(id, informationToFill)
		  {
			if (id.value == '')
			{
				id.value = informationToFill;
				
				if((informationToFill == 'Wachtwoord') || (informationToFill == 'Herhaal wachtwoord'))
				{
					id.type="text";
				}
			}
		  }
		 </script>
		</div>
	</div>
	</body>
</html>
Als je dit stukje weghaalt, is de foutmelding ook weg:

<?php
echo $_POST ['test'];
?>
Dat lost het op ja, maar dan begrijpt de poster nog niet wat er gebeurt.

$_POST bevat alle gegevens die vanuit een form via de POST methode naar een server zijn gestuurd. De eerste keer dat je een pagina oproept is er echter geen POST request en is $_POST dus leeg. $_POST['test'] bestaat dan dus niet. Als je in je form op de submit klikt, dan pas worden de waardes via het POST request verstuurd naar de server en zal je $_POST['test'] kunnen gebruiken.

Goede oplossing:
Test (altijd!) voor je een $_POST of $_GET waarde wilt gebruiken of die wel bestaat. Dit kan bijvoorbeeld met de functie [php]isset[/php] (klik op de link om te zien hoe je het moet gebruiken).
Daarnaast is het ook altijd handig om daarvoor zelfs nog te controleren of er wel een POST request is gedaan, doe dat met een check als dit:
<?php
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ){

}
?>
Maar als ik de checkbox aanvink en dan op submit druk dan krijg ik nogsteeds de error?
(dit is nog zonder die if request method code)
<?php
if(isset($_POST['test'])) echo $_POST['test'];
?>
- Marco - op 05/02/2013 14:43:06

Maar als ik de checkbox aanvink en dan op submit druk dan krijg ik nogsteeds de error?
(dit is nog zonder die if request method code)

Je geeft in je form geen method aan, dus dan kan het ook zo zijn dat alles in $_GET terecht komt.

Erwin H op 05/02/2013 15:36:33

Je geeft in je form geen method aan, dus dan kan het ook zo zijn dat alles in $_GET terecht komt.


Dan is het altijd een $_GET.
- SanThe - op 05/02/2013 15:51:13

[quote="Erwin H op 05/02/2013 15:36:33"]
Je geeft in je form geen method aan, dus dan kan het ook zo zijn dat alles in $_GET terecht komt.


Dan is het altijd een $_GET.
[/quote]
:-O
Ik kan nooit onthouden wat nu de default is, vandaar ;-)

Gewoon altijd defineren dus!

[size=xsmall]Toevoeging op 05/02/2013 19:38:11:[/size]

Gewoon altijd definieren dus!

Reageren