include+session
romy
- php
0 Sascha Mandelkow0 romy0 Sascha Mandelkow0 romy
0 Sven Wagener0 romy
Hallöchen,
nehmen wir mal an ich habe eine php-seite die grob so aussieht
<?php
session_register("var1");
session_register("var2");
if(blabla=5) include($pfad);
else include($pfad2);
?>
nur beispielhaft, fürs Verständnis
ich möchte jetzt, das die gespeicherten session-variablen in den include dateien auch vorhanden sind (die include-dateien sind auch *.php und haben die variablen auch registered)
irgendwie haben die dort keinen Wert, warum?
wie kann ich das lösen?
danke
romy
Hallo romy.
Also in deinen Includes steht auch jeweils session_register()?
Das kannst du dir sparen. Zunächst solltest du (wenn du nicht weisst, wie dein PHP mit sessions umgeht) die Session mit session_start(); starten.
Wo kommen var1 und var2 her? Werden die übergeben?
Und deine If-Abfrage ist auch nicht ganz korrekt...
<?php
session_start();
$var1 = $HTTP_GET_VARS["var1"]; // möglicherweise durch Übergabe per QueryString
$var2 = $HTTP_GET_VARS["var2"]; // oder mit $_GET...(ich verwende ein älteres PHP)
session_register("var1");
session_register("var2");
if($var1 == 5) {
include($pfad1);
} else {
include($pfad2);
}
?>
Deine Includes kennen $var1 und $var2 auch ohne sie in eine Session zu packen, da sie letztlich genauso funktinieren, als würdest du den Code direkt da rein kopieren.
Grüße
Sascha
Hallo romy.
Also in deinen Includes steht auch jeweils session_register()?
Das kannst du dir sparen. Zunächst solltest du (wenn du nicht weisst, wie dein PHP mit sessions umgeht) die Session mit session_start(); starten.
Wo kommen var1 und var2 her? Werden die übergeben?
--> die kriegen noch vor dem include einen Wert übergeben und haben auch nichts mit der if-Abfrage zu tun
Deine Includes kennen $var1 und $var2 auch ohne sie in eine Session zu packen, da sie letztlich genauso funktinieren, als würdest du den Code direkt da rein kopieren.
--> das klingt sehr logisch!
--> hab da aber trotzdem noch ein kleines Problem
--> es ist etwas schwer zu erklären
also, die DAtei die included wird, wird vorher an den Server geschickt um allle php-Sachen auszuführen und dann eingebunden, wieder so eingebunden, stehen sie natürlich normal in der Datei und haben auch die Variablen zur VErfügung!
ABER: sie brauchen die Variablen schon bevor sie zum Server geschickt werden
ich könnte zwar die Variablen in den QUerystring schreiben, das will ich aus Grössengründen vermeiden, und so bin ich auf die sessions gekommen
irgendwie verzwickt
vielleicht gibts ja noch ne Variante
danke romy
Grüße
Sascha
Hallo romy.
Die Includes werden aber nicht vorher ausgewertet, sondern in dein Skript eingeunden und dann zusammen ausgeführt. Du hast die Variablen $var1 und $var2 also zur Verfügung.
Versuch mal folgendes:
1. include Datei (inc1.php)
<?php
echo $var1;
?>
2. include-Datei (inc2.php)
<?php
echo $var2;
?>
Hauptskript:
<?php
$var1 = "hallo";
$var2 = "du";
if($irgendeineanderevariable == 1) {
include("inc1.php");
}
else {
include("inc2.php");
}
?>
Was kommt raus?
Grüße
Sascha
PS: man mag mich öffentlich steinigen, wenn es in einer ultra-neuen PHP-Verion so nicht gehen sollte, was ich arg bezweifle...
Hallo romy.
Die Includes werden aber nicht vorher ausgewertet, sondern in dein Skript eingeunden und dann zusammen ausgeführt. Du hast die Variablen $var1 und $var2 also zur Verfügung.
»»» PS: man mag mich öffentlich steinigen, wenn es in einer ultra-neuen PHP-Verion so nicht gehen sollte, was ich arg bezweifle...
lieber nicht, wo bekäme ich denn da deine infos her
"nur wer frei von Sünde ist, werfe den ersten stein"...
es geht jedenfalls nicht, aber ich habe dir etwas verschwiegen, was wahrscheinlich extrem von belang war, sorry
include("http://meeinpfad/meinedatei.php");
ich benutze das so, weil wie gesagt, die Dateien vorher zum server müssen
habs gerade noch mal probiert mit nem normalken include, da funzt das was du gesagt hast, wie gesagt es klingt auch sehr logisch
--> also du hattest recht und ich stelle meine frage noch mal neu, mit hoffentlich jetzt allen relevanten infos
danke extremly
romy
Hallo romy.
Aha. Da liegt der Wurm im Gemüse (oder ähnlich---:-)
Du kannst die Variable doch einfach übergeben...
<?php
include("http://meeinpfad/meinedatei.php?var1=".$var1."&var2=".$var2);
?>
Diese Übergabe der Variablen funktioniert aber auch nur bei Aufruf über http.
Grüße
Sascha
Hallo romy.
Aha. Da liegt der Wurm im Gemüse (oder ähnlich---:-)
--> der Hund begraben
--> der Hase im Pfeffer (mhm lecker, sorry an alle Vegis)
--> des Pudels Kern (huch wie gebildet--> Goethe) :)
usw...
und ich könnte noch tausend argumente bringen, wenn ich nur welche wüsste...
Du kannst die Variable doch einfach übergeben...
<?php
include("http://meeinpfad/meinedatei.php?var1=".$var1."&var2=".$var2);
?>
Diese Übergabe der Variablen funktioniert aber auch nur bei Aufruf über http.
und jetzt beisst sich der wurm in den schwanz oder so...
da waren wir schon
aber wenn es keine Möglichkeit für meine extravaganten Wünsche gibt, schreibe ich eben alles daten in ein array, damit der querystring nicht so riesenlang wird, wenn ich mal viele Variablen habe
trotzdem ist das irgendwie drumrum, denn soweit ich weiss, ist es nicht so toll riesenmengen an daten über den querystring mitzuschicken.
Fazit: es ist nicht alles Gold was glänzt
ich danke Dir echt vielmals und auf das dich nie einer steinigen möge
falls dir doch noch was einfällt...meine Antennen bleiben auf Hochempfang
so long
deine ergebene ROmy
Grüße
Sascha
Oh Romy(o)
(kleiner literarisch-shakespeare'scher Ausflug, geschlechtich zwar nicht ganz einwandfrei, dafür aber total spontan-assoziativ, echt ehrlich...)
Wie viele Variablen sollen denn da übergeben werden?
Und mit dem Array das kannst du gleich vergessen, da PHP bei <?php echo $arrayName; ?> nur "Array" rausrückt, nicht aber den Inhalt des Arrays übergibt.
Übrigens passen in den QueryString schon ein paar Daten. Natürlich nicht so viele, wie bei POST...
Hab ich eben im Netz gefunden:
"...Länge des Querystrings: Die URL und der Querystring zusammen sollten nicht mehr als 500 bis 2000 Zeichen enthalten, ansonsten besteht die Gefahr, daß einige Werte einfach nicht übergeben werden (vom Browser abhängig). ..."
Grüße
Julia(n) :-)
1. Hast Du schon einmal probiert die Variablen in der Hauptseite euszugeben?
2. Welche PHP Version benutzt Du?
MfG,
Sven Wagener.
http://www.dokuwelt.de
- Hast Du schon einmal probiert die Variablen in der Hauptseite euszugeben?
ja, funzt problemlos, ich kann alle ausgeben
- Welche PHP Version benutzt Du?
php 4.1.0
MfG,
danke
romy
Sven Wagener.
http://www.dokuwelt.de