Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Variablen einer Include-Seite übergeben“

Mims

Gesperrt

Hi,

man stelle sich vor, es werden einige Variablen definiert und darunter eine Seite includet. Nun soll in der includeten Seite mit den vor dem Include definierten Variablen gearbeitet werden. Leider übergibt PHP die Variablen der zu includenden Seite nicht.

Ich habe die Suchfunktion genutzt, doch bin leider auf kein passendes Ergebniss gestoßen. Gibt´s da nicht doch eine Möglichkeit, die Variablen zu übergeben oder zumindest eine Alternativ-Lösung?

Liebe Grüße und vielen Dank
smile.gif
 

Duddle

Posting-Frequenz: 14µHz

AW: Variablen einer Include-Seite übergeben

Dann machst du etwas falsch:

a.php
PHP:
<?php
echo "Ich bin a und definiere Variable \$x <br>";
$x = 42;
include("b.php");
?>

b.php
PHP:
<?php
echo "Ich bin b und nutze Variable \$x = $x<br>";
?>

Ausgabe:
Code:
Ich bin a und definiere Variable $x
Ich bin b und nutze Variable $x = 42


Duddle
 

mwxx

Nicht mehr ganz neu hier

AW: Variablen einer Include-Seite übergeben

Ich kann Duddle nur zustimmen, denn ein include bettet an der Aufrufstelle den includeten Code physikalisch ein, es muss also gehen.

Hast Du vielleicht im includeten Skript eine Funktion definiert, die intern die Variable nutzt, ohne diese zu übergeben (Variablen sind nicht automatisch global!) ?
 

Chriss1987

me.drinkCoffee();

AW: Variablen einer Include-Seite übergeben

Hi,

vielleicht kannst du uns einen Code-Auschnitt posten, das macht die Sache für uns einfacher! ;)
Wie versuchst du denn, auf die Variablen zuzugreifen? Nutzt du, wie Duddle schon zeigte, die Variablen direkt, oder versuchst du es über die superglobalen Variablen $_REQUEST, $_GET usw.?

Natürlich kann es auch so sein, wie mwxx schrieb, dass du eine Funktion definierst?! Wie du siehst, ist das ganze ohne Source nur ein rumgerate und soweit ich weiß, warten einige User hier noch auf ihre GK Visio 3000, der Händler hat lieferschwierigkeiten... ;)

Schöne Grüße aus dem Sauerland!
Chriss
 

Milly

Nicht mehr ganz neu hier

AW: Variablen einer Include-Seite übergeben

Eine includierte Datei wird dem Quellcode eingefügt und erst dann wird alles vom Server bearbeitet. Es ist genauso als ob von Anfang an alles in einer Datei stehen würde.
Variablen und dergl. müssen funktionieren! Hast du Groß/Keinschreibung beachtet?

Grüße
Milly
 

Mims

Gesperrt

AW: Variablen einer Include-Seite übergeben

Hallo und danke für die Antworten.

Folgendes:
Ich habe eine index.php-Datei, durch die alle Unterseiten aufgerufen werden. Der Aufruf einer Seite würde dann etwa so aussehen:
index.php?op=SITENAME .
In der index.php stehen nun einige Include-Befehle von Dateien, in denen sich Variablen befinden, die die Seiten, die später je nach op=SITENAME includet werden, benötigen.
Im Großen und Ganzen heisst das also, in der index.php stehen Variablen, die an eine Include-Datei weitergegeben werden sollten (was nicht funktioniert).

Code:
/* Index.php */
include 'current_variables.php';
//und darunter kommt der Include-Befehl der Seite
include 'seite.php';
An die Seite.php, sollen nun alle Variablen, aus der current_variables.php übergeben werden.

Ich hoffe ich habe mein Problem konkretisiert.
Vielen Dank.

Liebe Grüße :)
 

Duddle

Posting-Frequenz: 14µHz

AW: Variablen einer Include-Seite übergeben

Auch das funktioniert exakt wie mein voriges Beispiel. Es muss funktionieren, weil wie schon o.g. ein include lediglich bewirkt, dass der Code der Datei 1-zu-1 in das Script kopiert wird.

Du schreibst einmal Seite.php und einmal seite.php. Beachte, dass Groß- und Kleinschreibung wichtig sind.

Sonst kann man dir ohne Fehlermeldungen oder eigene Debugmeldungen nichts mehr raten.


Duddle
 

Chriss1987

me.drinkCoffee();

AW: Variablen einer Include-Seite übergeben

Hi,

ich habe mal ein kleines Beispiel zusammengestellt, dass zeigen soll, wie man auf Variablen zugreifen kann, wenn sie in Scripten definiert wurden, die per 'include' eingebunden werden:

PHP:
<?php

// --- index.php
$avsites = array();
$avsites['home'] = 'Startseite';
$avsites['contact'] = 'Kontakt';
$avsites['details'] = 'Details';

