Skrypt rejestracji składa się z 4 pól: Login, Hasło, Powtórz Hasło i E-Mail.
Jego zadaniem jest Określić:
- - Czy wszystkie pola zostały wypełnione,
- Czy wpisywane informacje mają odpowiednią ilość znaków,
- Czy pola Hasło i Powtórz Hasło są takie same,
- Czy Login I adres E-Mail nie są już zajęte.
Gdy zostanie to zrobione i któryś z powyższych warunków nie zostanie spełniony, bądź tez pole zostanie uzupełnione poprawnie, zostaniemy o tym poinformowani.
W praktyce będzie wyglądać to tak:

Aby osiągnąć taki efekt należy użyć następujących kodów:
ZAPYTANIE MySQL:
Kod
-- --------------------------------------------------------
--
-- Tworzymy Baze danych o nazwie BAZA
-- Baza danych: `baza`
--
CREATE DATABASE `baza` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `baza`;
--
-- --------------------------------------------------------
--
-- Tworzymy tabele Która będzie Składować konta nowych urzytkowników
-- Struktura tabeli dla `users`
--
CREATE TABLE `users` (
`user_id` tinyint(10) unsigned NOT NULL auto_increment,
`user_name` varchar(13) collate latin1_general_cs NOT NULL,
`user_password` varchar(40) collate latin1_general_cs NOT NULL,
`user_password_short` varchar(17) collate latin1_general_cs NOT NULL,
`user_email` text collate latin1_general_cs NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=3;
--
-- --------------------------------------------------------
--
-- Tworzymy Baze danych o nazwie BAZA
-- Baza danych: `baza`
--
CREATE DATABASE `baza` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `baza`;
--
-- --------------------------------------------------------
--
-- Tworzymy tabele Która będzie Składować konta nowych urzytkowników
-- Struktura tabeli dla `users`
--
CREATE TABLE `users` (
`user_id` tinyint(10) unsigned NOT NULL auto_increment,
`user_name` varchar(13) collate latin1_general_cs NOT NULL,
`user_password` varchar(40) collate latin1_general_cs NOT NULL,
`user_password_short` varchar(17) collate latin1_general_cs NOT NULL,
`user_email` text collate latin1_general_cs NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=3;
--
-- --------------------------------------------------------
Teraz kolej na Sam Skrypt:
PLIK REJESTRACJA.PHP:
Kod
<?php
include ('includes/config_includes.php'); // Odniesienie Do pliku który łączy nas z DB
//jesli byl wyslany formularz przechodzimy do obsługi danych
if(isset($_POST['wyslij']))
{
//Obrabiamy wszystkie zmienne przekazane metodą POST
foreach ($_POST AS $klucz => $wartosc)
{
$wartosc= trim($wartosc);//usuwamy białe znaki
if (get_magic_quotes_gpc())
$wartosc= stripslashes($wartosc);
$wartosc=htmlspecialchars($wartosc, ENT_QUOTES);
$_POST[$klucz]=$wartosc;
}
$login=$_POST['login'];
$haslo=$_POST['haslo'];
$re_haslo=$_POST['re_haslo'];
$email=$_POST['email'];
$blad_txt='';
$blad=false;
//Sprawdzamy czy użytkownik o danym Loginie nie jest juz zajęty
$zapytanie_sprawdz_usera= "select * from users where user_name='$login' ";
$wynik = mysql_query($zapytanie_sprawdz_usera);
if(!$wynik)
{
echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej
.';
exit;
}
if(mysql_num_rows($wynik)>0)
{
$sprawdz_login=1;
}
// Sprawdzamy czy adres email sie nie powtarza.
$zapytanie_sprawdz_email= "select * from users where user_email ='$email' ";
$wynik_email = mysql_query($zapytanie_sprawdz_email);
if(!$wynik_email)
{
echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej
.';
exit;
}
if(mysql_num_rows($wynik_email)>0)
{
$sprawdz_email=1;
}
//sprawdzamy czy poprawnie jest wypełnine pole login
if(empty($login)){
$info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if($sprawdz_login==1){
$info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Login o takiej nazwie już istnieje.</font>';
$blad=true;
}
else if(strlen($login)<5){
$info_txt_nick.='<font color="#B20000">Login jest za krótki.</font>';
$blad=true;
}
else if(strlen($login)>12){
$info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Nie poprawna nazwa loginu, max 12 znaków.</font>';
$blad=true;
}
else{
$info_txt_nick.='<img src="v.gif" /> <font color="#207C07"> OK.</font>';
}
//sprawdzamy czy jest prawidlowe haslo
if(empty($haslo)){
$info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if(strlen($haslo)<=6) {
$info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Hało jest za krótkie.</font>';
$blad=true;
}
else if(strlen($haslo)>16){
$info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Hasło może składać sie z Max 16 znaków.</font>';
$blad=true;
}
else{
$info_txt_haslo.='<img src="v.gif" /> <font color="#207C07"><b> OK.</b></font>';
}
//sprawdzamy czy jest 2 hasło
if(empty($re_haslo)){
$info_txt_re_harlo.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if($haslo != $re_haslo){
$info_txt_re_harlo.='<img src="x.gif" /> <font color="#B20000"> Hała muszą być takie same.</font>';
$blad=true;
}
else{
$info_txt_re_harlo.='<img src="v.gif" /> <font color="#B20000"><font color="#207C07"> OK.</font>';
}
//sprawdzamy czy jest podany prawidłowy adres e-mail
if(empty($email)){
$info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if($sprawdz_email==1){
$info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Adres email o takiej nazwie już istnieje.</font>';
$blad=true;
}
else if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)){
$info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Adres email jest nie prawidłowy.</font>';
$blad=true;
}
else{
$info_txt_email.='<img src="v.gif" /> <font color="#207C07"> OK.</font>';
}
if(!$blad)
{
//poprawne dane - robmy z nimi co trzeba (zapisujemy do bazy danych itp.)
$pokaz_form=true;
// Wysyłamy zapytanie do bazy danych
$zapytanie_add_user = "INSERT INTO `users` values(NULL, '".$login."', '".sha1($haslo)."', '".$haslo."', '".$email."')";
// Odpowiedz
$odpowiedz = mysql_query($zapytanie_add_user);
if($odpowiedz > 0){
echo 'Rojestracja przebiegła pomyślnie do konca.<br /><ul><li>Twój nick to: '.$login.'</li><li>haslo: '.$haslo.'</li><li>re_haslo: '.$re_haslo.'</li><li>email: '.$email.'</li></ul>';
}
else{
$pokaz_form=false;
echo 'Problem z MySQL.';
}
}
else
{
//cos jest zle – wyświetlamy stosowne komunikaty
// echo $blad_txt;
$pokaz_form=false;
}
}
else
{
//wypelniamy zmienne pustymi danymi jesli formularz nie został jeszcze wysłany
$login='';
$haslo='';
$re_haslo='';
$email='';
}
//wyswietlamy formularz
if($pokaz_form!=true){
?>
<style>
table.form{
margin-left: 120px;
font-size: 12px;
}
td.title{
vertical-align: bottom;
text-align: right;
}
td.info{
vertical-align: bottom;
text-align: left;
}
</style>
<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST">
<table class="form" name="form" border="0px" cellpadding="3px" cellspacing="0px">
<tbody>
<tr>
<td style="width:80px;"></td>
<td>REJESTRACJA</td>
</tr>
<tr>
<td class="title">Login:</td>
<td class="info">
<input type="text" name="login" value="<? echo $login; ?>"> <? echo $info_txt_nick; ?>
</td>
</tr>
<tr>
<td class="title">Hasło:</td>
<td class="info">
<input type="text" name="haslo" value="<? echo $haslo; ?>"> <? echo $info_txt_haslo; ?>
</td>
</tr>
<tr>
<td class="title">Powtórz Hasło:</td>
<td class="info">
<input type="password" name="re_haslo" value="<? echo $re_haslo; ?>"> <? echo $info_txt_re_harlo; ?>
</td>
</tr>
<tr>
<td class="title">E-Mail:</td>
<td class="info">
<input type="text" name="email" value="<? echo $email; ?>"> <? echo $info_txt_email; ?>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="wyslij" value="Wyślij" />
<input type="button" value="wyczyść" class="clean" onclick="window.location='<? $_SERVER['PHP_SELF']; ?>' "/>
</td>
</tr>
</tbody>
</table>
</form>
v2.0
<?
}
else{
return false;
}
?>
include ('includes/config_includes.php'); // Odniesienie Do pliku który łączy nas z DB
//jesli byl wyslany formularz przechodzimy do obsługi danych
if(isset($_POST['wyslij']))
{
//Obrabiamy wszystkie zmienne przekazane metodą POST
foreach ($_POST AS $klucz => $wartosc)
{
$wartosc= trim($wartosc);//usuwamy białe znaki
if (get_magic_quotes_gpc())
$wartosc= stripslashes($wartosc);
$wartosc=htmlspecialchars($wartosc, ENT_QUOTES);
$_POST[$klucz]=$wartosc;
}
$login=$_POST['login'];
$haslo=$_POST['haslo'];
$re_haslo=$_POST['re_haslo'];
$email=$_POST['email'];
$blad_txt='';
$blad=false;
//Sprawdzamy czy użytkownik o danym Loginie nie jest juz zajęty
$zapytanie_sprawdz_usera= "select * from users where user_name='$login' ";
$wynik = mysql_query($zapytanie_sprawdz_usera);
if(!$wynik)
{
echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej
.';
exit;
}
if(mysql_num_rows($wynik)>0)
{
$sprawdz_login=1;
}
// Sprawdzamy czy adres email sie nie powtarza.
$zapytanie_sprawdz_email= "select * from users where user_email ='$email' ";
$wynik_email = mysql_query($zapytanie_sprawdz_email);
if(!$wynik_email)
{
echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej
.';
exit;
}
if(mysql_num_rows($wynik_email)>0)
{
$sprawdz_email=1;
}
//sprawdzamy czy poprawnie jest wypełnine pole login
if(empty($login)){
$info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if($sprawdz_login==1){
$info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Login o takiej nazwie już istnieje.</font>';
$blad=true;
}
else if(strlen($login)<5){
$info_txt_nick.='<font color="#B20000">Login jest za krótki.</font>';
$blad=true;
}
else if(strlen($login)>12){
$info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Nie poprawna nazwa loginu, max 12 znaków.</font>';
$blad=true;
}
else{
$info_txt_nick.='<img src="v.gif" /> <font color="#207C07"> OK.</font>';
}
//sprawdzamy czy jest prawidlowe haslo
if(empty($haslo)){
$info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if(strlen($haslo)<=6) {
$info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Hało jest za krótkie.</font>';
$blad=true;
}
else if(strlen($haslo)>16){
$info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Hasło może składać sie z Max 16 znaków.</font>';
$blad=true;
}
else{
$info_txt_haslo.='<img src="v.gif" /> <font color="#207C07"><b> OK.</b></font>';
}
//sprawdzamy czy jest 2 hasło
if(empty($re_haslo)){
$info_txt_re_harlo.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if($haslo != $re_haslo){
$info_txt_re_harlo.='<img src="x.gif" /> <font color="#B20000"> Hała muszą być takie same.</font>';
$blad=true;
}
else{
$info_txt_re_harlo.='<img src="v.gif" /> <font color="#B20000"><font color="#207C07"> OK.</font>';
}
//sprawdzamy czy jest podany prawidłowy adres e-mail
if(empty($email)){
$info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>';
$blad=true;
}
else if($sprawdz_email==1){
$info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Adres email o takiej nazwie już istnieje.</font>';
$blad=true;
}
else if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)){
$info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Adres email jest nie prawidłowy.</font>';
$blad=true;
}
else{
$info_txt_email.='<img src="v.gif" /> <font color="#207C07"> OK.</font>';
}
if(!$blad)
{
//poprawne dane - robmy z nimi co trzeba (zapisujemy do bazy danych itp.)
$pokaz_form=true;
// Wysyłamy zapytanie do bazy danych
$zapytanie_add_user = "INSERT INTO `users` values(NULL, '".$login."', '".sha1($haslo)."', '".$haslo."', '".$email."')";
// Odpowiedz
$odpowiedz = mysql_query($zapytanie_add_user);
if($odpowiedz > 0){
echo 'Rojestracja przebiegła pomyślnie do konca.<br /><ul><li>Twój nick to: '.$login.'</li><li>haslo: '.$haslo.'</li><li>re_haslo: '.$re_haslo.'</li><li>email: '.$email.'</li></ul>';
}
else{
$pokaz_form=false;
echo 'Problem z MySQL.';
}
}
else
{
//cos jest zle – wyświetlamy stosowne komunikaty
// echo $blad_txt;
$pokaz_form=false;
}
}
else
{
//wypelniamy zmienne pustymi danymi jesli formularz nie został jeszcze wysłany
$login='';
$haslo='';
$re_haslo='';
$email='';
}
//wyswietlamy formularz
if($pokaz_form!=true){
?>
<style>
table.form{
margin-left: 120px;
font-size: 12px;
}
td.title{
vertical-align: bottom;
text-align: right;
}
td.info{
vertical-align: bottom;
text-align: left;
}
</style>
<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST">
<table class="form" name="form" border="0px" cellpadding="3px" cellspacing="0px">
<tbody>
<tr>
<td style="width:80px;"></td>
<td>REJESTRACJA</td>
</tr>
<tr>
<td class="title">Login:</td>
<td class="info">
<input type="text" name="login" value="<? echo $login; ?>"> <? echo $info_txt_nick; ?>
</td>
</tr>
<tr>
<td class="title">Hasło:</td>
<td class="info">
<input type="text" name="haslo" value="<? echo $haslo; ?>"> <? echo $info_txt_haslo; ?>
</td>
</tr>
<tr>
<td class="title">Powtórz Hasło:</td>
<td class="info">
<input type="password" name="re_haslo" value="<? echo $re_haslo; ?>"> <? echo $info_txt_re_harlo; ?>
</td>
</tr>
<tr>
<td class="title">E-Mail:</td>
<td class="info">
<input type="text" name="email" value="<? echo $email; ?>"> <? echo $info_txt_email; ?>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="wyslij" value="Wyślij" />
<input type="button" value="wyczyść" class="clean" onclick="window.location='<? $_SERVER['PHP_SELF']; ?>' "/>
</td>
</tr>
</tbody>
</table>
</form>
v2.0
<?
}
else{
return false;
}
?>
Zawartość pliku config_includes.php
Kod
<?php
include ('cfg/database_cfg.php'); //połączenie z bazą danych
?>
include ('cfg/database_cfg.php'); //połączenie z bazą danych
?>
Zawartość pliku database_cfg.php
Kod
<?PHP
/*
=============================
===== Database Settings =====
=============================
*/
######## DO EDYCJI ########
$MySQL['serv'] = 'localhost'; // Serwer/Host DB MySQL
$MySQL['user'] = 'root'; // Nazwa użytkownika DB MySQL
$MySQL['pass'] = ''; // Hasło DB MySQL
$MySQL['db'] = 'baza'; // Nazwa DB MySQL
#######################
// NIE Ruszać
mysql_connect($MySQL['serv'],$MySQL['user'],$MySQL['pass']) or die("Nie mozna polaczyc sie z Serverem SQL: ".mysql_error());
mysql_select_db($MySQL['db']) or die("Nie mozna połączyc sie z baza MySQL: ".mysql_error());
/*
=================================
===== End Database Settings =====
=================================
*/
?>
/*
=============================
===== Database Settings =====
=============================
*/
######## DO EDYCJI ########
$MySQL['serv'] = 'localhost'; // Serwer/Host DB MySQL
$MySQL['user'] = 'root'; // Nazwa użytkownika DB MySQL
$MySQL['pass'] = ''; // Hasło DB MySQL
$MySQL['db'] = 'baza'; // Nazwa DB MySQL
#######################
// NIE Ruszać

mysql_connect($MySQL['serv'],$MySQL['user'],$MySQL['pass']) or die("Nie mozna polaczyc sie z Serverem SQL: ".mysql_error());
mysql_select_db($MySQL['db']) or die("Nie mozna połączyc sie z baza MySQL: ".mysql_error());
/*
=================================
===== End Database Settings =====
=================================
*/
?>
All 100$ by Me
Mam nadzieję że komuś sie to może przyda

Jeśli napisałem coś źle od razu pisać.
Pozdrawiam Korey