PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Problem mit INCLUDE und SESSION (http://www.selfphp.de/forum/showthread.php?t=4933)

Trialrider 17.07.2003 12:16:45

Problem mit INCLUDE und SESSION
 
Hallo Leute,

ich dreh im Kreis...

Habe begonnen das Menü und die Verzeichnisstruktur für unser Intranet zu re-designen. Vom Menü her klappt auch alles richtig.

Richtig, bei den Verzeichnissen gibts Probleme:
In der ersten Version lagen alle Dateien im root-directory des Web-Servers. Als Beispiel folgendes:
  • ...
  • Aendern_Start.php
    // Hier wird gewählt zw. Sortiment oder Kunde
  • Aendern_Kunde.php
    // Hier wird include("Verbindung.php"); gemacht
    // um an die vorhandenen Kunden zu kommen
  • Aendern_Kunde_2.php
    // Ebenfalls include("Verbindung.php"); für den
    // Abgleich der alten und neuen Daten
  • Aendern_Kunde_3.php
    // Genauso include("Verbindung.php");
    // damit wenn nötig das Update gemacht wird
  • index.php
  • login.php
    // Hier wird die Verbindung direkt hergestellt
  • logout.php
    // Hier wird die Verbindung direkt hergestellt
  • main.php
  • main_h.php
    // Oberer Rahmen mit mehreren Links unter
    // u.a. auch zu "Aendern_Start.php"
  • main_m.php
    // Hier werden die Links hingelenkt
  • main_f.php
    // In diesem Frame ist eine Statuszeile
  • Verbindung.php
    // Hier wird die Verbindung zum Server erzeugt
  • ...

Damit ihr mit der Verbindungsdatei was anfangen könnt hier der Code:
PHP-Code:

<?
 session_start ();
 $db_Session_Daten = session_encode() or die();
 $db_Session_Inhalte = explode (chr(34), $db_Session_Daten);
 
 $db_Server = "meiner";
 $db_Benutzer = $db_Session_Inhalte[1];
 $db_Kennwort = $db_Session_Inhalte[3];
 $db_Verbindung = mysql_connect ($db_Server, $db_Benutzer, $db_Kennwort) or die ("Keine Verbindung zum Datenbank-Server!");
?>

Die Datei (Kopf) zum Auflisten aller Kunden schaut so aus:
PHP-Code:

<?
 session_start ();
 $db_Session_Daten = session_encode() or die();
 $db_Session_Inhalte = explode (chr(34), $db_Session_Daten);
 
 include ("Verbindung.php");
 
 mysql_select_db ("kundendb", $db_Verbindung) or die ("Keine Datenbank vorhanden!");
?>
<html>
 ...
</html>

Mit der verwendeten 3-Frame-Konstruktion wird die DB gewählt und es werde auch alle Kunden aufegführt... und um die Session auslesen zu können muss ich "session_start();" machen...

So Leute, bitte umdenken: Ich habe jetzt die "Verbindung.php" in einen Ordner "http://meiner/_func_/" gepackt und die Änderungsdateien in "http://meiner/vertrieb/kundendb/". Und es gibt nur noch zwei Frames "main_m.php" und "main_f.php".

Mein INCLUDE() sieht jetzt so aus:
PHP-Code:

include ("http://meiner/_func_/Verbindung.php"); 

Doch leider ist $db_Verbindung jetzt leer, da er eine neue(!!!) Session startet.

Hoffentlcih könnt ihr mir helfen ich feinde den Fehler einfach nciht.

Vielen Dank schonmal für eure Bemühungen.

Gruß, Trialrider

c4 17.07.2003 12:25:03

Wenn Du eine Datei mit include() über http ansprichst, dann bekommst Du eine vom PHP-Interpreter 'übersetzte' Seite zurück. Wenn Du auf die Variablen und so aus der Datei zugreifen willst, dann musst Du relative Pfadangaben machen, also z.B. sowas: include ("../_func_/Verbindung.php");
Musst halt immer auf die korrekte Pfadangabe achten, aber das sagt er Dir schon, wenn es nicht stimmt....

Trialrider 17.07.2003 12:31:33

Hi c4,

so weit war ich auch schon, aber da kam/kommt nur das:

Zitat:

Warning: main(../_func_/Verbindung.php) [function.main]: failed to create stream: No such file or directory in c:inetpubwwwrootvertriebkundendbdb_aendern_kunde.php on line 6

Warning: main() [function.main]: Failed opening '../_func_/Verbindung.php' for inclusion (include_path='.;c:php4pear') in c:inetpubwwwrootvertriebkundendbdb_aendern_kunde.php on line 6

Notice: Undefined variable: db_Verbindung in c:inetpubwwwrootvertriebkundendbdb_aendern_kunde.php on line 7

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:inetpubwwwrootvertriebkundendbdb_aendern_kunde.php on line 7
Keine Datenbank vorhanden!
Sorry, aber die Variante bringt nix.

c4 17.07.2003 12:33:08

Dort steht:
Failed opening '../_func_/Verbindung.php'
Das heißt:
Datei nicht gefunden. Ergo: Pfadangaben überprüfen.

Trialrider 17.07.2003 12:43:22

Ja was geschrieben steht ist das Eine...aber so funzt's:
PHP-Code:

 include ("c:/inetpub/wwwroot/_func_/db_verbindung_daten.php"); 

Und bitte, da steht "../_func_/db_verbindung_daten.php"!

Irgendwie muss ich den Pfad auslesen, das habe ich nun fetstgestellt.

Gruß, Danke

Trialrider 17.07.2003 13:03:31

Puh, erledigt.

So langsam fallen mir die Pfadrestriktionen auf den Keks... Da werde ich mich aber dran gewöhnen müssen. Hier die Lösung:
PHP-Code:

 $Include_Verbindung realpath("../../_func_/db_verbindung_daten.php");
 
$Include_Verbindung str_replace("\", "/", $Include_Verbindung);

 include ($Include_Verbindung); 

Trotzdem Danke. Trialrider

Nachtrag:
---------
Scheiße, doof kan man sein: "../../_func_/[Datei]" reicht auch aus.


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:08:32 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.