Hallo.

Ik wil in een php pagina een include doen van een andere php pagina. De pagina welke ge-include wordt moet een naam op het scherm tonen welke als variable in de eerste php pagina aangegeven wordt. Ik heb de volgende code

//Home.php

<?php
$PageName="This is the Home page";
include 'Showheader.php';

?>

// Showheader.php
<?Php

$DisplayPageTitle=$_GET['PageName'];
if($DisplayPageTitle == "")
{
$DisplayPageTitle= "Nothing found";
}

?>



<div>
<?php echo $DisplayPageTitle ?>
</div>

//End

Ik krijg dus constant Nothing found" op mijn scherm. Hoe kan ik deze code werkend krijgen?


<?
# Verander
include 'Showheader.php';

# Naar
include 'Showheader.php?PageName=' . $PageName;

?>
@Lapidi: Dat werkt niet zo.

@Sydo: Je bent op de goede weg.

<?php
$PageName="This is the Home page";
include 'Showheader.php';
?>

Niet moeilijk doen. Gewoon echo.

<?Php
echo $PageName; // of wat je er mee wil doen.
?>
Hehe, ben een tijdje niet meer wezen php'en :')

Je kan variabelen gewoon doorgeven aan includes, maar zorg wel (uit veiligheidsredenen) dat je ze controleert.
@Lapidi, Inderdaad werkt niet
@SanThe, Pffffff, damn wat simpel. Ik dacht dat ik nog een Get moest doen maar niet dus. Werkt super. Bedankt.

Topic mag gesloten worden
Een topic wordt niet gesloten omdat er misschien nog andere php-ers iets van kunnen leren. Het verdwijnt vanzelf uit de toplist.
Een include neemt gewoon alle variabelen over. En sowieso zijn GET en POST vars altijd global dus overal te gebruiken, ze heten niet voor niets superglobals. En Lapidi, geen onzin kwatsen dus ;)
Het zijn geen superglobals, superglobals is iets heel oud, en als je nog steeds werkt met super globals ben je fout bezig.
Danny, ik denk dat je ze verward hebt met register_globals :)

Wanneer je register_globals aan had staan, kwamen alle waarden uit $_REQUEST terecht in de global scope als normale variabelen. Met als gevolg dat je gevaar liep wanneer je niet je variabelen altijd declareerde.

Superglobals zijn $_GET, $_POST, $_REQUEST, $_COOKIE, $_SESSION (na session_start), $_SERVER, $_ENV en $GLOBALS uit m'n hoofd, er zouden nog meer kunnen zijn. Dezen zijn altijd in je script overal, binnen iedere functie, method of include binnen hetzelfde proces op te vragen.
Jelmer schreef op 31.01.2009 14:19
Danny, ik denk dat je ze verward hebt met register_globals :)

Wanneer je register_globals aan had staan, kwamen alle waarden uit $_REQUEST terecht in de global scope als normale variabelen. Met als gevolg dat je gevaar liep wanneer je niet je variabelen altijd declareerde.

Superglobals zijn $_GET, $_POST, $_REQUEST, $_COOKIE, $_SESSION (na session_start), $_SERVER, $_ENV en $GLOBALS uit m'n hoofd, er zouden nog meer kunnen zijn. Dezen zijn altijd in je script overal, binnen iedere functie, method of include binnen hetzelfde proces op te vragen.


Bedankt!

Oh je vergeet dat bij een include waar gewoon plain PHP in staat, je locale variabelen worden doorgegeven. Dus dit werkt gewoon:

<?php
$var = 'waf';
include ('echo_var.php');
?>
// echo_var.php
<?php echo $var; ?>

Reageren