Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Rose4You

Doppel-As

Dabei seit: 05.09.2011

Beiträge: 110

 

1 Zum Seitenanfang

Samstag, 14. Januar 2012, 01:12

Problem mit chdir

Hallo,
ich drücke mich mal kurz aus, ich nutze ein MyBB Forum. Außerdem schreibe ich derzeit ein HP-System, welches an die Datenbank von MyBB angeschlossen werden soll.

Meine Struktur sieht so aus:

root
/forum
/index.php
/global.php
/homepage
/main
/admin
/index.php


Ich will in die Index.php im Ordner Admin das ganze System einbinden. Mir wurde folgender Code für die Situation gegeben, dass beides einen Ordner unter dem root liegt:

  Spoiler Spoiler

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
chdir('../forum/'); // path to MyBB
define("IN_MYBB"1);
require '../forum/global.php';
include_once '../forum/config.php';

if($mybb->user['uid']) { //überprüfen ob angemeldet
        //titel fehler beheben
    $titel $mybb->user['usertitle'];
    if ($titel == '') {
        if ($mybb->user['usergroup'] == '2') {
            $titel 'Verifizierter User';
        }
    }
        //normale links ausgeben
    echo 'Angemeldet als:'.$mybb->user['username'].'<br>['.$titel.']';
    echo '<br>';
    echo '<li><a href="http://localhost/forum/memberlist.php">Mitgliederliste</a></li>';
    echo '<li><a href="http://localhost/forum/member.php?action=profile&uid='.$mybb->user['uid'].'">Eigenes Profil</a></li>';
    echo '<li><a href="http://localhost/forum/usercp.php">Profil &auml;ndern</a></li>';

    //admin bzw mod link ausgeben
    if($mybb->usergroup['cancp'] == 1)
    {
        echo '<li><a href="http://localhost/acp.php">Admin Bereich</a></li>';
    }
    if(is_moderator()) {
        echo '<li><a href="http://localhost/mcp.php">Moderatoren Bereich</a></li>';
    }
    echo '<li><a href="http://localhost/forum/member.php?action=logout&logoutkey='.$mybb->user['logoutkey'].'">Logout</a></li>';
} else {
    //wegen zurückleitung
    $site pathinfo($_SERVER['REQUEST_URI'], PATHINFO_BASENAME);
    if ($site == '') {
        $site 'index3.php';
    }
    $site 'http://localhost/'.$site?>
    <!--Fom fürs login anzeigen-->
    <form action="../forum/member.php" method="post">
        <table border="0">
            <tr>
                <td>Username:</td>
                <td><input type="text" name="username" size="10" maxlength="30"></td>
            </tr>
            <tr>
                <td>Passwort:</td>
                <td><input type="password" name="password" size="10"></td>
            <tr>
                <td><input type="checkbox" id="quick_login_remember" name="quick_remember" value="yes">Merken?</td>
                <td><input type="submit" class="submit" name="submit" value="Login"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="hidden" name="action" value="do_login"></td>
                <td><input type="hidden" name="url" value="<?php echo $site?>"></td>
            </tr>
        </table>
    </form>
<?php ?>


Nun muss das ganze allerdings auf die vielen Unterordner angepasst werden, das tat ich so:

  Spoiler Spoiler

PHP-Quelltext

1
2
3
4
5
<?php
chdir('../../../forum/'); // path to MyBB
define("IN_MYBB"1);
require '../../../forum/global.php';
include_once '../../../forum/config.php';


Das ganze ist nun schön und gut, jedoch zeigt er mir in jedem Fall nur folgenden Fehlercode an:

  Spoiler Spoiler

Quellcode

1
2
3
4
5
Warning:  require() [function.require]:  open_basedir restriction in effect. File(../../../forum/global.php) is  not within the allowed path(s):  (/users/rose4you/temp:/users/rose4you/www) in /users/*ZENSIERT*/www/homepage/main/admin/index.php on line 17
  
 Warning:  require(../../../forum/global.php) [function.require]: failed to open stream: Operation not permitted in /users/*ZENSIERT*/www/homepage/main/admin/index.php on line 17
  
 Fatal error:  require() [function.require]: Failed opening required '../../../forum/global.php' (include_path='.') in /users/*ZENSIERT*/www/homepage/main/admin/index.php on line 17


Gut, Zeile 17 ist im gesamten Script die Zeile, welche require '../../../forum/global.php'; beinhaltet. Leider finde ich nirgends einen Fehler. :|
Was fehlt euch an Informationen, oder könnt ihr mir so helfen?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Rose4You« (14. Januar 2012, 17:49)

 

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 595

 

2 Zum Seitenanfang

Samstag, 14. Januar 2012, 07:30

Bist du sicher das du in deiner Verwaltungsstruktur mit den ../../../ nicht zu hoch gehst?
Der Fehler könnte bedeuten das du in einem Oberverzeichnis bist auf das du keinen direkten Zugriff hast.
Versuche mal die Menge der ../ zu reduzieren und prüfe dann nach jedem den du wegnimmst ob es klappt.
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan
 

Rose4You

Doppel-As

Dabei seit: 05.09.2011

Beiträge: 110

 

3 Zum Seitenanfang

Samstag, 14. Januar 2012, 16:00

Also require und include_once müssten richtig sein, denn sobald ich chdir veränder wird dort das Formular angezeigt. Jedoch entsteht dann beim chdir der folgende Fehlercode:

  Spoiler Spoiler

Quellcode

1
Warning:  chdir() [function.chdir]: No such file or directory (errno 2) in /users/*ZENSIERT*/www/homepage/main/admin/test.php on line 2


Ideen?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Rose4You« (14. Januar 2012, 17:50)

 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

4 Zum Seitenanfang

Samstag, 14. Januar 2012, 17:46

hallo Rose,

bevor ich mit Raten anfange, kannst du bitte die Überbreiten CodePassagen in Spoilertags packen? (im Editor das Symbol: ) Denn in code-tags gibt es keinen autom. Zeilenumbruch, was dazuführt das auch der restliche (ausserhalb stehende) Text auch nicht mehr automatisch umgebrochen wird, was wiederum den Lesefluss doch erheblich behindert ... wenn es dich nicht stört so denke zumindest an jene von denen du Hilfe erwartest ...

den teil könnte man wunderbar in Spoilertags packen

Quellcode

1
2
3
4
5
Warning:  require() [function.require]:  open_basedir restriction in effect. File(../../../forum/global.php) is  not within the allowed path(s):  (/users/rose4you/temp:/users/rose4you/www) in /users/*ZENSIERT*/www/homepage/main/admin/index.php on line 17
  
 Warning:  require(../../../forum/global.php) [function.require]: failed to open stream: Operation not permitted in /users/*ZENSIERT*/www/homepage/main/admin/index.php on line 17
  
 Fatal error:  require() [function.require]: Failed opening required '../../../forum/global.php' (include_path='.') in /users/*ZENSIERT*/www/homepage/main/admin/index.php on line 17

zu deiner verzeichnissstruktur,
du schreibst die sähe so aus:
root
/forum
/index.php
/global.php
/homepage
/main
/admin
/index.php

in deinen Fehlermeldungen sieht sie aber eher so aus:
┳ / (oder root)
┗┳ users
 ┗┳ *ZENSIERT*
  ┗┳ www
   ┣┳ forum
   ┃┣ index.php
   ┃┗ global.php
   ┗┳ hompage
    ┗┳ main
     ┗┳ admin
      ┣ index.php
      ┗ test.php

aber weil das nur geraten ist wäre es nett zu wissen wie es denn wirklich aussieht oder aber du erklärst nochmal die Syntax deiner Verzeichnisbeschreibung :)

