Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dzielenie strony w php
Forum PHP.pl > Forum > Przedszkole
lukasfromzgr
chodzi mi o to ze mam strone w php bez bazy mysql - czyste php tongue.gif

mam to podzielone a mianowicie

cała strona składa się z
-loga
-menu po lewo
- menu po prawo
- stopki

a chciałem zrobić rzecz następującą tylko nie wiem czy ma to sens

chciałem wpakować kod strony od słowa <html> do końca tabeli z logiem do pliku góra.php

czy ma to sens - bo chodzi mi o to zeby potem na kazdej nowej podstronie nie pisac tytułu, meta tagów, kodowania znaków itp.

czy jest na to jakiś prosty sposób questionmark.gif
s_w_ir
Oczywiście, że ma! Każde ponowne wykorzystanie kodu ma sens bo skraca czas Twojej pracy i nie tracisz czasu na pisanie(wkejanie) tych samych fragmentow. Osobiście mam jeden plik który includuje, a w nim np.
gora_strony tzn od <HTML> do <BODY>
dol_strony- pozamykanie tagów których zawsze używam w danym projekcie np.</table></body></html>
Ive
no tak jak mowisz zapakowac all do plikow a potem:

  1. <?
  2. require_once("./skora/head.html");
  3. require_once("./skora/menu.html");
  4. // kod
  5. require_once("./skora/foot.html");
  6. ?>

przykladowo...
Guest
nie znam sie za bardzo

ja zamiast czesci kodu mam cos takiego:

<?php include "search.php"; ?> - tu mam wyszukiwarke

potem znowu normalny kod

i

<?php include "menu_left.php"; ?>

kod

<?php include "menu_right.php"; ?>

kod a na koncu

<?php include "stopka.php"; ?>


ps.
a moge np. zrobić dół.php (to będzie od końa menu do końca kodu) i wpakować tam <?php include "stopka.php"; ?>

ps.2. co oznacza require_once ? ja mam poprostu php include....
questionmark.gif
Guest
a nie moge zamiast reguire_once wpisac <?php include "stopka.php"; ?> questionmark.gif? bo narazie to tak mam - a tego po angielksu to nie za bardzo rozumiem tongue.gif
TomASS
Pewnie, że możesz.A nawet może i lepiej będzie wykorzystać include/require niż reguire_once.

A tak swoją drogą to kłania się:
Manual::include
Manual::require
Manual:require_once
Guest
a jeszcze mam jedno pytanie:

- mam strone przerobiona z html na php (takie podstawowe sprawy tongue.gif )

- chce dodać do tego funkcję logowania (dla mnie - czyli administratora i dla kilku użytkowników)

i tu moje pytania:

- czy potrzeban jest baza mysql ? ja nie posiadam ale moj serwer na to pozwala . jeśli tak to - możecie mi dać linka do miejsca, gdzie się dowiem jak podłączyc baze do strony ?

- jak zrobić żebym tylko ja mógł robić nowe konta (bo chce zrobić tylko dla kilku userów i dla siebie), bo chodzi o to, żeby zalogowani mogli dodawać artykuły do strony (np. news)

jednym slowem chodzi mi o to zeby utworzyc grupe osób, które mają zezwolenie na dodawanie newsów i recenzji a nie musza do mnie przysyłać i żebym potem ja wstawiał do szablonu

ps. dzięki wszystkim za dotychczasową pomoc ;]
s_w_ir
Nie potrzebujesz bazy danych, możesz cały etap logowania zrobić na systemie plików(zwłaszcza że to tylko dla kilku userów). Pytanie tylko czy znasz na tyle php?
ens0re
System logowania to już wyższa szkoła jazdy niż początki... Co do bazy... Lepiej robić na bazie to logowanie niż na plikach txt. Bazy stają się podstawą...
xeo-programer
Ogólnie do zrobienia logowania nie potrzebujesz bazy danych. Można to zrobić na plikach, ale skoro piszesz że masz dostęp do bazy to jeszcze piękniej winksmiley.jpg .
Do stronki nie podłącza się bazy danych, można z niej poprostu skoerzystać jeśli jest na serwerze. Musisz skonttaktować się z administratorem i poprosić o ustawienie konta. Potem tworzysz sobie bazę danych i za pomocą php łączyś się z nią. Zakładając że jest to MySQL:

stwórz bazę danych gdzie w tabeli np: "hasla" niezbędnymi kolumnami będą:
"login" - varchar 40 ( oznacza to że nazwa użytkownika będzie mogła się składć z 40 znaków)
"pass" - char 16 (hasło może miec dowolna liczbę znaków lecz powinieneś zakodować je za pomocą funkcji MySQL-a PASSWORD() która tworzy zawsze łańcuch o długości 16 znaków)

Zakładam że masz już stworzoną bazę danych (koniecznie zapoznaj się z opisem mysql i SQL bo nic nie ruszysz). Teraz tworzysz sobie formularz na stronie z polami: login i pass, a w action podajesz np: logowanie.php. Pamiętaj że należy zapisać skrypt logujący jako .php , ponieważ są w nim bardzo ważne dane, np: nazwa bazy , użytkownik, hasło. Teraz w pliku logowanie.php piszesz:

