Problem z default.

0
$dh = opendir('page');

while (($file = readdir($dh)) !== false)
	{
	if($file != "." && $file != "..")
		{
		if (substr($file, -4, -3) ==".")
			{
			}
		else
			{
			switch($_GET['p'])
				{
					case $file:
					require('page/'.$file.'/'.$file.'.php');
					break;
				}
			}
		}
	}
closedir($dh);

W jaki sposób zrobić zeby działała strona.

default:
require('page/news/news.php');
break;
0

ale żeś potworka strzelił... przy założeniu, że wykonywany plik jest w tym samym katalogu, który zawiera podkatalog page (pisane z palca):

$name = $_GET['p']; // tutaj jeszcze sprawdzenie, czy to prawidłowa nazwa, nie chce mi się go pisać
$file = "page/$name/$name.php";
if (file_exists($file))
    require_once ($file);

na przyszłość - jeśli coś nie działa, to pisz jakie są objawy niedziałania!

1

prawidłowa nazwa zakładam, że będzie składać się ze znaków a-z, cyfr oraz znaków podkreślenia i pauzy. w tym przypadku rozbudowa "skryptu" @ŁF:

$name = $_GET['p']; // tutaj jeszcze sprawdzenie, czy to prawidłowa nazwa, nie chce mi się go pisać
if (preg_match('/^([a-z0-9_-]+)$/i', $name)) {
  $file = "page/$name/$name.php";
  if (file_exists($file)) {
    require_once ($file);
  }
  else {
    die('nie ma takiego modulu/strony');
  }
}
else {
  die('zly parametr');
}

@ŁF: Ja preferuję zawsze pisanie klamer po if/else, nawet jak jest jedna instrukcja - omija to problem, kiedy potem dopisujemy kolejną instrukcję i zapominamy o klamrach, no i jest jednak czytelniejsze, szczególnie dla początkującego.

@ZEXE:
Obsługę błędów zrób raczej inną niż die(), to tylko przykład.

0

Dziękuję za pomoc, proszę o zamknięcie tematu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1