Die Fehlermeldungen deuten darauf hin das es nicht erlaubt ist in dem Root-Verzeichniss zu lesen, eventuell reicht es ja schon aus das Verzeichnis forum unterhalb von Verzeichnis hompage anzusiedeln ...

Gruß
Ego
 

Rose4You

Doppel-As

Dabei seit: 05.09.2011

Beiträge: 110

 

5 Zum Seitenanfang

Samstag, 14. Januar 2012, 17:52

HI,
ich hab das ganze dann eben mal in Spoiler gepackt. :)

Und ja, die Struktur die du hier gezeigt hast ist richtig. Ich hab das ganze mit Leerzeichen gemacht, welche dann jedoch nciht so umgesetzt worden sind, wie sie sollten. Danke!

Das Verzeichnis forum unter dem verzeichnis homepage anzusiedeln habe ich versucht, jedoch sortiert sich der root Ordner Alphabetisch, dahe gelang es mir nicht.
 

Ego

Routinier

Dabei seit: 22.07.2009

Beiträge: 322

 

6 Zum Seitenanfang

Samstag, 14. Januar 2012, 18:10

:) ich meinte das Verzeichnis forum ins Verzeichnis hompage verschieben
 

Rose4You

Doppel-As

Dabei seit: 05.09.2011

Beiträge: 110

 

7 Zum Seitenanfang

Samstag, 14. Januar 2012, 18:55

Schlechte Idee!

Wäre ein riesen Auswand....


Gibts bessere Ideen?
 

thunder

Routinier

Dabei seit: 22.10.2002

Beiträge: 332

 

8 Zum Seitenanfang

Montag, 16. Januar 2012, 05:59

Moin,

so wie es aussieht: allowed path(s): (/users/rose4you/temp:/users/rose4you/www)

ist "/users/rose4you/www" schon in den include_path mit drinn dann sollte der include wie folgt funktionieren:

PHP-Quelltext

1
2
require './forum/global.php';
include_once './forum/config.php';


ansonsten gibt es den Befehl set_include_path

PHP-Quelltext

1
2
3
set_include_path(get_include_path() . PATH_SEPARATOR '/users/rose4you/www/forum')
require '.global.php';
include_once '.config.php';


mehrere Pfade setzen:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
$includePath = array(
    realpath('/users/rose4you/www/forum'),
    realpath('/users/rose4you/www/homepage'),
    realpath('/users/rose4you/www/homepage/main'),
    realpath('/users/rose4you/www/homepage/main/admin'),
    get_include_path()                                    // vorhandene Pfade
);
set_include_path(implode(PATH_SEPARATOR$includePath));

require 'global.php';
include_once 'config.php';


MfG
WoW GildeMeine Baustelle
Meine Programme: Gimp, Blender; Proton; Debian (Server);

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »thunder« (16. Januar 2012, 05:59)

 

Ähnliche Themen