![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Serdecznie dziękuję za wasze opinie i porady, chociaż zamierzam pozostać przy swojej wersji skryptu opartej nadal na plikach tekstowych, jednak zmodyfikuję go zgodnie ze wskazówkami zawartymi w waszych opiniach. Na obecną chwilę zmieniłem system logowania z obsługą sesji, sposób wyświetlania się miniaturek szablonów w panelu administracyjnym, oraz zmianę tytułu, sloganu, opisu i słów kluczowych dałem do jednej podstrony "konfiguracja strony". Zamierzam również dodać opcję dodawania nowych stron (jeszcze nie wiem jak, może Wy mi doradzicie), oraz prostą galerię zdjęć (nad którą właśnie pracuję).
|
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Na obecną chwilę zmieniłem system logowania z obsługą sesji, W tej chwili sesja nie działa. Być może trafiłem na zły moment (coś może robisz). ale logowanie działa tylko na 1 załadowanie strony. Co chwilę trzeba logować się z powrotem... |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
ps. (IMG:http://forum.php.pl/style_emoticons/default/sekret.gif) tą reklamę z google da się "zakryć" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - a w regulaminie który teraz z ciekawości przejrzałem nie widzę nic o tym że tego zabraniają (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
wystarczy, że rozciągniesz głównego diva na całą stronę na "absolute" a potem możesz "nałożyć" to na reklamę wklepując z-index:10 lub jakąś inną cyfrę wiekszą od 0... http://www.kurshtml.boo.pl/css/nakladanie,...cjonowanie.html Ten post edytował zegarek84 18.12.2008, 23:13:19 |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Już naprawiłem obsługę sesji:
http://cms.wloszczowa.cba.pl/ http://cms.wloszczowa.cba.pl/admin haslo admin login admin albo http://wloszczowa.kgb.pl/ http://wloszczowa.kgb.pl/admin haslo admin login admin |
|
|
![]()
Post
#25
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Edytuj stronę 1 Edytuj stronę 2 Edytuj stronę 3 A jak zechcę dodać kolejne i zrobić drzewko kategorii? Nie ustawiaj na sztywno liczby stron. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie chciałbym zrobić możliwość dodawania stron, ale nie wiem jak. Liczę na waszą pomoc.
|
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
http://blog.mwojcik.pl/2008/02/17/drzewa-k...-php-metoda-ip/ - ja robię tak, z czego dwie pierwsze kategorie wyświetlam w menu rozwijanym, a resztę na stronie. Do każdej kategorii mam możliwość przypisania:
1. Meta-danych - jeśli są pominięte, to wczytywane są z nadrzędnej kategorii i tak aż do strony glównej. Warto zadbać też o wsparcie dla SEO. 2. Plików CSS - najpierw wczytywany jest arkusz główny, potem dodatkowe - dzięki temu można nadpisywać style 3. Templatów HTML - dzięki temu można traktować każdą kategorię jak oddzielny serwis www, nie ma żadnego problemu, żeby np. zmienić liczbę kolumn - nie ma nic gorszego niż statyczne potwory typu php fusion 4. Modułów - typu: pobieralnia plików, artykuły, nowości, kursy walut etc. Daję użytkownikowi niesamowitą możliwość psucia serwisu. Jak webmaster nie zna się na CSS i HTML, to sam sobie winien. |
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 3 Dołączył: 26.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam dokonałem kilka modyfikacji w skrypcie.
Prosiłbym Was o przetestowanie tego skryptu. Oczekuję wskazania błędów i zaproponowania jakichś nowych rozwiązań. http://wloszczowa.kgb.pl http://wloszczowa.kgb.pl/admin/ login i haslo admin Dzisiaj skończyłem prace nad ulepszoną wersją systemu. W nowej wersji jest możliwość dodawania kolejnych podstron (poprzednia wersja miała ograniczenie do 3). Oprócz tego skrypt został wzbogacony o galerię zdjęć oraz formularz kontaktowy. Proszę o przetestowania skryptu na stronach: www.cms.terrorart.pl - strona główna cms.terrorart.pl/admin - panel administracyjny (w wersji testowej została zablokowana opcja zapisywania zmian) login - admin hasło - admin www.cms.forsale.pl - strona główna cms.forsale.pl/admin - panel administracyjny (w wersji testowej została zablokowana opcja zapisywania zmian) login - admin hasło - admin www.wloszczowa.kgb.pl - strona główna wloszczowa.kgb.pl/admin - panel administracyjny (w tej wersji opcja zapisywania zmian jest dostępna, proszę o nie zmienianie danych na stronie) login - admin hasło - admin Ten post edytował tadek92 14.01.2009, 15:21:56 |
|
|
![]()
Post
#29
|
|
Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Loguję się do admina i co? Pewnie CTRL + x2 w fierfoksie bo inaczej ucierpi mój wzrok. Większa czcionka!
Formularz nie jest ładny. Poukładaj go jakoś. Niepoprawna tabulacja w kodzie. nie stosuje się już. To użytkownik decyduje co otworzyć w nowym oknie/karcie. Używasz h2, gdy nie ma h1. a gdzie jest action? Cytat Warning: opendir(db/page1) [function.opendir]: failed to open dir: No such file or directory in /home/tluczek/domains/terrorart.pl/public_html/cms/admin/index.php on line 303 w usuwaniu podstrony.Mogłeś napisać jakiś prostu edytor do nawigacji. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Pamiętam, że menu pisało się w HTML w systemie Jportal. To były czasy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Nic nie wiedziałem z html-a, ale jakoś znaczki zmieniałem (na ślepo). (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Co do strony to przeglądanie zdjęć nie jest zbyt wygodne. Może skrypt w js? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 14:07 |