PHP: strefaphp.net
PHP: strefaphp.net



 
Czy odwiedziłeś już te strony? -
dodał: Vengeance

Opis artykułu dodano: 31-08-2004 12:24
W tym artykule, dowiecie się, jak zrobić dość prostą rejestrację użytkowników, którzy będą dodawani do bazy danych. Dzięki temu będziesz mógł udoskonalić swoją stronę. Przeczytaj ten art. a zrobisz to sam!
dodał: rav1k | autor: rav1k | czytano: 35124 razy

Inne materiały do artykułu

Rejestracja użytkowników
Często na stronach widzicie link do rejestracji. Zapewne chcielibyście dodać taki bajer na swojej stronie, lecz nie wiedzieliście jak to zrobić. Teraz możecie zrobić to bezproblemowo, przeczytawszy ten artykuł zrobisz to sam! A więc co? Do dzieła ...
Zaczniemy od rozplanowania całości. Nasz projekt będzie się składał z następujących plików:
- funkcje.php -> wszystkie funkcje potrzebne do rejestracji;
- index.php -> formularz, wraz z możliwością zarejestrowania się, gdy nie masz jeszcze własnego konta;
- omnie.php -> możesz wykorzystać go na menu;
- rejestracja.php -> tłumaczyć nie musze ;-) ;
- uzytkownicy.php;
- wyloguj.php;

1. Jak już wspomniałem nasza rejestracja będzie oparta na bazie danych mysql.
Oto kod naszej tabeli sql:

Kod:


CREATE TABLE `users` (
  `nr` int(20) NOT NULL auto_increment,
  `login` varchar(20) NOT NULL default '',
  `gg` varchar(10) NOT NULL default '',
  `skad` varchar(30) NOT NULL default '',
  `plec` varchar(20) NOT NULL default '',
  `haslo` varchar(20) NOT NULL default '',
  `data` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`nr`)
) TYPE=MyISAM AUTO_INCREMENT=33 ;



2. Teraz zabierzemy się za pisanie najważniejszego pliku, funkcje.php, gdzie znajdować się będą jak sama nazwa pliku wskazuje, najważniejsze funkcje naszego skryptu.
funkcje.php


Kod:


<?php 

function pol_mysql()
{


//ustawiamy teraz dane naszej bazy 
$db_host 'localhost';
$db_user 'user';
$db_pass 'pass';
$db_name 'nazwa_bazy';

//ustawiamy polączenie z bazą danych
$lacz mysql_pconnect($db_host$db_user$db_pass);
    if(!
$lacz)
    {
     echo 
"Wystąpił błąd: Połączenie z bazą nie powiodło się.";
     exit;  }

//wybieramy bazę 
if(!@mysql_select_db($db_name$lacz)) {
echo 
'<b>Baza danych chwilowo niedostepna. Przepraszamy.</b>';
exit;   }

}

function 
wynik_db_do_tablicy($wynik)
{
  
$tablica_wyn=array();

  for(
$licznik=0$rzad=@mysql_fetch_array($wynik); $licznik++)
    
$tablica_wyn[$licznik]=$rzad;

  return 
$tablica_wyn;
}

function 
html_url($url$nazwa)
{
  
// wyświetlenie URL-a jako łącza
?>
  <P align="center">
  <a href="<?=$url?>"><?=$nazwa?></a>
  </P>
<?
}

//wyswietla nam pole do zalogowania się, bądź rejestracji ;)
function wy_form_logo()
{
?>
  <form method=post action="uzytkownicy.php?m=log">
  <TABLE ALIGN="center">
   <tr>
   <td><b>Login:</b></td>
     <td><input type=text name="login"></td>
     <td><b>Hasło:</b></td>
     <td><INPUT type=password name="haslo"></td>
     <td align=center colspan=2>
     <INPUT TYPE="SUBMIT" VALUE="Zaloguj"></td>
     <td><a href="uzytkownicy.php?m=rejestracja">Rejestracja</a></td>
     </tr>
 </table></form>

<?
}
// formularz rejestracji
function dodaj_form()
{
?>
  <form method=post action="rejestracja.php">
  <TABLE ALIGN="center">
   <tr>
     <td colspan=2><H1>Dodanie nowego użytkownika</H1><TD></TD></td>
   <tr>
     <td>Login:</td>
     <td><input type=text name=login></td></tr>
   <tr>
     <td>Numer Gadu-Gadu:</td>
     <td><input type=text name=gg></td></tr>
   <tr>
     <td>Skšd jeste&#156;:</td>
     <td><input type=tekst name=skad></td></tr>
   <tr>
     <td>Płeć:</td>
     <td>Mężczyzna: <input type="radio" value="m" checked name="plec"> Kobieta: <input type="radio" name="plec" value="k"></td></tr>
   <tr>
     <td>Hasło:</td>
     <td><input type=password name=haslo></td></tr>
   <tr>
     <td>Powtórz hasło:</td>
        <td><input type=password name=haslo2></td></tr>
   <tr><td colspan=2><h4>Hasło powinno składać się z  nie więcej niż 12 znaków.</H4></td></TR>
   <tr>
     <td align=center colspan=2>
     <input type=submit value="Zapisz"></td></TABLE></form>
<?
      html_url
("index.php""Logowanie");
}
//dodajemy użytkownika do bazy danych
function dodaj_usera($login$gg$skad$plec$haslo$haslo2)
{
    if (
$haslo != $haslo2)
    {
        echo 
"<H3 ALIGN=center>Hasła nie są takie same.</h3>";
        
dodaj_form();
        exit;
    }
  
$polaczeniepol_mysql();
  
// sprawdzenie, czy login nie powtarza się
  
$wynik mysql_query("select * from users where login='$login'");
  if(!
$wynik)
    return 
"Problem: zapytanie z bazy nieudane";
  if (
mysql_num_rows($wynik)>0)
    {
    echo 
"<H3 ALIGN=center>Użytkownik o takiej nazwie jest już zarejestrowany, spróbuj inny login</h3>";
    
dodaj_form();
    }
  
$czas date("j-m-Y-G:i:s");
  
// umieszczenie usera w bazie danych
  
$zapytanie "insert into users values
                 ('', '$login', '$gg', '$skad', '$plec', '$haslo', '$czas')"
;
  
$wynik=mysql_query($zapytanie);
if(
$wynik)
    {
    echo 
"<H3 ALIGN=center>Rejestracja zakończona pomy&#156;lnie</h3>";
    echo 
"<H4 ALIGN=center><a href='index.php'>Strona Logowania</a></h4>";
    exit;
    }
  return 
true;
}

