sprawdzanie poprawności kodu

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Louner
Nowy
Nowy
Posty: 89
Rejestracja: czw lut 03, 2005 6:20 pm
Kontakt:

sprawdzanie poprawności kodu

Post autor: Louner »

Mam pytanie. Czy ktoś mógłby spróbować doszukać się błędu w tym kodzie? Nie zawsze działa poprawnie i nie wiem, dlaczego.

[php]<?php
if($body==null)
{
include("./news/news.php");
echo('
<div align="right"><a href="/news/">Dodaj news (tylko osoby upoważnione)</a></div>');
}
else
{
include("./$body.php");
}
?>[/php]
viraptor
Zaczyna działać
Zaczyna działać
Posty: 633
Rejestracja: pn cze 28, 2004 12:58 pm
Kontakt:

Re: sprawdzanie poprawności kodu

Post autor: viraptor »

Nic nie wiemy o tym kodzie, poza tym, że istnieje - napisz konkretnie o co ci chodzi.
Louner
Nowy
Nowy
Posty: 89
Rejestracja: czw lut 03, 2005 6:20 pm
Kontakt:

Re: sprawdzanie poprawności kodu

Post autor: Louner »

Ehm.. Dokładnie o to, żeby zmienić ścieżkę do includowanej strony za pomocą kliknięcia w link zmieniającego wartość $body :)
Piotr Bandyk
Nowy
Nowy
Posty: 79
Rejestracja: sob lip 05, 2003 9:56 am
Lokalizacja: Poznań
Kontakt:

Re: sprawdzanie poprawności kodu

Post autor: Piotr Bandyk »

Spróbuj tak:

[php]<?php
if(!$body)
{
include("./news/news.php");
print '<div align="right"><a href="news.php">Dodaj news (tylko osoby upoważnione)</a></div>';
}
else
{
include("./$body.php");
}
?>[/php]

W drugiej części elsa zrób zapytanie sprawdzające czy dany plik istnieje. Jeżeli zmienne idą poprzez GET zrób $_REQUEST[body], tak dla bezpieczeństwa:).
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: sprawdzanie poprawności kodu

Post autor: Marek_bf »

NIGDY nie rób tak jak teraz ;) Nie można tworzyć ścieżki do pliku includowanego za pomocą przesyłanej zmiennej. W ten sposób nożna wykonać każdy skrypt z internetu podając w parametrze jego adres!
Louner
Nowy
Nowy
Posty: 89
Rejestracja: czw lut 03, 2005 6:20 pm
Kontakt:

Re: sprawdzanie poprawności kodu

Post autor: Louner »

Marek_bf pisze:NIGDY nie rób tak jak teraz ;) Nie można tworzyć ścieżki do pliku includowanego za pomocą przesyłanej zmiennej. W ten sposób nożna wykonać każdy skrypt z internetu podając w parametrze jego adres!
Rozumiemm.... Może znasz jakiś sposób zamienny? : ) Tzn skrypt o podobnym działaniu i bezpiecznej składni. : )
phpIker
Nowy
Nowy
Posty: 182
Rejestracja: śr lis 02, 2005 9:28 pm
Lokalizacja: Kraków

Re: sprawdzanie poprawności kodu

Post autor: phpIker »

Marek ma rację.
Można sprawdzić czy plik istnieję poprzez funkcję file_exists();
Poprawiłem też parę błędow w Twoim kodzie i dodałem odrazu sprawdzanie istnienia pliku.

pozdr.

[php]<?php
$body = $_GET['body'];

if ($body == "") {
echo '<div align="right"><a href="/news/">Dodaj news (tylko osoby upowa¿nione)</a></div>';
} elseif(file_exists($body)) {
include('./'.$body.'.php');
} else {
echo 'Error! Taki plik nie istnieje na serwerze!';
}
?>
[/php]
ODPOWIEDZ