Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Proste pytanko
Forum PHP.pl > Forum > PHP
mumiak
Mam nadzieje ze ktos mi pomoze, to jest chyba proste...


Kod
<?php



    $k=$_GET["dalej"];

    

if ($dalej=="")

        {

        include("baner1.htm");

        }





if ($dalej=="")

        {

        include(news/news.php");

        }

if ($dalej=="sonda")

        {

        include("sonda/pokaz.php");

        }

if ($dalej=="surf")

    {

    include("zawartosc/surf.htm");

    }

if ($dalej=="maile")

    {

    include("zawartosc/maile.html");

    }

if ($dalej=="inne")

    {

    include("zawartosc/inne.php");

    }

if ($dalej=="systemy")

    {

    include("zawartosc/systemy.php");

    }

.... etc...


Czy da sie zrobic tak zeby nie pisac tak dlugiego kodu i skrocic to jakos zeby sam pobieral nazwe z katalogu. powiedzmy mam takich 50 linijek z katalogiem zawartosc, mozna jakos to w funkcji napisac...

Z gory dziekuje bardzo za pomoc

pozdr
Omega
Po pierwsze skożystaj z instrukcji switch... a po drugie powiedz o co ci dokładnie chodzi?questionmark.gif :?
mumiak
hm jestem poczatkujace to po pierwsze.

a chodzi mi dokladnie o skrocenie tego kodu
zeby nie pisac ciagle tego
Kod
if ($dalej=="xxx")

   {

   include("zawartosc/xxx.php");

   }


a te "xxx" to zawartosc katalogu "zawartosc"

mozesz mi to napisac?questionmark.gif
Omega
Pierwsza sprawa:
pisz code zamykaj tak jak znaczniki HTML...

Druga sprawa, napisz po prostu:
[php:1:b822083736]<?php
include("zawartosc/$dalej.php");
?>[/php:1:b822083736]
i powinno działać...
mumiak
Cytat
Druga sprawa, napisz po prostu:
[php:1:fea8fe4ff0]<?php
include("zawartosc/$dalej.php");  
?>[/php:1:fea8fe4ff0]
i powinno działać...


No tak ale nadal moj kod bedzie dlugi.
Zmienna $dalej musi pobierac wartosc z katalogu "zawartosc" i musi byc w petli, mam racje? Tylko jak to napisac.

Dzieki juz mi pomogles biggrin.gif:D:D Jeszcze tylko jak pobrac te nazwy z katalogu?questionmark.gif
Omega
[php:1:c610fed608]<?php
$katalog="./news/";
$uchwyt=opendir($katalog);
while($element = readdir($uchwyt))
{
if ($element!='.' and $element !='..')$elementy[] = $element;
}
closedir($uchwyt);
?>[/php:1:c610fed608]

Takim sposobem masz w tablicy $elementy wszystkie pliki z katalogu news...

Mam nadzieje że o to chodziło... biggrin.gif
GeoS
Sprawdz to:

[php:1:0ebb619645]<?php

$k = $_GET['dalej'];
$dir = 'zawartosc/';

if(is_file($dir . $k) && !ereg('..',$k))
{
include($dir . $k);
}
else
{
include('baner1.htm');
include('news/news.php');
}

?>[/php:1:0ebb619645]

W tym wypadku zawsze dolaczy Ci ten plik co trzeba i bedziesz mial zabezpieczenie przed wychodzeniem do katalogow nadrzednych aaevil.gif

Mam nadzieje, ze sie nigdzie nie pomylilem.
mumiak
Pisze tak:
[php:1:6bfa81d2ea]
<?php

$k = $_GET['dalej'];
$dir = 'zawartosc/';

if(is_file($dir . $k) && !ereg('..',$k))
{
include($dir . $k.htm);
}

if ($dalej=="")
{
include('baner1.htm');
include('http://192.168.1.111/~nowy%20folder/news/news.php');
}

?>[/php:1:6bfa81d2ea]

jak jest index.php newsy sie wyswietlaja baner tez, ale jak zmienie adres na np. index?dalej=kurs, gdzie kurs.htm znajduje sie w folderze zawartosc nic sie nie pojawia sad.gif

Albo tez tak chodz to pewnie calkiem zle
[php:1:6bfa81d2ea]
<?php
$katalog="./news/";
$uchwyt=opendir($katalog);
while($element = readdir($uchwyt))
{
if ($element!='.' and $element !='..')$elementy[] = $element;
}
closedir($uchwyt);


$k = $_GET['dalej'];

if ($dalej=="")
{
include('baner1.htm');
include('http://192.168.1.111/~nowy%20folder/news/news.php');
}

if ($dalej=="$element")
(
include('zawartosc/$dalej.htm')
)
?>[/php:1:6bfa81d2ea]

i tutaj blad wyskakuje ze nie ma takiego pliku sad.gifsad.gif

Jesli nadal jestescie chetni mi pomoc bede wdzieczny
pozdr
borec
Sprobuj tak:

[php:1:de585195d2]<?php

$k = $_GET['dalej'];
$dir = 'zawartosc/';

if ($dalej=="")
{
include('baner1.htm');
include('http://192.168.1.111/~nowy%20folder/news/news.php');
}
else {
if(is_file($dir . $k.htm) && !ereg('..',$k)) { include($dir . $k.htm); }
else { echo "Nie można odnaleźć strony. Błąd 404."; }
}

?> [/php:1:de585195d2]
mumiak
No i wyswietla mi sie ten komunikat "Nie można odnaleźć strony. Błąd 404. "
Tak jakby nazw z katalogu nie pobieralo sad.gifsad.gif
borec
moze zly dir podales, sprobuj bezwzgledny
mumiak
dir jest raczej dobry bo jak zrobie zwykle
[php:1:e62e8df889]
if ($dalej=="cos");
(
include("zawartosc/cos.htm")
)
[/php:1:e62e8df889]
to wszystko dziala...
KaMeLeOn
Sprawdzaj bezpośrednio z superglobali, nie rób kopii zmiennych...
[php:1:0930464359]<?php
$katalog = 'zawartosc/';
if( isset($katalog . $_GET['dalej'] . '.htm') && file_exists($katalog . $_GET['dalej'] . '.htm') );
(
include $katalog . $_GET['dalej'] . '.htm';
)
?>[/php:1:0930464359]
Seth
borec: Twoj podpis nie jest zgodny z regulaminem. Prsze jak najszybciej go zmienic.
LeWaR
Cytat
Pisze tak:
[php:1:7824815d89]
<?php

{
   include('baner1.htm');
   include('http://192.168.1.111/~nowy%20folder/news/news.php');
}

?>[/php:1:7824815d89]

includować to można z lokalnego dysku, a nie po ip czy przez http czy cokolwiek innego...
mumiak
Cytat
Sprawdzaj bezpośrednio z superglobali, nie rób kopii zmiennych...
[php:1:96729e4c4a]<?php
$katalog = 'zawartosc/';
if( isset($katalog . $_GET['dalej'] . '.htm') && file_exists($katalog . $_GET['dalej'] . '.htm') );
(
 include $katalog . $_GET['dalej'] . '.htm';
)
?>[/php:1:96729e4c4a]


Ok tylko tu jest blad w 3 linijce
Kod
Parse error: parse error, unexpected '.', expecting ',' or ')' in c:usrkrasnalwwwnowy folderindex.php on line 60

probuje wpisac nawias gdzies ale caly czas to samo, mozesz pomoc?questionmark.gif

pozdr
LeWaR
Cytat
[php:1:feea2b1b96]<?php
$katalog = 'zawartosc/';
if( isset($katalog . $_GET['dalej'] . '.htm') && file_exists($katalog . $_GET['dalej'] . '.htm') );
(
 include $katalog . $_GET['dalej'] . '.htm';
)
?>[/php:1:feea2b1b96]

Na początek nawiasy:
[php:1:feea2b1b96]<?php
$katalog = 'zawartosc/';
if( isset($katalog . $_GET['dalej'] . '.htm') && file_exists($katalog . $_GET['dalej'] . '.htm') );
{
include $katalog . $_GET['dalej'] . '.htm';
}
?>[/php:1:feea2b1b96]
Widzisz różnice?
KaMeLeOn
Na końcu 3 linijki jest niepotrzebny średnik... Ot literówka...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.