Loading:

Książka Zend Framework 3. Poradnik Programisty.

Proste skrypty w php
------------------------------------------------------------------------------------------------------

 

LOGOWANIE

 

------------------------------------------------------------------------------------------------------


Wymagania:

 

  • Baza MySQL (v. 4.X)
  • Interpretator PHP (v 5.X) z serwerem Apache


Struktura plików:

 

  1. ./
  2. index.php // Plik zawierający formularz logowania oraz pierwszą stronę po zalogowaniu, można umieścić tam np. przekierowanie do podstrony (zawiera klawiz wylogowywania).
  3. page.php // Podstrona (zawiera także klawisz wyloguj).
  4. register.php


Opis (schemat):


Wchodząc na stronę główną zauważymy formularz logowania, wpisując odpowiednio login i hasło zalogujemy się do serwisu. Panel klienta zawiera link do kolejnej podstrony (page.php), oraz wyloguj. Podstrona zawiera także możliwośc wylogowywania i przejścia do str. głw. Po wylogowywaniu zobaczymy ponownie str. index.php oraz komunikat.
Jeżeli w bazie nie ma żadnego użytkownika trzeba go dodać poprzez plik register.php
Wpisując dane tworzy nowy wiersz w bazie (nowego użytkownika). Baza ma 3 kolumny: 'id' 'login' 'haslo'

Skrypt (baza):



W PHPMyAdmin po wybraniu dostępnej bazy (na niektórych hostingach otrzymujesz jedną bazę) wpisujemy do wiersza poleceń:

KOD
CREATE TABLE `users` (
`user_id` INT NOT NULL AUTO_INCREMENT ,
`user_login` VARCHAR( 30 ),
`user_haslo` VARCHAR( 30 ),
PRIMARY KEY ( `user_id` )
);



Można to także zrobić ręcznie za pomocą kreatora tablic tworząc nową tablicę 'users'. Będziesz potrzebował/ła 3-kolumn odpowiednio 'user_id' 'user_login' 'user_haslo'. Ustawiamy dla user_id opcje AI (auto icrement) typ: liczbowy oraz opcję Not null. Dla user_login i user_haslo tylko wartość varchar 30. Klucz główny powinen samemu się zrobić dla user_id

Skrypt (kod):



Plik rejestracyjny(register.php):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

KOD
<?php
mysql_connect("SERWER DLA DB", "UZYTKOWNIK DB]", "HASLO DB")or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
mysql_select_db("NAZWA BAZY DANYCH")or die("Wystąpił błąd podczas wybierania bazy danych");

function ShowForm($komunikat=""){    //funkcja wyświetlająca formularz rejestracyjny
    echo "$komunikat<br>";
    echo "<form action='rejestruj.php' method=post>";
    echo "Login: <input type=text name=login><br>";
    echo "Hasło: <input type=password name=haslo><br>";
    echo "<input type=hidden value='1' name=send>";
    echo "<input type=submit value='Zarejestruj mnie'>";
    echo "</form>";
}
?>
<!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" xml:lang="pl" lang="pl">
<head>
    <title>Formularz rejestracyjny</title>
</head>
<body>
<?php
if($_POST["send"]==1){    //sprawdzanie czy formularz został wysłany
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){    //oraz czy uzupełniono wszystkie dane
        if(mysql_num_rows(mysql_query("select * from users where user_login='".htmlspecialchars($_POST["login"]."'"))))ShowForm("Użytkownik o podanym loginie już istnieje!!!"); // sprawdzanie czy użytkownik o podanej nazwie już istnieje
        else{
            mysql_query("insert into users values(NULL, '".htmlspecialchars($_POST["login"])."', '".htmlspecialchars($_POST["haslo"])."')"); // zapisywanie rekordu do bazy
            echo "Rejestracja przebiegła pomyślnie. Możesz teraz przejść do <a href='index.php'>Strony głównej</a> i się zalogować.";
            }
    }
    else ShowForm("Nie uzupełniono wszystkich pól!!!");
}
else ShowForm();
mysql_close(); //zamykanie połączenia z bazą
?>
</body>
</html>



