Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-04-17 18:26:58

  HAL9000 - Użytkownik

HAL9000
Użytkownik
Zarejestrowany: 2006-04-22

PHP poczatki

Witam
Ostatnio zaczalem bawic sie php i bawic jest tutaj bardzo adekwatnym slowem gdyz niewiele potrafie zrobic z ta technologia jak na razie.
Jak we wszystkim kiedy przychodzi do konkretow to wiedza z ksiazek moze posluzyc do wyswietlenia w petli liczby o 1 do 10 i nic wiecej lol.
Z ciekawosci wiec zaczalem klepac prosty system logowania do portalu.
index.php

Kod:

<html>
<head>
</head>
<body>
<a href="#">Home</a>
<?php
session_start();
if (isset($_SESSION['login'])) {
  if(!empty($_SESSION['login'])) {
    echo 'Zalogowany jako <strong>' . $_SESSION['login'] . '</strong> <a href="wyloguj.php">Wyloguj.</a>';
  }
} else {
    include('zaloguj.php');
  }
?>
</body>
</html>

zaloguj.php:

Kod:

<html>
<body>
<form action="logmein.php" method="post">
  Uzytkownik: <input type="text" name="login">  Haslo: <input type="password" name="user_pass">
  <input type="submit" value="Zaloguj">
</form>
</body>
</html>

logmein.php;

Kod:

<?php
session_start();
if(isset($_POST['login'], $_POST['user_pass'])) {
  if(!empty($_POST['login']) && !empty($_POST['user_pass'])) {
    $user_name = $_POST['login'];
    $user_pass = $_POST['user_pass'];
    // tutaj sprawdz dane na przyklad z bazy mysql: czy istnieje taki uzytkownik i czy jego haslo sie zgadza 
    //if()
    $_SESSION['login'] = $user_name;    
    echo 'Zostales zalogowany jako <string>' . $_SESSION['login'] . '</strong><br />';
    echo 'Powrot do strony <a href="index.php">glownej</a>';
   //else blad logowania
}
}

?>

wyloguj.php:

Kod:

<?php
session_start();
if(isset($_SESSION['login'])) {
  if(!empty($_SESSION['login'])) {
    session_destroy();
    echo 'Zostales wylogowany<br />Powrot ...';
  }
} else {
  echo 'Nie jestes zalogowany!';
}
?>

Tak to sie robi czy tez podazam kompletnie zla droga?
Przykladowo nim dotarlem do tej jak sie wydaje dzialajacej formy probowalem w pliku index.php zamiescic cos w stylu:

Kod:

if (isset($_SESSION['login'])) {
  include('zalogowany.php');
  }
} else {
    include('zaloguj.php');
  }

ale wowczas session_start(); musialo sie pojawic zarowno w index.php jak i zalogowany.php aby mozna bylo uzywac $_SESSION[] i interpreter narzekal, ze sesja juz zostala rozpoczeta a ja w sposob logiczny nie potrafilem tego obejsc.
W php jezeli chodzi o pojedyncze strony wszystko wydaje sie proste a kiedy dochodzi do bardziej dynamicznej zawartosci przygniata mnie ogromna ilosc szczegolow, ktorymi sie trzeba zajmowac.
I oczywiscie za dobre samouczki ale takie praktyczne bede zobowiazany. ;-)


For some reason I'm thinking I'm still 25 but I act like I'm 12.

Offline

 

#2  2012-04-18 10:15:06

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: PHP poczatki

zrob dodatkowy plik z ustawieniamy i wykorzystaj funkcje include_once

Offline

 

#3  2012-04-18 21:34:12

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: PHP poczatki

Jest tak bo nie doczytałeś nic o session_start(). Wywołujesz go na każdej stronie, która ma używać sesji. Ale, i tutaj brak doczytania, ma być wywołany zanim cokolwiek poleci do przeglądarki. Jest tez możliwość restartu sesji o ile nie wygasła po stronie serwera. Po drugie metoda, której używasz do kodowania jest dobra przy prostych stronach. Zacznij raczej pisać całość w PHP i przepychać tagi html'a do przeglądarki (np. echo). Rozbudowane szablony tagów przechowujesz w zewnętrznym pliku, który podłączysz funkcją include(). Potem tylko odpowiednio manipulujesz zmiennymi pod które masz wpisane poszczególne tagi lub ich całe grupy.

Offline

 

#4  2012-04-18 22:05:29

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Zarejestrowany: 2007-06-24

Re: PHP poczatki

A ja polecam jeszcze doczytać o Smarty, wtedy oddzieli się kod HTML od kodu PHP.

Offline

 

#5  2012-04-18 22:06:47

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: PHP poczatki

Smarty wcale takie "Uber" nie jest :P Po drugie warto stopniowo chyba jednak wdrażać się niż wszystkiego po trochu i potem jeden wielki bajzel.

Offline

 

#6  2012-04-18 22:44:05

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: PHP poczatki

Od siebie dodam:
1) na początku pliku dawaj ob_start (http://www.php.net/manual/pl/function.ob-start.php) na końcu ob_end_flush (http://www.php.net/manual/pl/function.ob-end-flush.php). Pomiędzy tym rozpoczynaj sesje. Zagwarantuje ci to że nić wcześniej nie zostanie wysłane do klienta. Bardzo przydatne przy sesjach.

2) podstawa to walidacja danych otrzymywanych od klienta. Zanim wrzucisz dane z GET, POST, COOKIE itp. do bazy przefiltrować je!

3) Apetyt rośnie w miarę jedzenia ;) z czasem przyjdzie decyzja o szablonach, ja mogę polecić rodzimy "produkt" OPT (http://www.invenzzia.org/en/projects/open-power-lib … ower-template)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)