CompZone.Org :: Artykuły :: PHP
Jaki jest Twój wiek?
40 - 59
26 - 39
19 - 25
13 - 18
12 i mniej
60 i więcej
Sonda Wyniki

Add to Google

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:

 <?php

// łą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>
<?php
}

function html_footer()
{
?>
</BODY>
</HTML>
<?php
}


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="
<?php 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="
<?php 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="
<?php 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>
<?php
}


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>
<?php 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%">
<?php echo $usernumber ?></TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
<TD WIDTH="70%">
<?php echo $userid ?></TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
<TD WIDTH="70%">
<?php echo $userpassword ?></TD>
</TR>
<TR>
<TH WIDTH="30%" NOWRAP>Imię i Nazwisko</TH>
<TD WIDTH="70%">
<?php echo $username ?></TD>
</TR>
</TABLE></CENTER></DIV>
<?php
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.

Fixus @ 12-07-2006 00:11

#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.

krys76 @ 02-08-2008 19:26
Copyright © 2005-2006 Compzone.Org. Kopiowanie i wykorzystywanie materiałów zawartych na tej stronie bez zgody autora zabronione!