$dbc = @mysql_connect (host_bazy_danych, twoja_nazwa_uzytkownika, twoje_haslo_uzytkownika) or die ('Nie można połączyć się z MySQL-em: ' . mysql_error() );

@mysql_select_db (nazwa_bazy) or die ('nie można wybrać bazy danych: ' . mysql_error() );

//jeśli wszystko się zgadza to jesteś podłączony do bazy i należy porównać dane z formularza z tymi co są zapisane w bazie. Można jeszcze przy okazji sprawdzić wprowadzone dane, obciąć spacje z końca i początku łańcucha i co tam sobie jeszcze wymyślisz smile.gif

$log=$_POST['login];
$pas=$_POST[pass'];
//mamy juz pobrane dane z formularza wiec sprawdzamy czy istnieje użytkownik w naszej bazie

$query="SELECT * FROM hasla where pass='$pas' and login='$log';
$result=mysql_query($query);
/masz pobrane dane z bazy. Co dalej się będzie działo zależy tylko od ciebie, możesz np przekierować na stronę administraacyjną gdzie można uaktualniać newsy
if($result){
tu dajesz polecenia w przypadku zgodności hasła i loginu
}else{
rób cos gdy login lub hasło nie pasuje
}

A co do zarządzania newsami to juznie takie "hop-siup" winksmiley.jpg . Musisz troche pogłuwkować. Jak znajde trochę czasu to rzuce kilka wskazuwek winksmiley.jpg.

Pozdro 4 all php programers winksmiley.jpg
DuNn0
Cytat(xeo-programer @ 2005-10-02 09:23:54)
  1. <?php
  2.  
  3. $log=$_POST['login];
  4. $pas=$_POST[pass'];
  5. //mamy juz pobrane dane z formularza wiec sprawdzamy czy istnieje użytkownik w nas
    zej bazie
  6.  
  7. $query=SELECT * FROM hasla where pass='$pas' and login='$log';
  8. $result=mysql_query($query);
  9. //masz pobrane dane z bazy. Co dalej się będzie działo zależy tylko od ciebie, moż
    esz np przekierować na stronę administraacyjną gdzie można uaktualniać newsy
  10. if($result){
  11. //tu dajesz polecenia w przypadku zgodności hasła i loginu
  12. }else{
  13. //rób cos gdy login lub hasło nie pasuje
  14. }
  15.  
  16. ?>


nie korzystaj z tego przykladu dlatego ze jest wrazliwy na sql injection ...

nigdy nie powinno sie stosowac:
  1. <?php
  2.  
  3. $result = mysql_query($sql);
  4.  
  5. if($result){}else{}
  6.  
  7. ?>


to byu bylo na tyle odemnie
lukasfromzgr
a moge zrobic cos takiego ze poprostu jak ktos chce dodać newsa to musi wpisać hasło ?
xeo-programer
HeHeHe...
jest to tylko pokazanie jak ma zrobić logowanie, a co do tego dołoży to już tylko jego wybór. Ja podałem tylko schemat nie będę budował tu całego bloku kodu, a sql injection to już jest wyższa szkoła jazdy i nie sądzę aby php początkujący było miejscem na opisywanie szczegółów php.
strife
Cytat(lukasfromzgr @ 2005-10-02 12:48:35)
a moge zrobic cos takiego ze poprostu jak ktos chce dodać newsa to musi wpisać hasło ?

Witam,

Kiedyś napisałem prostą klase logowania, może Ci pomorze w tym przypadku...

http://dev.club.webhost.pl/source/Login.phps

No i poszukaj, na forum jest dużo o logowaniu...

Pozdrawiam!
lukasfromzgr
samo logowanie to kapuje jak zrobić, ale nie wiem jak zrobić że newsy mogą dodawać tylko zalogowani.
strife
Cytat(lukasfromzgr @ 2005-10-02 17:39:10)
samo logowanie to kapuje jak zrobić, ale nie wiem jak zrobić że newsy mogą dodawać tylko zalogowani.

Otwierasz plik, bądź znajdujesz tą linijkę która odpowiada za dodawanie newsów do strony. Następnie wprowadzasz pewien warunek przed np.
  1. <?php
  2.  
  3. // ... Funkcja IsRoot moze sprawdzac uprawnienia...
  4. function IsRoot()
  5. {
  6.  if ( $_SESSION['Login'] == TRUE )
  7.  { 
  8. return TRUE;
  9.  }
  10.  else{
  11. return FALSE;
  12.  }
  13.  
  14. }
  15. // ...
  16. if (! IsRoot() )
  17. {
  18. die('Nie mozesz dodawac newsow'); 
  19. }
  20.  
  21. ?>


Pozdrawiam!
Guest
to jest jeszcze jeden problem - nie umiem dokładnie zainstalować newsów

byłbym bardzo wdzięczny jezeli ktoś by to tutaj opisał (jakiś prosty)

albo dał linka do tematu, gdzie jest opisane dla początkujących po polsku - bo szukalem ale nie znalazłem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.