Webboard

Pełna wersja: File_Exists - podwajanie szablonów
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
wersja skryptu MyBB:1.6
adres forum:xx
na czym polega problem (screen, opis, komunikaty):

Witam. Mam plik group.php w którym mam taki kod:
Kod PHP:
if (isset($_GET["action"]))
    {
        if (
File_Exists($_GET["action"].".php"))
        {
            include 
$_GET["action"].".php";
        }
        else 
redirect($_GET["action"].".php");
    } 

i dołączam sobie do niego pliki. Drugi plik (który jest dołączany do group.php) wygląda tak:
Kod PHP:
<?php
 
if($mybb->input['module'] == 'index'//group.php?action=market&module=index&type=cars
{    
 
$asd.='<tr><td class="trow1">index</tr></td>';
add_breadcrumb("Home""group.php");
eval(
"\$asd = \"".$templates->get("asd")."\";"); 
output_page($asd);
}
 
if(
$mybb->input['module'] == 'index' && $mybb->input['type'] == 'cars'//group.php?action=market&module=index&type=cars
{    
 
$asd.='<tr><td class="trow1">cars</tr></td>';
add_breadcrumb("Home""group.php");
eval(
"\$asd = \"".$templates->get("asd")."\";"); 
output_page($asd);
}
 
if(
$mybb->input['module'] == 'index' && $mybb->input['type'] == 'doors'//group.php?action=market&module=index&type=doors
{    
 
$asd.='<tr><td class="trow1">doors</tr></td>';
add_breadcrumb("Home""group.php");
eval(
"\$asd = \"".$templates->get("asd")."\";"); 
output_page($asd);
}
?>

i kiedy wejdę w ten link http://casefile.pl/group.php?action=mark...&type=cars to podwaja mi szablony i pokazuje zawartość z index a pod tym http://casefile.pl/group.php?action=market&module=index jest wszystko dobrze. Co robię źle?

Refresh
Ja jakoś nie widzę, aby coś podwajało się.
Zobacz jakie warunki sprawdzasz - jeżeli zostanie spełniony drugi lub trzeci, to na pewno zostanie spełniony też pierwszy no i zawsze będziesz miał to dublowane. Źle to rozpisałeś.

Druga sprawa - includowanie "na czysto" tego co jest w $_GET... Bój Ty się Boga, nie szkoda Ci serwsiu? :)
(29.05.2013, 08:31)Matslom napisał(a): [ -> ]Ja jakoś nie widzę, aby coś podwajało się.


Próbuję rozwiązać problem w zmiennych i pewnie dlatego.

(29.05.2013, 10:31)lukasamd napisał(a): [ -> ]Zobacz jakie warunki sprawdzasz - jeżeli zostanie spełniony drugi lub trzeci, to na pewno zostanie spełniony też pierwszy no i zawsze będziesz miał to dublowane. Źle to rozpisałeś.

Druga sprawa - includowanie "na czysto" tego co jest w $_GET... Bój Ty się Boga, nie szkoda Ci serwsiu? :)


A jak jest nie "na czysto"?:D
Filtruj tą wartość, bo teraz podając odpowiedzi adres można dołączyć każdy plik z Twojego serwera, a te które nie są php po prostu wyświetlać. Jeżeli wiesz, że pliki zawierają np. tylko znaki a-z to sprawdź przy użyciu preg_match czy się zgadza.
(29.05.2013, 11:41)lukasamd napisał(a): [ -> ]Filtruj tą wartość, bo teraz podając odpowiedzi adres można dołączyć każdy plik z Twojego serwera, a te które nie są php po prostu wyświetlać. Jeżeli wiesz, że pliki zawierają np. tylko znaki a-z to sprawdź przy użyciu preg_match czy się zgadza.

Okey. Jak uda mi się naprawić podwajanie szablonów to zajmę się tym.
Mam teraz taki kod

Kod PHP:
if($mybb->input['module'] == 'index' && $mybb->input['type'] == 'cars'//http://casefile.pl/group.php?action=market&module=index&type=cars
{    

$cars.='<tr><td class="trow1">cars</tr></td>';
eval(
"\$cars = \"".$templates->get("game_market_cars")."\";"); 
output_page($cars);
}
elseif(
$mybb->input['module'] == 'index' && $mybb->input['type'] == 'doors')
{    

$doors.='<tr><td class="trow1">doors</tr></td>';
eval(
"\$doors = \"".$templates->get("game_market_doors")."\";"); 
output_page($doors);


i działa, lecz w group.php?action=market&module=index i group.php?action=market

nic się nie wyświetla. A chcę aby domyślną stronę pokazywało, czyli 'cars'
Sprawdź, czy moduł jest równy index, a jeżeli tak to zrób switch z typem - wtedy możesz dać dla cars np. wartość cars oraz default - więc czy zostanie podane inne ktore nie istnieje, czy bez typu, załaduje cars.
(29.05.2013, 13:12)lukasamd napisał(a): [ -> ]Sprawdź, czy moduł jest równy index, a jeżeli tak to zrób switch z typem - wtedy możesz dać dla cars np. wartość cars oraz default - więc czy zostanie podane inne ktore nie istnieje, czy bez typu, załaduje cars.

Jest równy. Dasz podpowiedź jak zrobić tego switcha i gdzie go dać? Nie wiem jak to zrobić.