// --- prüfen, ob Seite aufgerufen wurde
$site = (isset($_GET['site']) && array_key_exists(strtolower(trim($_GET['site'])), $avsites) ? strtolower(trim($_GET['site'])) : 'home');

// --- Navigation einbinden
include 'navi.php';

// --- Inhalt einbinden
include 'content.php';

// --- hier wird auf eine Variable der content.php zugegriffen
echo $content;

?>
PHP:
<?php

// --- navi.php
// --- Direktaufruf verhindern
if(!isset($avsites) || !isset($site))
    exit;

$navi = '<ul>';
// --- hier wird auf Variablen der index.php zugegriffen ($avsites und $site)
foreach($avsites AS $link => $title)
    $navi .= '<li'.($site == $link ? ' class="active"' : '').'><a href="?site='.$link.'">'.$title.'</a></li>';
$navi .= '</ul>';

?>
PHP:
<?php

// --- content.php
// --- Direktaufruf verhindern
if(!isset($site) || !isset($navi))
    exit;

// --- hier wird auch auf Variablen der index.php zugregriffen ($site)
$content = '<div id="content">'.(file_exists('content/'.$site.'.txt') ? file_get_contents('content/'.$site.'.txt') : 'Fehler!').'</div>';

// --- weiterhin wird hier auf eine Variable der navi.php zugegriffen, die verfügbar ist, obwohl die navi.php nicht in der content.php eingebunden wurde,
// --- dafür wure die navi.php jedoch vor der content.php in der index.php eingebunden, somit sind auch Variablen aus der navi.php hier verfügbar.
$content = $navi.$content;

?>
So sollte das alles funktionieren. Du kannst ja mal den Code von der current_variables.php und von der site.php posten und uns Zeigen, wie du auf die Variablen zugreifst.

Schöne Grüße aus dem Sauerland!
Chriss
 

Mims

Gesperrt

AW: Variablen einer Include-Seite übergeben

Hi und einen guten Mittag,

leider kann ich keine Fehlermeldungen aufzählen, da keine angegeben ist. Es macht sich nur in sofern bemerkbar, dass die Variablen die in der Include-Seite als Platzhalter dienen, nicht angezeigt werden.
Im Grunde sind es viele Include-Befehle, bei denen ich jedoch kein Problem sehe.
Es ist also wie beschrieben so, dass in der index.php vor dem Include-Befehl der seite.php, manche Variablen includet werden. Soweit so gut. Nun, in der seite.php wird die Datei header.php includet, die mit den Variablen, die in der index.php includet werden, arbeiten soll. Wenn ich jetzt jedoch alternativ den Include-Befehl der header.php austrage und stattdessen den Inhalt der header.php in die seite.php eintrage, ist alles wunderbar.
Es scheitert also am letzten Include-Befehl.
Code:
/* index.php */
include 'current_variables.php';
//und darunter kommt der Include-Befehl der Seite
include 'seite.php';
Code:
//seite.php
include('header.php');

//weiterer Content

Schätze so oft wie ich jetzt das Wort "include" benutzt habe, wird mein Absatz nicht leicht verständlich sein. Ich hoffe dennoch, ihr könnt meine Aussage nachvollziehen.

Liebe Grüße
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: Variablen einer Include-Seite übergeben

Hi,

also bei mir funktioniert es, wenn Variablen über verschiedene Ebenen includiert werden. Als Beispiel:
PHP:
<?php

if(!isset($count))
    $count = 0;
    
if(!isset($subcount))
    $subcount = 98;

if($count < 98)
{
    $count++;
    for($i = 0; $i < $count; $i++)
        echo " ";
    echo 'Ebene: ' . $count . "\r\n";
    ${'test'.$count} = $count;
    include 'inctest.php';
    $subcount--;
}

for($i = 0; $i < $subcount; $i++)
    echo " ";
echo 'Ebene: ' . $subcount . ': ' . ${'test'.$count} . "\r\n";

?>
Macht nichts anderes als sich selbst zu includen und einen Zähler weiterzählen. Am Ende werden über alle Ebenen die zu letzt definierte Variable in Schicht 99 (bei mir gehts bis max. 100) ausgegeben. Selbst im Mainscript, also Ebene 0 wird die erzeugte Variable '$test98' ausgegeben.

Mir scheint, als läge dein Fehler wo anders. Schalte zur Kontrolle den Error-Level auf E_ALL, vielleicht wird ja doch ein Hinweis ausgegeben!

Schöne Grüße aus dem Sauerland!
Chriss
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Variablen einer Include-Seite übergeben

Das Debuggen von 3 mikrigen Dateien ist doch ein Kinderspiel. Wirf Statusmeldungen vor und hinter jede relevante Stelle im Code und verfolge einfach, wo er von deinen Erwartungen abweicht. Fertig.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben