variablen zwischen zwei php files übergeben?

Code:
 array(0) { }
wenn ich es in die datei 1_de.php einbinde.
Code:
 array(2) { ["lang"]=>  string(2) "de" ["cat"]=>  string(1) "1" }
wenn ich es in die datei main.php einbinde.
 
Hallo,

ElGrAnDiOs hat gesagt.:
ja aber ich definiere die variable nicht in der inkludierten datei sondern in main.php, also in der datei, wo inkludiert wird...
Deswegen habe ich ja auch „in der inkludierenden Datei“ geschrieben :)

Probier mal folgenden „Versuchsaufbau“:

main.php
PHP:
<ul>
 <li><a href="main.php">ohne Parameter</a></li>
 <li><a href="main.php?lang=de&amp;cat=1">lang=de&amp;cat=1</a></li>
 <li><a href="main.php?lang=de&amp;cat=1&amp;sub=1">lang=de&amp;cat=1&amp;sub=1</a></li>
</ul>
<p>main.php</p>
<?php

$cat = $_GET['cat'];
$lang = $_GET['lang'];
$sub = $_GET['sub'];

if (!empty($cat) && !empty($lang)) {
	$base = $cat . '_' . $lang;
    $includee = $base . '/' . $base . '.php';
    if (file_exists($includee)) include($includee);
}
?>

1_de/1_de.php
PHP:
<p>1_de/1_de.php</p>
<?php

echo '$cat = '.$cat.'<br />';
echo '$lang = '.$lang.'<br />';
echo '$sub = '.$sub.'<br />';

if (!empty($sub)) {
    $base = $cat . '_' . $lang;
    $includee = $base . '/' . $base . '_' . $sub . '.php';
    if (file_exists($includee)) include($includee);
}
?>

1_de/1_de_1.php
PHP:
<p>1_de/1_de_1.php</p>
<?php

echo '$cat = '.$cat.'<br />';
echo '$lang = '.$lang.'<br />';
echo '$sub = '.$sub.'<br />';

?>

In Abhängigkeit der URL-Parameter cat, lang und sub sollten nun die entsprechenden Dateien inkludiert werden.

Das ganze ist allerdings wirklich nur als Test zu verstehen. In einer Produktivumgebung sollte man selbstverständlich noch Sicherheitsabfragen einführen (sonst hat man ganz schnell eine XSS-Lücke).

Allgemein wäre es vielleicht besser, sich eine andere Strategie bei der Umsetzung einer mehrsprachigen Webapplikation mit Kategorien und Unterkategorien einfallen zu lassen (was du vermutlich mit diesem Code erreichen willst).

Grüße,
Matthias
 
Du sagts, folgendes steht in der main.php:

Code:
$temp1 = ($cat . "_" . $lang); 
include($temp1 . "/" . $temp1 . ".php");

Du sagst in der main.php kommt folgendes bei varump($_GET):
Code:
array(2) { ["lang"]=>  string(2) "de" ["cat"]=>  string(1) "1" }

also muss doch:
Code:
$temp1 = ($_GET['cat'] . "_" . $_GET['lang']); 
include($temp1 . "/" . $temp1 . ".php");

funktionieren.....

Das es in der 1_de.php nicht geht ist klar, solange es in main.php nicht richtig umgesetzt ist weil $temp1 leer ist....

Marcus
 
naja doch, $temp1 ist nicht leer... in der main.php funktioniert alles genauso wie es soll...
aber ich kann in der 1_de.php nicht mit den variablen weiter arbeiten, weil sie schlichtweg keinen wert haben, obwohl dieser per url gesetzt ist.

@ matthias

danke erstmal für deine mühe. hast du den code den du oben verfasst hast selbst mal kurz angetestet ?

ich habs gerade getan, und wenn ich in der datei 1_de.php die variablen anzeigen lassen möchte kommt folgendes

Code:
 $cat =
$lang =

die variablen sind in der datei immernoch nicht verfügbar und ich versteh absolut nicht wieso.

Wie du richtig erkannt hast möchte ich eine mehrsprachigen Webapplikation erstellen, wozu ebenfalls kategorien und unterkategorien zählen. Kannst du mir vielleicht einen Tipp geben, wie ich es anders angehen könnte ?
wäre dir sehr dankbar!

Gruss ElGrAnDiOs


//edit: also ich glaube ich habs nun... ich hab einfach mal alle datein in ein verzeichniss gepackt, und siehe da die vars werden übergeben... ich versteh zwar nicht warum aber mir solls egal sein, hauptsache es geht! danke euch

gruss egd
 
Zuletzt bearbeitet:
Hallo,

ElGrAnDiOs hat gesagt.:
@ matthias

danke erstmal für deine mühe. hast du den code den du oben verfasst hast selbst mal kurz angetestet ?
Ja, habe ich, und er hat funktioniert.

ich habs gerade getan, und wenn ich in der datei 1_de.php die variablen anzeigen lassen möchte kommt folgendes

Code:
 $cat =
$lang =
Das ist in der Tat seltsam. Du rufst aber schon die main.php und nicht 1_de.php direkt auf, oder?

Wie du richtig erkannt hast möchte ich eine mehrsprachigen Webapplikation erstellen, wozu ebenfalls kategorien und unterkategorien zählen. Kannst du mir vielleicht einen Tipp geben, wie ich es anders angehen könnte ?
Am einfachsten wäre wohl der Einsatz einer Datenbank, in welcher dann die verschiedenen Textbausteine und Artikel verwaltet werden. Deine bisherige Lösung ist jedenfalls nur sehr unbequem wart-/erweiterbar.

Grüße,
Matthias
 
das wäre natürlich auch eine möglichkeit... ich habe bisher jedoch keine großartigen datenbankkenntnisse und will deshalb versuchen, die sachen mit dem wissen was ich besitze umzusetzen :)

is meistens schwerer als nötig aber auch öfters lehrreich :)
nunja das problem hat sich ja aufgelöst, auch wenn mir die Lösung an sich sehr skuril erscheint, denn nun is meine schöne verzeichnissstruktur förmlich fürn ;)

naja egal, nun liegen alle datein im main ordner und ich schau ma ob ich das vielleicht irgendwann doch nich fixen kann...

so long, danke für eure, besonders deine hilfe matze!

gruß egd
 
Zurück