Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Prosty cms
tadek92
post
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
Go to the top of the page
+Quote Post
Czapla
post
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
Go to the top of the page
+Quote Post
Kildyt
post
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)
Go to the top of the page
+Quote Post
zegarek84
post
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...
Go to the top of the page
+Quote Post
tadek92
post
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ń";}
?>
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


A jak wyswietlasz szablon na stronie glownej??
Za pomoca styla css czy jak??
Go to the top of the page
+Quote Post
Czapla
post
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.
Go to the top of the page
+Quote Post
marcio
post
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
tadek92
post
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>
Go to the top of the page
+Quote Post
Pilsener
post
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:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>{TYTUL}</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  6. <meta name="keywords" content="{KEYWORDS}" />
  7. <meta name="description" content="{DESCRIPTION}" />
  8. <meta name="robots" content="index,follow" />
  9. {BASE}{CSS}
  10. </head>
  11. <h1>{NAGLOWEK}</h1>
  12. <div id="prawa">{TRESC_P}</div>
  13. <div id="lewa"><h2>Menu</h2>{MENU}{TRESC_L}</div>
  14. <div id="tresc">{TRESC}</div>
  15. <div id="stopka">{STOPKA}</div>
  16. </body>
  17. </html>
- 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.
Go to the top of the page
+Quote Post
tadek92
post
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
Go to the top of the page
+Quote Post
marcio
post
Post #12





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Przepisac na baze Mysql albo dodac taka mozliwosc to raz dwa tak jak mowil poprzednik uzyc systemu szablonow.
Go to the top of the page
+Quote Post
tadek92
post
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.
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
tadek92
post
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.
Go to the top of the page
+Quote Post
erix
post
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)
Go to the top of the page
+Quote Post
tadek92
post
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.
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
tadek92
post
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??
Go to the top of the page
+Quote Post
Pilsener
post
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:
  1. <?php
  2. $adres = parsuj_adres($_GET['adres']);
  3. ?>
- 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:
  1. <ul id="menu_1">
  2. {petla name="menu"}
  3. <li><a href="{LINK}" title="{TITLE}">{POZYCJA}</a></li>
  4. {/petla}
  5. </ul>
- 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.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 03:31