function 
logowanie($login$haslo)
{
  
$polaczeniepol_mysql();
  
// sprawdzenie, czy login nie powtarza się
  
$wynik mysql_query("select * from users where login='$login'");
  if(!
$wynik)
    return 
"Problem: zapytanie z bazy nieudane";
  if (
mysql_num_rows($wynik)== 0)
    {
    echo 
"<H3 ALIGN=center>Niema takiego użytkownika w bazie danych</h3>";
    
wy_form_logo();
    exit;
    }
  
$tab_user wynik_db_do_tablicy($wynik);
  if (
$tab_user[0]['haslo'] != $haslo)
    {
      echo 
"<H3 ALIGN=center>Niepoprawne hasło</h3>";
    
wy_form_logo();
    exit;
    }
   
$user $login;
   
//rejestrowanie danych sesji
   
session_register("user");
   echo 
"zalogowany jako: <b>" .$user."</b>, jeste&#156; z <b>".$tab_user[0]['skad']."</b>, data twojej rejestracji to: <b>".$tab_user[0]['data']."</b><br>";
   echo 
"<a href=omnie.php>Strona o mnie</a>";

}
?>



Tak więc zakończyliśmy pracę nad najważniejszym plikiem.
Kolejny potrzebny dla nas plik to index.php, pokazujący formularz logowania.
index.php

Kod:


<?php
//wczytanie pliku z funkcjami
  
require_once ("funkcje.php");
  
//rozpoczęcie sesji
session_start();
session_cache_limiter('nocache');

  
//formularz logowania
  
wy_form_logo();
?>


omnie.php może posłużyć jako menu, bądź cokolwiek co przyjdzie Ci na myśl.
omnie.php

Kod:


<?php
//wczytanie pliku z funkcjami
  
require_once ("funkcje.php");
//rozpoczęcie sesji
session_start();
session_cache_limiter('nocache');
//kod PHP
if (session_is_registered("user"))
{
echo 
"Może posłużyć jako menu, czy coś innego ;)";
echo 
"<br><A HREF=wyloguj.php>Wyloguj</a>";
}
else
{
echo 
"<H3 ALIGN=center>Nie masz uprawnień do korzystania z tej strony! Wróc i się zaloguj</h3>";
html_url("index.php""Logowanie");
exit;
}
?>


Do omówienia zostały nam już tylko 3 pliki: rejestracja.php, uzytkownicy.php, wyloguj.php. Mam nadzieję, że wyrobimy się z tym do dziś :). Heh, żeby nie marnować cennego czasu zacznę od rejestracja.php:

Kod:


<?
//wczytanie pliku z funkcjami
  
require_once ("funkcje.php");
//rozpoczęcie sesji
session_start();
session_cache_limiter('nocache');
//kod PHP

  
if ($login && $plec && $haslo)
  
$wynik dodaj_usera($login$gg$skad$plec$haslo$haslo2);
  else
  exit;
  
?>


uzytkownicy.php:

Kod:


<?
//wczytanie pliku z funkcjami
  
require_once ("funkcje.php");
//rozpoczęcie sesji
session_start();
session_cache_limiter('nocache');
//kod PHP
  
if ($_GET['m'] == 'rejestracja')
  
dodaj_form();
  if (
$_GET['m'] == 'log')
  
logowanie($login$haslo);
  
?>


Tak, został nam już tylko jeden plik wyloguj.php. Będzie on nas wylogowywał z menu ;):

Kod:


<?
  session_start
();
  
session_cache_limiter('nocache');
//wczytanie pliku z funkcjami
  
require_once ("funkcje.php");
//sprawdzenie użytkownika za pomocą sesji i ewentualne jej wyrejestrowanie.
if (session_is_registered("user"))
{
session_unregister("user");
echo 
"<H3 ALIGN=center>Zostałeś&#156; wylogowany!</h3>";
html_url("index.php""Logowanie");
}
else
{
echo 
"<H3 ALIGN=center>Nie byłeś&#156; zalogowany!</h3>";
html_url("index.php""Logowanie");
}
//zakończenie wyrejestrowania
?>


Mój artykuł dobiegł końca. Mam nadzieję, że nie wypadł najgorzej, a jeśli nawet to przymnijcie na mnie oczy, bo jest to mój pierwszy artykuł :). W razie jakichkolwiek uwag, czy problemów proszę pisać do mnie na maila:
rav1k@o2.pl
Bądź na gg [nie gwarantuję, że będę odpisywał, gdyż rzadko jestem]:
1943497

No to tyle...
Pozdrawiam rav1k
PHP: strefaphp.net
wyślij email informacje forum download skrypty katalog kursy porady artykuły home współpraca reklama kontakt