Webboard

Pełna wersja: Integracja Forum ze stroną - problem z wczytaniem podstron
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
wersja skryptu MyBB: 186
adres forum: localhost
na czym polega problem (screen, opis, komunikaty):

Witam, mam pewien problem. Otóż, próbuje z integrować forum ze strona zewnętrzną i aby to zrobić muszę wstawić ten kod:
Kod PHP:
<?php
define
("IN_MYBB"1);
chdir("forum"); // path to MyBB
require "global.php";
?>


Jednak gdy go użyję, nie działa ta część kodu:
Kod PHP:
<?php
$body 
$_GET["s"];
if (
$body=="")
{
include(
"includes/home.php"); //plik includowany jeśli body jest puste
}
else {
if (
is_file("includes/$body.php"))
{
include(
"includes/$body.php");
  
else
{
echo
"<h1>404</h1> Nie ma takiej strony!";
      
                            
?>
a dokładniej: 
Kod PHP:
if (is_file("includes/$body.php"))
{
include(
"includes/$body.php");
  

Tak jakby nie znajdowało pliku. Stronę home.php wczytuje normalnie, jednak gdy ma wczytać inną, wywala podany Error 404.

Po usunięciu kodu do połączenia strony z mybb działa wszystko normalnie, więc problem leży gdzieś z tym. Tak przynajmniej mi się wydaje i tutaj już potrzebuje pomocy :)
Zobacz
Kod:
$mybb->get_input('s');
zamiast tego GET-a
Nadal to samo jak wyżej. Home wyświetla się normalnie jeśli odpalamy przez index.php. Jeśli spróbujemy ?s=home lub cokolwiek innego wyświetla się, że strony nie ma :)
Zobacz co zawiera $body, $_GET['s'] przy użyciu echo. Może $body jest już używane przez mybb (użyj innej nazwy).
Użyłem takiego kodu:
Kod PHP:
<?php
$testtestuktoryjesttestem 
$_GET['testtestuktoryjesttestem2'];
if (
$testtestuktoryjesttestem=="")
{
include(
"includes/home.php"); //plik includowany jeśli body jest puste
}
else {
if (
is_file("includes/$testtestuktoryjesttestem.php"))
{
include(
"includes/$testtestuktoryjesttestem.php");
  
else
{
echo
"<h1>404</h1> Nie ma takiej strony!";
      
                            
?>
(Próbowałem też podmienić $_GET na to co ty dałeś)

Nadal jest to samo, nie czyta innych podstron, jedynie includuje główną jeśli zmienna jest pusta albo wyświetla error.


Nadal jestem za tym, że jest to wina:
Kod PHP:
if (is_file("includes/$testtestuktoryjesttestem.php"))
{
include(
"includes/$testtestuktoryjesttestem.php");
  
Jednak, nie jestem jakiś obeznany w tym i czy można to jakoś zamienić, by działało tak samo.
to
Kod PHP:
"includes/$testtestuktoryjesttestem.php" 
Powinno wyglądać tak
Kod PHP:
"includes/"$testtestuktoryjesttestem .".php" 
Lub ewentualnie
Kod PHP:
"includes/{$testtestuktoryjesttestem}.php" 
heh, czyli to nie to. Nadal dzieje się to samo ;/
Wszystko działa. Na pewno masz pliki które chcesz dołączyć w odpowiednim folderze/odpowiednia nazwa i rozszerzenie?
page.php
Kod PHP:
<?php
// Wyświetlanie błędów, usuń jeżeli będziesz używał tego na wersji produkcyjnej
ini_set("display_errors","2");
ERROR_REPORTING(E_ALL);

define("IN_MYBB"1);
//chdir("forum"); // path to MyBB
require_once "global.php";

$page $_GET["s"];
if (
$page == "") {
    include(
"includes/home.php"); //plik includowany jeśli body jest puste
}
else {
    if (
is_file("includes/"$page .".php")) {
        include(
"includes/"$page .".php");
    }   
    else {
        echo
"<h1>404</h1> Nie ma takiej strony!";
    }       
}     

echo 
'<br>Nazwa wybranej strony: ' .$page;
?>

includes/strona.php
Kod PHP:
<?php
echo 'jestem stroną'
adres
/page.php?s=strona
W pewnym sensie działa, jeśli postawie to na nowym hostingu, u mnie to nadal wyświetla 404, chociaż zawartość jest ta sama, wychodzi na to, że to coś u mnie. Teraz tylko muszę ogarnąć co. Bo to jest dziwne, że jedno działa a drugie nie, jeśli mam te same zawartości i nazwy ^^


: Po części już znam problem, jest to coś związanego z forum, bo teraz mam 2 wersje, przy includowaniu 1 działa wszystko, przy drugiej już nie. Zapewne, będzie to wina jakiegoś pluginu lub czegoś podobnego. Pozostanie mi zabawa od nowa z forum ;/


: Odkryłem gdzie leży problem, home.php wczytuje mi z folderu /includes/home.php, jednak jeśli chodzi o inne podstrony to /forum/includes/strona.php
To dlatego wyświetlało, że nie ma podanej strony ;) Matslom wielkie dzięki, bo w sumie bez ciebie tego problemu pewnie bym nie rozwiązał.


Temat do zamknięcia :)