Ik wil een parameter meegeven aan een pagina, bijvoorbeeld, test.php?id=winter
If lees de variabele uit met $seizoen = $_GET[“id”]; hoe kan ik de $seizoen overal, functies etc. Beschikbaar houden? Wellicht een domme vraag. Maar ik ben benieuwd.
De variabele is net als alle andere variabelen beschikbaar zolang het script uitgevoerd/actief is.

Wat makkelijk verifieerbaar is door de variabele overal te gebruiken.
Ik ga het gewoon even testen dan. Ik dacht dat wellicht moet je een variabele als globaal defenieren om hem overal te hebben.
Jan te Pas op 19/08/2017 10:35:31

Ik dacht dat wellicht moet je een variabele als globaal defenieren om hem overal te hebben.


Daarom moet je het ook niet kopiëren. De nieuwe variabele $seizoen heeft global nodig in functies, maar $_GET[“id”] is overal bekend.
Dank voor de hulp. Ik moet het gewoon gaan proberen.
Als je niet in elke functie
global $seizoen;
wilt doen kun je evt. nog overwegen om een functie aan te maken (die je dus overal 'zomaar' aan kunt roepen):

function seizoen(){
  return $_GET["id"];
  //of: return array_key_exists("id",$_GET) ? $_GET["id"] : null; //check eerst of parameter wel bestaat, anders null
  //of (PHP 7): return $_GET["id"] ?? null; //dito, maar nu ingebouwd in PHP
}
Ik heb de volgende code gemaakt om te testen. Wat gaat er fout:
Als ik de eerste keer de aanroep doe, dan wordt om een wachtwoord gevraagd, vervolgens wordt de parameter niet goed opgenomen
Als ik ingelogd ben geweest, er staat dan een cookie, dan wordt wel de parameter gebruikt.

<?
// Test tips calender voor insiders
// test met seizoenstips.php?id=winter
//dan krijg je tips van het desbetreffende seizoen
//

//Use this only if you want to password protect your tips.
$password="2017-tips"; 

/*
*/

// Initialize variables
$password_hash=md5($password);
$error="";
$success="";
$display_message="";
$file_ext=array();
$password_form="";

// If a password is set, they must login to view tips
If($password) {
	//Verify the credentials.
	If($_POST['verify_password']==true) {
		If(md5($_POST['check_password'])==$password_hash) {
			setcookie("vakUploader",$password_hash);
			sleep(1); //seems to help some people.
			header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
			exit;
		}
	}

	//Show the authentication form
	If($_COOKIE['vakUploader']!=$password_hash) {
		$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
		$password_form.="\r<br>\n";
		$password_form.="<table align=\"center\" class=\"table\">\n";
		$password_form.="<tr>\n";
		$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Login, voor seizoenstips</td>\n";
		$password_form.="</tr>\n";
		$password_form.="<tr>\n";
		$password_form.="<td width=\"95%\" class=\"table_body\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wachtwoord   :   <input type=\"password\" name=\"check_password\" /></td>\n";
		$password_form.="</tr>\n";
		$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
		$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
		$password_form.="<input type=\"submit\" value=\"  Login  \" />\n";
		$password_form.="</td>\n";
		$password_form.="</tr>\n";
		$password_form.="</table>\n";
		$password_form.="</form>\n";
	}
	
} // If Password

// Dont allow submit if $password_form has been populated
If(($_POST['submit']==true) AND ($password_form=="")) {
	//inlezen parameter vanuit aanroep seizoentips.php?id=.  	//
		$seizoen = ($_GET['id']);
	//
	//alles naar undercast zetten
	if ($seizoen !=="") {
	   $seizoen = strtolower($seizoen);
	}
	// dan nu kijken wat ingevuld is...
	if ($seizoen == "lente") {
	    include'lente.txt';
	} else {
	    if ($seizoen == "zomer") {
	        include'zomer.txt';
	    } else 
	        if ($seizoen == "herfst") {
	           include'herfst.txt';
	        } else { 
	           if ($seizoen == "winter") {
	              include'winter.txt';
	           } else {
	              include'niets.txt';
	           }
	        }
	     }

	}

If($password_form) {
	
	Echo $password_form;
}else {
	//<!-- htmltest; --> 
		//inlezen parameter vanuit aanroep seizoentips.php?id=.  	//
	$seizoen = ($_GET['id']);
	//
	//alles naar undercast zetten
	if ($seizoen !=="") {
	   $seizoen = strtolower($seizoen);
	}
	// dan nu kijken wat ingevuld is...
	if ($seizoen == "lente") {
	    include'lente.txt';
	} else {
	    if ($seizoen == "zomer") {
	        include'zomer.txt';
	    } else 
	        if ($seizoen == "herfst") {
	           include'herfst.txt';
	        } else { 
	           if ($seizoen == "winter") {
	              include'winter.txt';
	           } else {
	              include'niets.txt';
	           }
	        }
	     }
	//?<php
}
?>



Een test staat op vakantie.pe.hu/seizoen.php?id=zomer
wachtwoord=2017-tips
Als je deze pagina oproept met parameter en je moet inloggen, dan gaat er iets niet goed
zou ik dit met de function kunnen afvangen?

Als vast dank!
Waar zou $_POST['submit'] vandaan moeten komen? Zit namelijk niet in het formulier.
In het formulier zit wel een <input type="submit".. Ik wil zeker zijn
Je kan ook prima een elseif of een [php]switch[/php] gebruiken om te kijken wat $seizoen voor waarde is.
Nu heb je een onleesbare brei aan if-else statements.

Verder is md5() ook meer echt van de tijd voor het hashen van wachtwoorden. Gebruik liever password_hash en password_verify.
Hi Ariën, goede tip. Ga ik doen. Maar het haalt probleem nog niet weg..

Reageren