MyBB.de Forum
[online.php] Mehrdeutiger Dateiname - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: [online.php] Mehrdeutiger Dateiname (/thread-9697.html)



[online.php] Mehrdeutiger Dateiname - Zwoetzen - 12.06.2008

Hi MyBB'ler,

Bei der Anpassung meines Forums, dem Hinzufügen einer eigenen News Section, bin ich auf folgendes Problem gestoßen:

In der online.php wird ja standartmäßig nur der Dateiname überprüft, und daran dann die Location festgelegt. Nun ist aber der Dateiname nicht mehr eindeutig:
/forum/index.php
/news/index.php

Im Falle der index.php müsste ich also noch den Ordner mit einbeziehen, um die Eindeutigkeit zu bekommen.

Die Frage ist nun logischerweise:
Wie mach ich das? ^^

Danke im Vorraus für eure Hilfe.

MfG Zwoetzen


RE: [online.php] Mehrdeutiger Dateiname - StefanT - 12.06.2008

Das blöde ist ja, dass es dann wegen dem /forum dann gar nichts mehr erkennen würde. Wink


RE: [online.php] Mehrdeutiger Dateiname - Zwoetzen - 12.06.2008

Irgendwie verstehe ich nicht ganz, was du mir sagen willst... oO

Aber vielleicht sind es nicht genug Infos diesbezüglich:
In der news/index.php habe ich die /forum/global.php eingebunden, das heißt, die gehört direkt mit zum Forum, ist nur in einem anderem Verzeichnis. (Die restlichen Dateien des Forums sind alle in /forum anzutreffen, also zB auch die online.php)

Die anderen Dateien der News-Section (zB news/addnews.php) kann ich in der online.php auch erkennen. Das Problem ist nur, dass es die index.php 2mal gibt, wenn man nur den Dateinamen betrachtet. (Eben einmal im forum-Ordner und einmal im news-Ordner) Ich müsste also in diesem Fall irgendwie den Ordnernamen in die Betrachtung mit einbeziehen.

Und da weiß ich eben nicht, wie genau ich das anstellen könnte Wink

Quasi sowas wie:
PHP-Code:
[...]
case 
"index":
  if (
$ordner == "news")
    
$user['activity'] = "news";
  else
    
$user['activity'] = "index";
  break;
[...] 
Nur wie krieg ich den ordner raus?


RE: [online.php] Mehrdeutiger Dateiname - StefanT - 12.06.2008

Bisher wird der Ordner nicht in den Sessions abgespeichert.


RE: [online.php] Mehrdeutiger Dateiname - Michael - 13.06.2008

Einfachste Lösung: Benenne die eine index.php um in news.php und erstelle in dem gleichen Ordner eine index.php mit diesem Code zur Weiterleitung:
PHP-Code:
<?php
header
("Location: news.php");
exit;
?>



RE: [online.php] Mehrdeutiger Dateiname - StefanT - 13.06.2008

Oder so: http://de.selfhtml.org/servercgi/server/htaccess.htm#optionen


RE: [online.php] Mehrdeutiger Dateiname - Zwoetzen - 14.06.2008

Danke für eure Antworten, habe aber gestern abend selbst eine Variante gefunden, die das Problem löst Smile

Und zwar habe ich herausgefunden, dass in $user['location'] der gesamte Pfad zur aktuellen Datei des jeweiligen Users steht, also bei mir eben "/forum/index.php" bzw. "/news/index.php", und da kann ich nun ja recht einfach den Ordner rausfischen Wink

Habe also nun folgende Lösung:
PHP-Code:
case "index":
case 
'':
    if(
basename(dirname($user['location'])) == "news"
        
$user['activity'] = "news_index";
    else 
        
$user['activity'] = "index";
    break; 

(Das mit "basename(dirname(...))" hab ich von php.net, keine Ahnung, ob das die beste Variante ist ^^)

Trotzdem Danke für eure Vorschläge, vielleicht kann ich es woanders mal gebrauchen Smile