Strict Standards

Status
Niet open voor verdere reacties.

gast1235

Gebruiker
Lid geworden
18 mrt 2012
Berichten
35
Hallo allemaal,

De volgende php code heb ik nu maar krijg een foutmelding. Alle hulp is welkom:(

De fout melding die ik krijg :

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\web\core\init.inc.php on line 7

PHP:
<?php

session_start();

$exceptions = array('register', 'login');

$page =  substr(end(explode("/", $_SERVER['PHP_SELF'])), 0, -4);

if (in_array($page, $exceptions) === false){
	if(isset($_SESSION['gebruikersnaam']) === false){
		header('Location: login.php');
		die();
	}
}

mysql_connect('localhost', 'root', 'toor');

?>
 
Volgens mij zou dat een warning moeten zijn, niet een error. Mogelijk omdat $_server['php_self'] een constante is en geen variabele. Het maakt voor de werking niets uit.

Als je probeert:

$test = $_SERVER['PHP_SELF']
$page = substr(end(explode("/", $test)), 0, -4);
 
Dat heb ik ook al geprobeerd, maar het werkt niet krijg de zelfde foutmelding.
Trouwens de 'PHP_SELF' moet 'SCRIPT_NAME' zijn.

$exceptions = array('register', 'login');
$test = $_SERVER['SCRIPT_NAME'];
$page = substr(end(explode('/', $test)), 0, -4);

if (in_array($page, $exceptions) === false){
if(isset($_SESSION['gebruikersnaam']) === false){
header('Location: login.php');
die();
}
}
 
Wat bedoel je met uit elkaar halen ???



Dit is de volledige code die ik heb.

PHP:
<?php

session_start();

$exceptions = array('register', 'login');

$page =  substr(end(explode('/', $_SERVER['SCRIPT_NAME'])), 0, -4);

if (in_array($page, $exceptions) === false){
	if(isset($_SESSION['gebruikersnaam']) === false){
		header('Location: login.php');
		die();
	}
}

mysql_connect('localhost', 'root', 'toor');
mysql_select_db('db_gebruikers');

$path = dirname(__FILE__);

include("{$path}/inc/user.inc.php");

?>
 
PHP:
$script_name_array = explode('/', $_SERVER['SCRIPT_NAME']);
$last_bit = end($script_name_array);
$page = substr($last_bit, 0, -4);

print_r($page);
Zo bedoel ik
 
Bedankt Tha Devill het werkt!!

Sorry voor de late reactie maar ben en ook nog bezig met andere programmeer talen zoals java en xml.
 
Om het nog even compleet te maken: de 'oorzaak' was de functie "end". Zoals je op php.net kan zien, staat er een ampersand (&) voor de parameter, dit betekent dat de variabele "by reference" is. Hier kan je dus, strict gezien, geen functie in stoppen (zoals je eerst wel deed).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan