Rejestracja | Zaloguj




Poprzedni temat «» Następny temat
[PHP] Własna rejestracja
Autor Wiadomość

ziomal511 





Posty: 15
Dołączył: 06 Wrz 2008
Skąd: Polska
Nr Użytkownika: 5197

GFXPoints: 24
Piwa: 1/3
Wysłany: 2008-09-20, 22:02 [PHP] Własna rejestracja


Witam. Dziś pokaże wam (a raczej autor tego artykułu :) ) Jak napisać prostą rejestrację w PHP używając oczywiście MYSQL.
Więc trzeba mieć bazę MYSQL XD Na jakimś serwerze (yoyo.pl, boo.pl) lub localhost...
Ok to zaczynamy.

Opis plików:
Cytat:
- 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 - xD
- wyloguj.php - też chyba tłumaczyć nie trzeba xD


1. Jak już wspomniałem nasza rejestracja będzie oparta na bazie danych mysql.
Oto kod naszej tabeli sql:
PHP Code:
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

PHP Code:
<?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œ:</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;
    }
  $polaczenie= pol_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œlnie</h3>";
    echo "<H4 ALIGN=center><a href='index.php'>Strona Logowania</a></h4>";
    exit;
    }
  return true;
}

function logowanie($login, $haslo)
{
  $polaczenie= pol_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œ 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

PHP Code:
<?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

PHP Code:
<?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:

PHP Code:
<?
//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:

PHP Code:
<?
//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 ;) :

PHP Code:
<?
  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śœ wylogowany!</h3>";
html_url("index.php", "Logowanie");
}
else
{
echo "<H3 ALIGN=center>Nie byłeśœ zalogowany!</h3>";
html_url("index.php", "Logowanie");
}
//zakończenie wyrejestrowania
?> 
Postaw piwo autorowi tego posta
 
     
Więcej szczegółów
Wystawiono 1 piw(a):
Davis

tyTUs 





Program: PhotoShop Cs 2.0
Posty: 90
Dołączył: 22 Lut 2008
Wiek: 20
Skąd: Gryfino
Nr Użytkownika: 2167

GFXPoints: 178
Piwa: 16/6
Wysłany: 2008-09-25, 15:05 


Co należy zmienić w kodzie jeżeli ma się jedną bazę danych a chce się mieć osobną rejestracje do kilku katalogów. Tak aby użytkownik zarejestrowany na jednej stronie(katalogu) nie mógł się logować gdzie indziej.
Postaw piwo autorowi tego posta
 
     

kuki 





Posty: 6
Dołączył: 26 Paź 2008
Skąd: Tarnów
Nr Użytkownika: 6201

GFXPoints: 7
Wysłany: 2008-10-26, 20:30 


hehe... skrypt dobry, jednakże czasami troche dziwnie wygląda łączenie php i html'a w jednym pliku... Nie lepiej składować dane do wypisania a potem je wypisać za jednym ciągiem?
_________________
W kątach cisza gra... szkoda słów...
Postaw piwo autorowi tego posta
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  
Powered by phpBB modified by Przemo © 2003 phpBB Group
Style created by GrafArt.org & DeXteR007
statystyka
Polecane serwisy [ Dodaj swój link ]
Lost: Zagubieni | Wyniki Na Żywo | InterPatrol.pl | Forum windows | Zjawiska paranormalne | serwery hosting www | Zakłady Bukmacherskie | wiersze | Forum Tuningowe | Szkolenia Linuksowe |Najlepszy darmowy CMS-EF | Kurs HTML

Graphic Addicts Topsites: Graphic Art - Animation - Music - Gaming szablony na bloga

Za treść postów administracja nie odpowiada. W przypadku naruszenia prawa, wszelkie zgromadzone dane o osobie łamiącej prawo, zostaną przekazane odpowiednim władzom. Kopiowanie elementów graficznych oraz rozwiązań technologicznych zastosowanych na niniejszej witrynie surowo wzbronione.