HTML/PHP/AJAX/JS - [PHP] Problem z ?page=strona
WoGuziczek - 07-03-2008, 16:26 Temat postu: [PHP] Problem z ?page=strona Witam!
Obecnie bawię się troszkę skryptem Rapidshare.de Clone.
Mój plik index.php wygląda tak:
Kod: | <?php
include("./config.php");
include("./header.php");
$sizehosted = 0; //get the storage size hosted
$handle = opendir("./storage/");
while($file = readdir($handle)) {
$sizehosted = $sizehosted + filesize ("./storage/".$file);
if((is_dir("./storage/".$file.'/')) && ($file != '..')&&($file != '.'))
{
$sizehosted = $sizehosted + total_size("./storage/".$file.'/');
}
}
$sizehosted = round($sizehosted/1024/1024,2);
if(isset($allowedtypes)){ //get allowed filetypes.
$types = implode(", ", $allowedtypes);
$filetypes = "<b>Dozwolone typy plikow:</b> ".$types."<br /><br />";
} else { $filetypes = ""; }
if(isset($categories)){ //get categories
$categorylist = "Kategorie: <select name=\"category\">";
foreach($categories as $category){
$categorylist .= "<option value=\"".$category."\">".$category."</option>";
}
$categorylist .= "</select><br />";
} else { $filetypes = ""; }
if(isset($_GET['page']))
$p = $_GET['page'];
else
$p = "0";
include 'total.php';
switch($p) {
default: include("./pages/upload.php"); break;
}
include("./footer.php");
?> |
O co chodzi - Z ostatnich linijek:
Kod: | if(isset($_GET['page']))
$p = $_GET['page'];
else
$p = "0";
include 'total.php';
switch($p) {
default: include("./pages/upload.php"); break;
} |
Łapiemy, że domyślną stroną jest upload.php, która znajduje się katalogu pages.
Gdzie problem - otóż nie działa mi system podstron tzn jak wpisze http://adres_strony.pl/index.php?page=jakaś_strona to mimo, że strona znajduje się w katalogu pages - nadal wyświetla mi się upload.php (default).
Gdzie leży błąd?
Z góry dziękuje za pomoc
Radek - 07-03-2008, 16:30
zamiast tego:
Kod: | switch($p) {
default: include("./pages/upload.php"); break;
} |
daj:
Kod: | switch($p) {
case 'jakas_strona':
include('jakisplik.php');
break;
case 'jakas_strona2':
include('jakisplik2.php');
break;
default: include("./pages/upload.php"); break;
} |
itd wg. schematu dodajesz dozwolone opcje dla 'page'
WoGuziczek - 07-03-2008, 16:52
RuseK, RuseK, Dziękuję - działa
a da się jakoś inaczej zrobić, żeby po prostu nie dodawać ciągle nowych stron do index.php ?
Kiedyś w innym skrypcie bawiłem się z czymś takim:
Kod: | <?php
error_reporting(0);
import_request_variables( 'gpc' );
$url= explode('/', $url);
if($url[0] == '.' or $url[0] == '..'){echo"<center><b><font size='4'>ŹLE CZYNISZ!!</font></center></b>";
}
else
{
if($url[0] == '' or $url[0] == 'glowna' or $url[0] == 'index' or $url[0] == 'glowna' or $url[0] == 'Index' )
{
include('index2.php');
}
else
{
if(file_exists("strony/$url[0].php") == true)
{
include('strony/'.$url[0].'.php');
}
else
{
echo"<center><b><font size='4'>BŁĄD 404 : Nie ma takiej strony<br><br>ERROR 404 : Page not found</font></center></b>";
}
}
}
?> |
Tylko, że to działało na zasadzie zupełnej innej niż tej powyższy skrypt także trzeba mega przerobić.
Radek - 07-03-2008, 17:06
a wrzuc ten kod:
Kod: | $p = htmlspecialchars(trim($_GET['page']));
$p = basename($p);
$p = str_replace(array('http://', '/', '.', '.php'), '', $p);
if ( !empty($p) && file_exists('./pages/' . $p . '.php') )
{
include('./pages/' . $p . '.php');
}
else
{
include('./pages/upload.php');
} |
zamiast tego:
Kod: | if(isset($_GET['page']))
$p = $_GET['page'];
else
$p = "0";
include 'total.php';
switch($p) {
default: include("./pages/upload.php"); break;
} |
Nie testowane.
WoGuziczek - 07-03-2008, 18:14
RuseK, powiem tak - działa jeśli chodzi o podstrony,
ale na stronie głównej wywala na górze błąd:
Kod: | Notice: Undefined index: page in C:\Program Files\EasyPHP 2.0b1\www\nightvision\index.php on line 32
|
Radek - 07-03-2008, 18:41
może tak?
Kod: | if ( !empty($_GET['page']) )
{
$p = htmlspecialchars(trim($_GET['page']));
$p = basename($p);
$p = str_replace(array('http://', '/', '.', '.php'), '', $p);
if ( file_exists('./pages/' . $p . '.php') )
{
include('./pages/' . $p . '.php');
}
else
{
include('./pages/upload.php');
}
}
else
{
include('./pages/upload.php');
} |
WoGuziczek - 07-03-2008, 18:54
I GITARA
Działa bez żadnych błędów
Bardzo Ci dziękuje, RuseK
Pozdrawiam
|
|
|