• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

include Links

Status
Für weitere Antworten geschlossen.

AlexK-Mainz

Neues Mitglied
Hallo

ich habe eine Datei "index.php" mit mehreren include Befehlen, welche auch einwandfrei funktionieren.

Klar, dass ihr euch nun fragt, weshalb ich damit ein Problem habe... Mein Problem ist, das ich nicht verstehe, weshalb es funktioniert.

Sachverhalt:

PHP:
<?php
session_start();

[B]include "inc\config.inc.php";
include "inc\err.inc.php";
[/B]
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>MZW-Connection</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="setup/mkopp_1.css" rel="stylesheet" type="text/css">
</head>

<body>

<div id="rahmen">
    <div id="top">
        <?php
        include "inc/top.inc.php";
        ?>
    </div> <!-- Ende div_top -->
    <div id="menu">
        <?php
            if (ISSET($_SESSION["id_user"]))
            {   include "inc\menu.inc.php";
            } else
            {    include "inc\login.inc.php";
            }
          ?>

..//..Ausschnitt Ende // ...[/code]Wenn ich den top.inc.php mit einem "\" versehe erhalte ich die Warnung, dass die Datei "inc op.inc.php" nicht gefunden werden kann.
Mache ich ein "/" daraus funktioniert es.

Warum aber funktionieren die anderen include´s mit "\" in der selben Datei ohne Fehlermeldung.

Ich realisiere das ganze auf einer xamp-Testumgebung mit php5.


Kann mir das jemand bitte erklären?

danke schon mal...
 
Zuletzt bearbeitet von einem Moderator:
entweder ein fehler oder ein zufall. grundsätzlich werden pfadangabe mit einem slash (/) gemacht, nicht mit backslash (\).

Nils aka XraYSoLo
 
und wenn du echt nicht weiter kommst, kannst du es noch so lösen
PHP:
include "inc".DIRECTORY_SEPARATOR."login.inc.php";

DIRECTORY_SEPARATOR ist eine vordefinierte Konstante, damit wird automatisch der vom Dateisystem benutzte Separator benutzt.
 
wenn du eine pfadangebe mit backslash angeben willst musst du schreiben \\ und nicht \ wenn wenn du z.b. schreibst

PHP:
include("inc\news.php");

wird das \n als zeielnumbruch behandelt darum schreibt man

PHP:
include("inc\\news.php");

um das phöse \ wieder unschädlich zu machen ;) dann sollte es auch in xampp gehen ^^

MFG Miahhhhhhhh :P
 
Die Theorie ist mir schon klar, sowohl mit dem \\ als auch dass es einen Unterschied macht ob Windows oder Unix

Die Frage ist ja, weshalb es innerhalb eines Dokumentes einmal mit nur mit "\" funktioniert und später nur noch mit "/"

siehe

Code:
[COLOR=#000000]  
[COLOR=#0000bb]<?php
[/COLOR][COLOR=#007700]    include [/COLOR][COLOR=#dd0000]"inc/top.inc.php"[/COLOR][COLOR=#007700];
[/COLOR][COLOR=#0000bb]?>
[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000bb]<?php
[/COLOR][COLOR=#007700]if (ISSET([/COLOR][COLOR=#0000bb]$_SESSION[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]"id_user"[/COLOR][COLOR=#007700]]))
{   include [/COLOR][COLOR=#dd0000]"inc\menu.inc.php"[/COLOR][COLOR=#007700];
} else
{    include [/COLOR][COLOR=#dd0000]"inc\login.inc.php"[/COLOR][COLOR=#007700];
}
[/COLOR][COLOR=#0000bb]?>[/COLOR][/COLOR]

Ich verstehe nicht, warum in ein und dem selben Dokument es nicht gleich funktioniert. Es ist ja die gleiche Datei, das gleiche Testsystem.

Wahrscheinlich spinnt mein System, denn ich glaube nicht, dass es hierfür eine Erklärung gibt

Mit dem Seperator von User:Frank funktioniert es.

Ich werde die Tage mal einen onlinetest auf meiner Homepage machen und dann sehen, welche Varianten da funktionieren.
 
wenn du überall \\ schreibst statt \ dan geht es, solange du auf einem Windows system bist, bei dir kann es nicht gehen, da du nur \ schreibst und nicht \\

wie schon in den posts weiter oben entstehen sonderzeichen dadurch.

Beispiel \t = tab, \n = newline

PHP:
include "inc\top.inc.php";
wird zu
PHP:
include "inc    op.inc.php";

wenn du alle zeichen escapen würdest, würde es gehen...
PHP:
include "inc\\top.inc.php";
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben