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 -
- wyloguj.php - też chyba tłumaczyć nie trzeba
|
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
?> |