Strona główna(index.php):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

KOD
<?php
session_start();
session_register("zalogowany");

if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;

mysql_connect("SERWER DB", "UZYTKOWNIK DB", "HASLO DB")or die("Nie można nawiązać połączenia z bazą");
mysql_select_db("NAZWA DB")or die("Wystąpił błąd podczas wybierania bazy danych");

function ShowLogin($komunikat=""){
    echo "$komunikat<br>";
    echo "<form action='index.php' method=post>";
    echo "Login: <input type=text name=login><br>";
    echo "Hasło: <input type=password name=haslo><br>";
    echo "<input type=submit value='Zaloguj!'>";
    echo "</form>";
    echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
}

?>
<!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" xml:lang="pl" lang="pl">
<head>
    <title>Strona główna</title>
</head>
<body>
<?php
if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
if($_SESSION["zalogowany"]!=1){
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
        if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
            echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
            $_SESSION["zalogowany"]=1;
            }
        else echo ShowLogin("Podano złe dane!!!");
        }
    else ShowLogin();
}
else{
?>
Gratulacje! Zalogowałeś się pomyślnie! Możesz przejśc teraz do innych podstron, np. do <a href="./page.php">tej</a>
<br><a href='index.php?wyloguj=tak'>wyloguj się</a>
<?php
}
?>

</body>
</html>
<?php mysql_close(); ?>




Podstrona (page.php):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

KOD
<?php
session_start();
?>
<!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" xml:lang="pl" lang="pl">
<head>
    <title>podstrona</title>
</head>
<body>
<?php
if($_SESSION["zalogowany"]==0){echo "nie masz dostępu do tej części witryny. <a href='index.php'>Zaloguj się</a></body></html>;"; exit();}
?>

 

------------------------------------------------------------------------------------------------------

 

FORM 2 (E) MAIL

 

------------------------------------------------------------------------------------------------------


Struktura:


Jeden plik zawierający kod obsługujący formularz.

Opis:


Formularz tekstowy mający wysyłać wiadomość e-mail z strony na twoją skrzynkę. Przedstawiony skrypt jest bardzo prosty, więc dane będą grupowane standardowo tagami, a wysyłana wiadomość posiada nazwę adresata taką jaka podałeś/aś w kodzie.

Skrypt (kod):




Czysty formularz (form.php):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

KOD
<form action="skrypt.php" method="post">
<input type="text" name="email" /><br />
<textarea name="content" cols="30" rows="6"></textarea>
<input type="submit" value="wyślij" />
</form>



Kawałek obsługujący formularz(form.php):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

KOD
<?php
    $adresat = 'adres@serwer.pl';     // pod ten adres zostanie wysłana wiadomosc
    @$email = $_POST['email'];
    @$content = $_POST['content'];
    $header =     "From: ADRES@MAIL.PL \nContent-Type:". // adresat wiadomosci
            ' text/plain;charset="iso-8859-2"'.
            "\nContent-Transfer-Encoding: 8bit";
    if (mail($adresat, 'List ze strony', $content, $header))
        echo '<p>Wysłano poprawnie e-mail</p>';
    else
        echo '<p><b>ERROR</b></p><p>Nie wysłano maila!</p>';
?>



Myślę, że nie jest to chaotycznie przedstawione i nie będzie problemów z użytkowaniem. Czcionka pisana kapitalikami w kodzie ma na celu wyróżnienie tekstu którego trzeba odpowiednio zmienić do własnych danych smile.gif Miłego korzystania i modyfikowania.

Pozdrawiam. wink.gif



Napisz Artykuł

Listing

niema


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=3&t=12568

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: bidziu890 Ranga: Poziom 7 Punktów: 248
Komentarze użytkowników
wszystko dziala jak nalezy dzieki
autor: gokis | 12657 | 2011-11-12 20:08:28


    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors