Ostatnio postanowiłem stworzyć sobie coś na styl cms'a. No więc wygrzebałem w sieci tutorial na temat systemu newsów wraz z PA. Tutaj link do niego(jeśli takie linki są niedozwolone to przepraszam, ale chcę jak najlepiej przedstawić mój problem). Lecz nie w tym rzecz. Postanowiłem sobie przerobić ten skrypt pod podstrony i wyszło mi coś takiego:
<? ?> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=UTF-8"> <title>PODSTRONY - panel administratora</title> </head> <body> <? { if($_POST['pass']=='haslo') { $_SESSION['admin']='ok'; } } { echo '<form method="POST" action="admin.php"> <p align="center"> Niestety nie jesteś zalogowany.<br> Proszę podać hasło:<br> <input type="password" name="pass" size="20"><br> <input type="submit" value="OK"></p> </form>'; } { $_SESSION['admin']=''; } if($_SESSION['admin']=='ok') { ?> <table border="1" width="600" align="center"> <tr> <td align="center"><b>PANEL ADMINISTRATORA - PODSTRONY</b></td> </tr> <tr> <td align="center"> <a href="admin.php">Strona główna</a> | <a href="admin.php?podstrony=pokaz">Pokaż podstronę</a> | <a href="admin.php?podstrony=dodaj">Dodaj podstronę</a></td> </tr> <tr> <td align="center"> <? { { } } { echo '<form method="POST" action="admin.php?podstrony=dopisz"> <table border="0" width="100%"> <tr> <td>Tytuł:</td> <td><input type="text" name="tytul" size="64"></td> </tr> <tr> <td>Treść: </td> <td><textarea rows="5" name="tresc" cols="42"></textarea></td> </tr> <tr> <td> </td> <td><input type="submit" value="DODAJ"></td> </tr> </table> </form>'; } { $id=$_GET['id']; <table border="0" width="100%"> <tr> <td>Tytuł:</td> <td><input type="text" name="tytul" size="64" value="'.$wiersz['tytul'].'"></td> </tr> <tr> <td>Treść: </td> <td><textarea rows="5" name="tresc" cols="42">'.$wiersz['tresc'].'</textarea></td> </tr> <tr> <td> </td> <td><input type="submit" value="EDYTUJ"></td> </tr> </table> </form>'; } { $tytul=$_POST['tytul']; $tresc=$_POST['tresc']; } { $tytul=$_POST['tytul']; $tresc=$_POST['tresc']; $id=$_GET['id']; echo 'Pomyślnie wyedytowałem podstronę! <br> Jego nowy tytuł to: <b>'.$tytul.'</b>, a treść: <b>'.$tresc.'</b>'; } { $id=$_GET['id']; } W górnej części znajduje się menu, które pozwoji ci zarządzać podstronami w twoim serwise.<br>'; ?> </td> </tr> <tr> <td align="right"><a href="admin.php?admin=wyloguj">WYLOGUJ >></a></td> </tr> </table> <? } ?> </body> </html>
<? $strona=$_GET['strona']; $adres="SELECT * FROM podstrony WHERE tytul='$strona'"; { } ?>
A do index'u dodaję:
<? include('podstrona.php'); ?>
I teraz mam parę pytań:
1. Jakie jest bezpieczeństwo tego skryptu, czy istnieje możliwość włamania się do PA?
2. Obydwa skrypty (podstron i newsów) są podobne, można je dzięki temu jakoś skrócić?
3. Jak widać podstrony są wywoływane poprzez ?strona=tytuł_podstrony, ale co jeśli użytkownik wstawi polskie znaki i spacje do tytułu? Myślałem nad dodaniem dodatkowego pola do tablicy podstrony o nazwie np. "adres" i dodawanie do niej tego co do tytul tyle że ze spacjami zamienionymi na "_", polskimi znakami na te bez ogonków i usuniętą resztą znaków jakie nie mogą się znaleźć w adresie. Co o tym sądzicie można to zrobić prościej?
Na razie tyle, jak będę miał jeszcze jakieś wątpliwości to nie zawaham się napisać :]