Rejestracja użytkownika
Po co ten skrypt, pytacie? Otóż po pierwsze - w artykułach o php znajdziecie art, jak napisać skrypt autoryzacji użytkownika. A trzeba wpierw kogoś zarejestrować żeby go autoryzować.
Po drugie, jest to dość przydatna sprawa, choćby po to, by udostępnić pewne artykuły jedynie najważniejszym użytkownikom. Każdy znajdzie na to odpowiednie zastosowanie.
Co najpierw?
Otóż na początek należy utworzyć bazę danych. W końcu coś musi przechowywać nam dane o naszych użytkownikach. Będzie to prosta baza danych zawierająca tylko jedną tabele (najprostsza forma rejestracji). Oczywiście każdy na potrzeby własne powinien rozszerzyć to odpowiednio.
Jak to działa?
Więc proces rejestracji polega na utowrzeniu formularza, który pobierze potrzebne dla nas informacje na temat użytkownika. Takie jak:
- login użytkownika
- hasło
- dane osobowe (imie, nazwisko, adres, itp.)
- i co jeszcze dusza zapragnie
Nastepnie użytkownik po wypełnieniu takiego formularza wysyła go, a dane są odpowiednio zapisywane do wcześniej utworzonej tabeli w naszej bazie danych. Dane te potem są przede wszystkim wykorzystane do autoryzacji użytkownika (login, hasło), a także do innych nam bliżej znanych potrzeb.
Tak w skrócie wygląda proces rejesracji użytkownika, a teraz jak to wszystko napisać. Do tego celu tworzymy pliki .php np: rejestracja.php, ale najpierw zajmijmy się bazą danych. Tworzymy baze danych "test", a w niej tabele "user". W tym celu w wierszu poleceń (już po uruchomieniu naszego serwera baz danych) wpisujemy:
CREATE DATABASE test;
Teraz musimy stworzyć tabele. Zakładam, że pobierzemy tylko podstawowe informacje od użytkownika, czyli:
- jego imie i nazwisko
- login
- hasło
Wprowadzimy także indeksowanie.
W tym celu wpisujemy:
CREATE TABLE user (
-> usernumber MEDIUMINT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,
-> username VARCHAR(30) NOT NULL,
-> userid VARCHAR(10) BINARY NOT NULL,
-> userpassword VARCHAR(15) BINARY NOT NULL,
-> PRIMARY KEY (userid),
-> UNIQUE usernumber (userbnumber)
-> );
Tym oto sposobem mamy gotową bazę danych, w której znajduje się tabela gotowa na przyjęcie informacji o użytkownikach. Dla wyjaśnienia dodam, że:
PRIMARY KEY (userid)
jest to pole nadające rekordowi userid status klucza głównego.
UNIQUE usernumber (usernumber)
ta część kodu nadaje polu usernumber wartość unikatową. Jest to indeks który dzięki atrybutowi AUTO_INCREMENT będzie automatycznie zwiększał swoją wartość o 1 czyli przy każdym nowym użytkowniku index będzie większy o 1 od poprzedniego.
Plik .php
Dobra, skoro mamy już bazę i tabele, czas zająć się plikiem odpowiedzialnym za wyświetlenie formularza i przesłanie danych do tabeli. Nazwijmy go rejestracja.php. Będzie wyglądał tak:
![]()
![]()
// łączymy się z bazą danych i wybieramy potrzebną baze danych
$link_id = mysql_connect("localhost", "root", "pass"); // tu root i pass są wprowadzone przez was w zależności od konfiguracji waszego serwera
mysql_select_db("test");
mysql_close($link_id);
![]()
// stworzymy dwie przydatne funkcje...jedna będzie tworzyła nagłówek strony, a druga stopke strony
function html_header()
{
global $new_win_width, $new_win_height;
![]()
<HTML>
<HEAD>
![]()
<TITLE>Przegladarka rekordow</TITLE>
</HEAD>
<BODY>
![]()
}
![]()
function html_footer()
{
![]()
</BODY>
</HTML>
![]()
}
![]()
![]()
function in_use($userid) // funkcja ta sprawdza czy nie dany login nie jest już wykorzystany
{
global $tabela_uzytkownikow;
![]()
$query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid = 'userid'";
$result = mysql_query($query);
if(!mysql_num_rows($result)) return 0;
else return 1;
}
![]()
![]()
function register_form() // funkcja ta wyświetla nam formularz w który użytkownik wpisze swoje dane
{
global $userid, $username;
global $PHP_SELF;
![]()
<CENTER><H3>Utworz swoje konto</H3></CENTER>
<FORM METHOD="post" ACTION=" echo $PHP_SELF ">
<INPUT TYPE="hidden" NAME="action" VALUE="register">
<DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
<TR>
<TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
<TD WIDTH="70%"><INPUT TYPE="text" NAME="userid" VALUE=" echo $userid " SIZE="8" MAXLENGHT="8"></TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
<TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword" SIZE="15"></TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Powtórz hasło</TH>
<TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword2" SIZE="15"></TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Imie i Nazwisko</TH>
<TD WIDTH="70%"><INPUT TYPE="text" NAME="username" VALUE=" echo $username " SIZE="20"></TD>
</TR>
<TR>
<TH WIDTH="30%" COLSPAN="2" NOWRAP>
<INPUT TYPE="submit" VALUE="Rejestruj">
<INPUT TYPE="reset" VALUE="Wyczyść">
</TH>
</TR>
</TABLE>
</CENTER></DIV>
</FORM>
![]()
}
![]()
![]()
function create_account() // funckja ta tworzy tworzy konto danego użytkownika
{
global $userid, $username, $userpassword, $userpassword2;
![]()
![]()
![]()
// można też na wszelki wypadek dopisać warunki funkcji if które sprawdzałyby czy podane dane są poprawne. Ja ten krok pomijam
![]()
$link_id = mysql_connect("localhost", "root", "pass");
![]()
$query = "INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'), '$username')";
![]()
$result = mysql_query($query);
$usernumber = mysql_insert_id($link_id);
![]()
![]()
html_header();
![]()
<CENTER><H3>
echo $username , dziękujemy za zarejestrowanie się
</H3></CENTER>
![]()
<DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
<TR>
<TH WIDTH="30%" NOWRAP>Numer użytkonika</TH>
<TD WIDTH="70%"> echo $usernumber </TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
<TD WIDTH="70%"> echo $userid </TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
<TD WIDTH="70%"> echo $userpassword </TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Imię i Nazwisko</TH>
<TD WIDTH="70%"> echo $username </TD>
</TR>
</TABLE></CENTER></DIV>
![]()
html_footer();
}
switch($action)
{
case "register":
create_account();
break;
default:
html_header();
register_form();
html_footer();
break;
}
![]()
W ten oto sposób stworzyliśmy baze danych i skrypt .php pobierający i wysyłający dane do tabeli.
#1
Co należy zmienić w kodzie jeżeli ma się jedną baze 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.










