![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Napisałem prosty skrypt pełniący rolę cmsa do tworzenia małych stron i wizytówek internetowych. Proszę o przetestowanie, ocenienie oraz wskazanie błędów, które popełniłem, ponieważ dopiero uczę się php, oraz wskazówek co do dalszego rozwoju skryptu.
adres: http://cms.wloszczowa.cba.pl/ adres do panelu administracyjnego: http://cms.wloszczowa.cba.pl/admin login: admin hasło: admin ps. oczywiście nie jestem autorem wszystkich szablonów, przystosowałem je tylko do potrzeb skryptu. Ten post edytował tadek92 17.12.2008, 22:26:06 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 3 Dołączył: 10.12.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Tak na szybko:
-przy edycji treści powinieneś ładować wszystkie dane do pól w tej chwili wyświetlają mi się puste inputy -użyj funkcji nl2br();" title="Zobacz w manualu PHP" target="_manual w textarea +bardzo podoba mi się projekt cześci administracyjnej +validator nie wypluwa błędów |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Szkoda, że nie dałeś linka do kodu php, bo na razie za dużo nie ocenimy.
Co do admina: zwiększyłbym wielkość formularzy i dodałbym te edycję sloganów, tytułów do jednej podstrony. Chodzi o to żeby pogrupować co odnosi się do tego, a co do tego. Popraw wyświetlanie skórek w "Zmień szablon". Daj dwa w jednej linii, a nie jak teraz jest pojedynczo. Wysyłanie logina i hasła $_GET'em w formularzu to poważna luka bezpieczeństwa! Tylko kusisz hakerów do zabawy. Dlaczego w formularzach nie ma treści, która jest aktualnie dodana? Po wpisaniu błędnej wartości dla ?page= psuje Ci się kodowanie znaków, a na stronie powinien zostać wyświetlony jakiś komunikat o nieistniejącej podstronie. Czekam na kod php i oczywiście życzę powodzenia! (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
zgrabnie zrobione, tylko kosmetyczne poprawki... w panelu administracyjnym można by dorzucić opcję dodania kolejnej strony (oczywiście jakiś limit narzucić coby się skurki nie rozjeżdżały) a linki do istniejących w pętli można wyświetlić... skoro to konto testowe to na nim mógłbyś zablokować zmianę hasła bo ktoś może psikusa zrobić żeby inni nie testowali przez chwilę ;p - przywróciłem oczywiście stare... projekt starannie wykonany...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Oto kod panelu administracyjnego, nie wiedziałem jak zrobić system logowania i zrobiłem tak jak umiałem:
index.php Kod <?php $nazwa_pliku = "baza/haslo.n"; $file = fopen($nazwa_pliku, "r"); $pass = fread($file, filesize($nazwa_pliku)); fclose($file); ?> <?php $login = $_GET["login"]; $haslo = $_GET["haslo"]; if ($login=="admin") { if ($haslo==$pass) { header('Location: admin.php'); } else { echo " <html> <head> <meta http-equiv=Content-Type content=text/html; charset=UTF-8 /> <meta http-equiv=Content-Language content=pl /> <meta name=Keywords content=słowa, kluczowe, oddzielone, przecinkami /> <meta name=Description content=krótki opis zawartości strony /> <meta name=Robots content=ALL /> <meta name=Author content=Tadeusz Jedliczka /> <link rel=stylesheet href=style.css type=text/css /> <link rel=stylesheet href=image.css type=text/css /> <title>Panel administracyjny</title> </head> <body> <div id=header> <ul id=nav> <li><a href=../index.php target=_blank>Strona główna</a></li> </ul> <div id=title>Panel administracyjny</div> <div id=slogan>Zarządzaj systemem i edytuj swoją stronę.</div> </div> <!-- end header --> <div id=path> </div> <div id=maincontent> <h2>Musisz być zalogowany, aby zarządzać stroną!</h2> </div> <div id=sidecontent> <h2>Zaloguj się:</h2> Błędne hasło <form method=GET> login <input type=text name=login> hasło <input type=password name=haslo> <input type=submit value=Zaloguj> </form> </div> <div id=footer> <div id=copyrightdesign> Autor skryptu - Tadeusz Jedliczka </div> <div id=footercontact> </div> </div> </body> </html> "; } } else { echo " <html> <head> <meta http-equiv=Content-Type content=text/html; charset=UTF-8 /> <meta http-equiv=Content-Language content=pl /> <meta name=Keywords content=słowa, kluczowe, oddzielone, przecinkami /> <meta name=Description content=krótki opis zawartości strony /> <meta name=Robots content=ALL /> <meta name=Author content=Tadeusz Jedliczka /> <link rel=stylesheet href=style.css type=text/css /> <link rel=stylesheet href=image.css type=text/css /> <title>Panel administracyjny</title> </head> <body> <div id=header> <ul id=nav> <li><a href=../index.php target=_blank>Strona główna</a></li> </ul> <div id=title>Panel administracyjny</div> <div id=slogan>Zarządzaj systemem i edytuj swoją stronę.</div> </div> <!-- end header --> <div id=path> </div> <div id=maincontent> <h2>Musisz być zalogowany, aby zarządzać stroną!</h2> </div> <div id=sidecontent> <h2>Zaloguj się:</h2> <form method=GET> login <input type=text name=login> hasło <input type=password name=haslo> <input type=submit value=Zaloguj> </form> </div> <div id=footer> <div id=copyrightdesign> Autor skryptu - Tadeusz Jedliczka </div> <div id=footercontact> </div> </div> </body> </html>"; } ?> admin.php Kod <?php if( eregi( '/admin/', $_SERVER['HTTP_REFERER'] ) ) { echo "<html> <head> <meta http-equiv=Content-Type content=text/html; charset=UTF-8 /> <meta http-equiv=Content-Language content=pl /> <meta name=Keywords content=słowa, kluczowe, oddzielone, przecinkami /> <meta name=Description content=krótki opis zawartości strony /> <meta name=Robots content=ALL /> <meta name=Author content=Tadeusz Jedliczka /> <link rel=stylesheet href=style.css type=text/css /> <link rel=stylesheet href=image.css type=text/css /> <title>Panel administracyjny</title> </head> <body> <div id=header> <ul id=nav> <li><a href=index.php>Wyloguj</a></li> <li><a href=admin.php?page=8>Zmień hasło</a></li> <li><a href=../index.php target=_blank>Strona główna</a></li> </ul> <div id=title>Panel administracyjny</div> <div id=slogan>Zarządzaj systemem i edytuj swoją stronę.</div> </div> <!-- end header --> <div id=path> </div> <div id=maincontent> "; ciąg dalszy admin.php Kod $page = $_GET["page"]; switch ($page) { case '1' : $pole1 = trim($_POST['pole1']); if(empty($pole1)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nowa nazwa: <input type="text" name="pole1" style="width: 200px;" /><input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = $pole1."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/nazwa.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; case '2' : $pole1 = trim($_POST['pole1']); if(empty($pole1)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nowy slogan: <input type="text" name="pole1" style="width: 200px;" /><input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = $pole1."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/slogan.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; case '3' : $pole1 = trim($_POST['pole1']); if(empty($pole1)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Zwięzły opis strony: <input type="text" name="pole1" style="width: 200px;" /><input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = $pole1."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/opis.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; case '4' : $pole1 = trim($_POST['pole1']); if(empty($pole1)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Słowa kluczowe oddzielone przecinkami: <input type="text" name="pole1" style="width: 200px;" /><input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = $pole1."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/kluczowe.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; ciąg dalszy admin.php Kod case '5' : $pole1 = trim($_POST['pole1']); $pole2 = trim($_POST['pole2']); $pole3 = trim($_POST['pole3']); if(empty($pole1) and empty($pole2) and empty($pole3)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nazwa: <input type="text" name="pole3" style="width: 200px;" /> Nagłówek <input type="text" name="pole1" style="width: 200px;" /> Treść <textarea name="pole2" style="width: 200px; height: 100px;"> </textarea> <input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = "<h2>".$pole1."</h2><p>".$pole2."</p>\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/1.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); // dane pochodzące z formularza $dane = $pole3."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/1name.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; case '6' : $pole1 = trim($_POST['pole1']); $pole2 = trim($_POST['pole2']); $pole3 = trim($_POST['pole3']); if(empty($pole1) and empty($pole2) and empty($pole3)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nazwa: <input type="text" name="pole3" style="width: 200px;" /> Nagłówek <input type="text" name="pole1" style="width: 200px;" /> Treść <textarea name="pole2" style="width: 200px; height: 100px;"> </textarea> <input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = "<h2>".$pole1."</h2><p>".$pole2."</p>\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/2.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); // dane pochodzące z formularza $dane = $pole3."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/2name.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; ciąg dalszy admin.php Kod case '7' : $pole1 = trim($_POST['pole1']); $pole2 = trim($_POST['pole2']); $pole3 = trim($_POST['pole3']); if(empty($pole1) and empty($pole2) and empty($pole3)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nazwa: <input type="text" name="pole3" style="width: 200px;" /> Nagłówek <input type="text" name="pole1" style="width: 200px;" /> Treść <textarea name="pole2" style="width: 200px; height: 100px;"> </textarea> <input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = "<h2>".$pole1."</h2><p>".$pole2."</p>\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/3.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); // dane pochodzące z formularza $dane = $pole3."\n"; // przypisanie zmniennej $file nazwy pliku $file = "baza/3name.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane zostały zapisane! "; } ; break; case '8' : $pole1 = trim($_POST['pole1']); if(empty($pole1)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nowe hasło <input type="password" name="pole1" style="width: 200px;" /><input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = $pole1; // przypisanie zmniennej $file nazwy pliku $file = "baza/haslo.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Hasło zostało zmienione! "; } ; break; ciąg dalszy admin.php Kod case '9' : $pole1 = trim($_POST['pole1']); if(empty($pole1)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Wybierz i zaznacz szablon, którego chcesz użyć: <img src="img/bialy.jpg" /><input type="radio" name="pole1" value="bialy" />Biały <img src="img/biznes.jpg" /><input type="radio" name="pole1" value="biznes" />Biznes <img src="img/braz.jpg" /><input type="radio" name="pole1" value="braz" />Brąz <img src="img/cien.jpg" /><input type="radio" name="pole1" value="cien" />Cień <img src="img/czerwony.jpg" /><input type="radio" name="pole1" value="czerwony" />Czerwony <img src="img/droga.jpg" /><input type="radio" name="pole1" value="droga" />Droga <img src="img/elegancja.jpg" /><input type="radio" name="pole1" value="elegancja" />Elegancja <img src="img/klasa.jpg" /><input type="radio" name="pole1" value="klasa" />Klasa <img src="img/kolumna.jpg" /><input type="radio" name="pole1" value="kolumna" />Kolumna <img src="img/komputer.jpg" /><input type="radio" name="pole1" value="komputer" />Komputer <img src="img/kwiaty.jpg" /><input type="radio" name="pole1" value="kwiaty" />Kwiaty <img src="img/lato.jpg" /><input type="radio" name="pole1" value="lato" />Lato <img src="img/lekki.jpg" /><input type="radio" name="pole1" value="lekki" />Lekki <img src="img/miasto.jpg" /><input type="radio" name="pole1" value="miasto" />Miasto <img src="img/moda.jpg" /><input type="radio" name="pole1" value="moda" />Moda <img src="img/niebo.jpg" /><input type="radio" name="pole1" value="niebo" />Niebo <img src="img/notatnik.jpg" /><input type="radio" name="pole1" value="notatnik" />Notatnik <img src="img/nowi.jpg" /><input type="radio" name="pole1" value="nowi" />Nowi <img src="img/nowo.jpg" /><input type="radio" name="pole1" value="nowo" />Nowo <img src="img/okragly.jpg" /><input type="radio" name="pole1" value="okragly" />Okrągły <img src="img/oliwka.jpg" /><input type="radio" name="pole1" value="oliwka" />Oliwka <img src="img/rozrywka.jpg" /><input type="radio" name="pole1" value="rozrywka" />Rozrywka <input type="submit" value="Zapisz" /> </form> '; } else { // dane pochodzące z formularza $dane = $pole1; // przypisanie zmniennej $file nazwy pliku $file = "baza/theme.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Szablon został zmieniony! "; } ; break; case '10' : $pole1 = trim($_POST['pole1']); $pole2 = trim($_POST['pole2']); $pole3 = trim($_POST['pole3']); $pole4 = trim($_POST['pole4']); $pole5 = trim($_POST['pole5']); $pole6 = trim($_POST['pole6']); $pole7 = trim($_POST['pole7']); if(empty($pole1) and empty($pole2) and empty($pole3)) { // prosty formularz zawierający dwa pola echo '<form action="" method="post"> Nazwa firmy <input type="text" name="pole1" style="width: 200px;" /> Imię i nazwisko: <input type="text" name="pole2" style="width: 200px;" /> Ulica i nr lokalu: <input type="text" name="pole3" style="width: 200px;" /> Kod pocztowy <input type="text" name="pole4" style="width: 200px;" /> Miasto <input type="text" name="pole5" style="width: 200px;" /> Telefon: <input type="text" name="pole6" style="width: 200px;" /> e-mail: <input type="text" name="pole7" style="width: 200px;" /> <input type="submit" value="Zapisz" /> </form>'; } else { // dane pochodzące z formularza $dane = "<h2>".$pole1."</h2><p><b>".$pole2." ul. ".$pole3." ".$pole4 . $pole5." ".$pole6." ".$pole7."</b></p>"; // przypisanie zmniennej $file nazwy pliku $file = "baza/kontakt.n"; // uchwyt pliku, otwarcie do dopisania $fp = fopen($file, "w"); // blokada pliku do zapisu flock($fp, 2); // zapisanie danych do pliku fwrite($fp, $dane); // odblokowanie pliku flock($fp, 3); // zamknięcie pliku fclose($fp); echo "Dane kontaktowe zostały zapisane! "; } ; break; koniec admin.php Kod default : echo "<h2>Witaj w panelu administracyjnym!</h2>";
} echo " </div> <div id=sidecontent> <h2>Nawigacja</h2> <ul> <li><a href=admin.php?page=1>Edytuj nazwę strony</a></li> <li><a href=admin.php?page=2>Edytuj slogan</a></li> <li><a href=admin.php?page=3>Edytuj opis strony</a></li> <li><a href=admin.php?page=4>Edytuj słowa kluczowe</a></li> <li><a href=admin.php?page=5>Edytuj stronę 1</a></li> <li><a href=admin.php?page=6>Edytuj stronę 2</a></li> <li><a href=admin.php?page=7>Edytuj stronę 3</a></li> <li><a href=admin.php?page=10>Edytuj dane kontaktowe</a></li> <li><a href=admin.php?page=9>Zmień szablon</a></li> </ul> </div> <div id=footer> <div id=copyrightdesign> Autor skryptu - Tadeusz Jedliczka </div> <div id=footercontact> </div> </div> </body> </html> "; } else {echo "Nie masz uprawnień";} ?> |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
A jak wyswietlasz szablon na stronie glownej??
Za pomoca styla css czy jak?? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 3 Dołączył: 10.12.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
^
zobacz do kodu najpierw zapisuje wszystkie dane do plików, w plikach dane tekstowe są otagowane odpowiednimi znacznikami, potem wszystko sprowadza się do odczytu odpowiedniego pliku css który narzuca formatowanie i tworzy szablon. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Tyle to ja tez wiem bo mam tak samo w moim nowym cms'ie tylko ze na bazie pytanie jednak bylo troche inne czy moglby podac kod index.php bo tu jest tylko admin.php, przeciez ten kod jest bardzo prosty.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
To jest plik index.php który wczytuje dany szablon:
Kod <?php $nazwa_pliku = "admin/baza/theme.n"; $templates = fopen($nazwa_pliku, "r"); $theme = fread($templates, filesize($nazwa_pliku)); fclose($templates); ?> <?php include("themes/$theme/index.php"); ?> a to plik index.php przykładowego szablonu: Kod <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Language" content="pl" /> <meta name="Keywords" content="<?php $nazwa_pliku = "admin/baza/kluczowe.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Słowa kluczowe"; else echo $dane; fclose($plik); } else echo "Słowa kluczowe"; } else echo "Słowa kluczowe."; ?>" /> <meta name="Description" content="<?php $nazwa_pliku = "admin/baza/opis.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Opis"; else echo $dane; fclose($plik); } else echo "Opis"; } else echo "Opis."; ?>" /> <meta name="Robots" content="ALL" /> <meta name="Author" content="Tadeusz Jedliczka" /> <link href="themes/bialy/style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" type="text/css" href="themes/bialy/image.css" /> <title><?php $nazwa_pliku = "admin/baza/nazwa.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Nazwa"; else echo $dane; fclose($plik); } else echo "Nazwa"; } else echo "Nazwa."; ?></title> </head> <body> <div id="header"> <ul id="nav"> <li><a href="index.php?page=1"><?php $nazwa_pliku = "admin/baza/1name.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "link1"; else echo $dane; fclose($plik); } else echo "link1"; } else echo "link1."; ?></a></li> <li><a href="index.php?page=2"><?php $nazwa_pliku = "admin/baza/2name.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "link2"; else echo $dane; fclose($plik); } else echo "link2"; } else echo "link2."; ?> </a></li> <li><a href="index.php?page=3"> <?php $nazwa_pliku = "admin/baza/3name.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "link3"; else echo $dane; fclose($plik); } else echo "link3"; } else echo "link3."; ?> </a></li> <li><a href="index.php?page=4"> Kontakt </a></li> </ul> <div id="title"><?php $nazwa_pliku = "admin/baza/nazwa.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Nazwa"; else echo $dane; fclose($plik); } else echo "Nazwa"; } else echo "Nazwa."; ?></div> <div id="slogan"><?php $nazwa_pliku = "admin/baza/slogan.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Slogan"; else echo $dane; fclose($plik); } else echo "Slogan"; } else echo "Slogan"; ?></div> </div> ciąg dalszy pliku szablonu index.php Kod <div id="path">
</div> <div id="maincontent"> <!-- Tutaj zaczyna się treść --> <?php $page = $_GET["page"]; switch ($page) { case '1' : $nazwa_pliku = "admin/baza/1.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Odczyt danych z pliku nie powiódł się..."; else echo $dane." "; fclose($plik); } else echo "Nie mogę nawiązać połączenia z plikiem..."; } else echo "Z pliku nie można odczytać informacji lub on nie istnieje..."; ; break; case '2' : $nazwa_pliku = "admin/baza/2.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Odczyt danych z pliku nie powiódł się..."; else echo $dane." "; fclose($plik); } else echo "Nie mogę nawiązać połączenia z plikiem..."; } else echo "Z pliku nie mozna odczytać informacji lub on nie istnieje..."; ; break; case '3' : $nazwa_pliku = "admin/baza/3.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Odczyt danych z pliku nie powiódł się..."; else echo $dane." "; fclose($plik); } else echo "Nie mogę nawiazać połączenia z plikiem..."; } else echo "Z pliku nie można odczytać informacji lub on nie istnieje..."; ; break; case '4' : $nazwa_pliku = "admin/baza/kontakt.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Odczyt danych z pliku nie powiódł się..."; else echo $dane." "; fclose($plik); } else echo "Nie mogę nawiazać połączenia z plikiem..."; } else echo "Z pliku nie można odczytać informacji lub on nie istnieje..."; ; break; default: $nazwa_pliku = "admin/baza/1.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Odczyt danych z pliku nie powiódł się..."; else echo $dane." "; fclose($plik); } else echo "Nie mogę nawiązać połączenia z plikiem..."; } else echo "Z pliku nie można odczytać informacji lub on nie istnieje...";; } ?> <!-- Tutaj kończy się treść--> </div> <div id="sidecontent"> <?php $nazwa_pliku = "admin/baza/opis.n"; if (is_readable($nazwa_pliku)) { if ($plik = fopen($nazwa_pliku, "r")) { $dane = fread($plik, filesize($nazwa_pliku)); if ($dane === FALSE) echo "Opis"; else echo $dane; fclose($plik); } else echo "Opis"; } else echo "Opis."; ?> </div> <div id="footer"> Skrypt W-CMS - Tadeusz Jedliczka Szablon: Opracowanie <a href="http://www.ittechnology.us/">Marketing w Internecie</a>| Design by <a href="http://ContentedDesigns.com">Contented Designs</a> </div> <div id="footercontact"> </div></div></body></html> |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
- brak przejrzystości - po co jedna kategoria menu żeby zmienić słowa kluczowe?
- do formularzy nie wczytują się aktualne dane - nie widzę, gdzie można dodać podstronę czy pozycjędo menu - nie można nigdzie wyedytować kodu HTML, a dla mnie to podstawa Ogólnie nie za dużo tego - nie nazwałbym tego CMS'em, tylko raczej panelem edycji niektórych elementów statycznej strony. Dla mnie CMS ma mi umożliwić połączenie dowolnego kodu HTML/CSS z treścią w dowolnej kategorii. Na początek powinineś zastanowić się nad jakimś układem szablonów, tak, żeby stronę można było edytować np. tak: - to mój szablon dla całej strony - można go w każdej chwili zmodyfikować dla dowolnej kategorii (np. dla strony drugiej użyć dwóch kolumn), a kategorii może być dowolna ilość, gdy nie ma szablonu wczytywany jest po prostu domyślny - na podobnej zasadzie powinieneś załączać treść, pliki stylów, grafikę, meta-tagi etc - lecisz po kolei: - wczytujesz pliki konfiguracyjne, klasy, funkcje etc - generujesz ścieżki, adresy itp. - po to, żeby przy edycji treści można było dać <img src="obrazek.jpg" i pomimo umieszczania grafiki w różnych folderach to działało - autoryzacja i nadawanie uprawnień - jeśli jest taka potrzeba - generator menu - sam zlicza wszystkie kategorie i podkategorie, wsadza to w templat HTML i wypluwa jako zmienną {MENU} - podobnie treść główna, prawa, stopka etc. - każdy element też ma swoje templaty HTML - generator metatagów - czyli title, description, keywords - generuje na podstawie treści, ustawień użytkownika lub ustawień domyślnych - generator css - sprawdza, czy są style dla danej kategorii/strony i dołącza je dynamicznie - na końcu wszystkie zmienne podstawiasz do templatu głównego - jeśli nie ma takiego dla danej kategorii, to użyty jest default Tak ja to widzę i powinieneś iść mniej więcej w tą stronę - i musisz się nauczyć operować na zmiennych, a nie echować wszystko i koniecznie oddzielać warstwę prezentacyjną od treści - nie należy łączyć kodu PHP z kodem HTML, silnik CMS'a ma wygenerować ZMIENNE, które dopiero na samym końcu łączysz z kodem html - w moim CMS'ie echo występuje tylko raz. Zalety są olbrzymie: nie musisz szukać tagów html w kodzie php, mniej kodu, szybciej, wydajniej - masz kontrolę nad treścią bo możesz do zmiennych zarówno dopisywać, jak i je nadpisywać - np. treść zastąpić komunikatem błędu. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za opinie. Chciałbym się dowiedzieć co powinienem zmienić w tym skrypcie prosiłbym o jakąś listę wskazówek zaczynając od najistotniejszych zmian skończywszy na mniej ważnych.
ps. Mam zamiar w niedalekiej przyszłości dodać skrypt galerii nad którym obecnie pracuję, zastanawiam się nad forum i systemem newsów, ale najpierw muszę się dowiedzieć jakie błędy popełniłem tworząc ten skrypt. Ten post edytował tadek92 18.12.2008, 15:14:42 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Przepisac na baze Mysql albo dodac taka mozliwosc to raz dwa tak jak mowil poprzednik uzyc systemu szablonow.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mogę przepisać na MySQL, ale wolałbym na plikach tekstowych gdyż chciałbym, aby instalacja była jak najmniej skomplikowana w moim przpadku wystarczy przypisać odpowiednie chmody plikom i tyle. Systemu szablonów użyłbym z przyjemnością tylko właśnie nie wiem jak się za to zabrać, bo dopiero się uczę php.
|
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A czemu instalacja byłaby skomplikowana? Zamiast chmodów plikom ładujesz do bazy przygotowaną strukturę. Nic więcej. No, jeszcze dane autoryzacyjne dopisujesz. A np. w przypadku SQLite'a wystarczy kopiować jeden plik i masz z głowy. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Możliwości plików w pewnym momencie się wyczerpią albo dojdziesz do wniosku, że aby coś osiągnąć z plikami, trzeba się bardzo narobić. W ich przypadku odczyt jest błyskawiczny, ale jeśli chodzi o dodawanie nowych danych/aktualizację, to już zaczynają się nieraz schody. Jest to jednak uzależnione od ilości danych i faktycznie - czasem może to być optymalne rozwiązanie. Ale czasem. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
No jednak mnie przekonałeś do przepisania tego skryptu do MySQL. Tylko czy watro teraz bo nie wiem czy będę musiał bardzo zmieniać ten skrypt czy raczej napisać od nowa. Proszę o skazanie błędów w moim skrypcie co byście zmienili.
|
|
|
![]()
Post
#16
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat czy raczej napisać od nowa Napisz od nowa. Wciskanie całego skryptu w jeden plik raczej nie jest efektywne i jeśli projekt się rozrośnie - będą problemy. Do tego, praca grupowa będzie uciążliwa tak samo, jak wydawanie uaktualnień/łatek no chyba, że wszędzie będzie diff. Poza tym, jeśli odpowiednio zaprojektujesz strukturę, będziesz miał mniej do klepania, gdyż skupisz się na modułach. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli mam od nowa napisać tylko od czego zacząć: od struktury bazy danych, systemu szablonów czy funkcji lub jeszcze czegoś innego. Chciałbym się jeszcze dowiedzieć jakie możliwości powinien według was posiadać ten skrypt.
|
|
|
![]()
Post
#18
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A mało to masz CMS-ów do inspiracji? Znajdź sobie dema w sieci i pobaw się trochę.
Najlepiej na gotowych problemach pisać biblioteki - załóż sobie, że stawiasz jakąś stronę i dobieraj środki, których do niej potrzebujesz. Od czego zacząć? Hmm, strukturę bazy będziesz rozwijał wraz z zapotrzebowaniem na konkretne dane - zacznij od "rdzenia" CMS-a, wyświetlanie IMHO na końcu. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
No tak ma zacząć od rdzenia, a co ma być rdzeniem cmsa??
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Zwróć uwagę na mój post - rdzeń, czy jak kto woli silnik (pali licho nazwę) realizuje mniej więcej coś takiego:
1. Wejście - parametry z adresu, formularzy etc. 2. Obróbka - klasy i funkcje, które realizują określone zadania 3. Wyjście - wypluwanie różnych zmiennych Ja bym zaczął od wejścia i zmierzył się z klasą/funkcją do obróbki adresów. Adres przekazuje parametry do silnika, "goły" będzie np. w takiej postaci: subdomena.domena.pl/kategoria/podkategoria/słowo1;słowo2,parametr1,parametr2-numerstrony.html Po przepisaniu przez mode_rewrite: domena.pl/index.php?adres=subdomena/kategoria/podkategoria/słowo1;słowo2,parametr1,parametr2-numerstrony Wszystko trafia do jednego pliku index.php, teraz odbierasz ten adres: - i funkcja Ci tworzy tablicę $adres, gdzie masz wszystko ładnie posortowane i poukładane, niezależnie od adresu, jaki wpiszesz i możesz to łatwo wykorzystać. Podobną funkcję należy zrobić do generowania adresów. Następnie na tapetę możesz wziąć generator menu - robisz prosty templat na zasadzie: - i piszesz klasę/funkcję, która zwraca menu na podstawie struktury kategorii/podkategorii zapisanych w bazie. Nie muszę chyba mówić, że wszystko musi być elastyczne i umożliwiać łatwą rozbudowę/modyfikację z panelu administracyjnego. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 03:31 |