Kod PHP:
<?php
Ponieważ plik jest wczytywany w metodzie , musimy zadeklarować niektóre zmienne jako globalne . Dwie zmienne odpowiedzialne za pozostawienie pustych pól podczas logowania oraz za błędne dane , którymi zostały wypełnione pola .
Kod PHP:
global $LoginAppNullFields;
global $LoginAppBadData;
?>
Dokument powinien rozpoczynać się od zadeklarowania jego nagłówka z informacją o wersji używanego języka do kodowania . Istnieją bowiem różne odmiany języka HTML wraz z XHTML , z którego rozwijania zrezygnowano .
Kod PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
Nazwa strony pokazywana w pasku tytułu przeglądarki jest drukowana pomiędzy znacznikami TITLE . W przypadku gdyby zmienna z wartością nie była pusta , wówczas ustawiamy wartość z tej zmiennej , a następnie końcówkę wraz z nazwą strony dostępną w odpowiedniej do tego tablicy z konfiguracją . Kiedy ta zmienna jest pusta , ustawiamy jedynie wartość z tablicy .
Kod PHP:
<title><?php
if($this->AppTitle != ""){echo $this->AppTitle.' - '.$this->DBConfigTable['title'];}
else{echo $this->DBConfigTable['title'];}
?></title>
Kodowanie strony ustawiamy na UTF-8 , dzięki czemu można utworzyć witryny pisane w wielu językach . Dodajemy opis strony i jej słowa kluczowe .
Kod PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="<?php echo $this->AppDesc; ?>" />
<meta name="keywords" content="<?php echo $this->AppKey; ?>" />
Teraz należy załadować arkusz stylów : domyślny oraz nasz własny .
Kod PHP:
<link rel="stylesheet" type="text/css" href="<?php echo $this->AppUrl; ?>view/beans/css/default.css">
<link rel="stylesheet" type="text/css" href="<?php echo $this->AppUrl; ?>view/beans/css/system.css">
Ładujemy także bibliotekę LightBox wraz z określeniem jej efektów wizualnych , które będą pojawiały się podczas powiększania obrazu .
Kod PHP:
<script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/prototype.js"></script>
<script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/lightbox.js"></script>
<link rel="stylesheet" href="<?php echo $this->AppUrl; ?>library/lightbox/css/lightbox.css" type="text/css" media="screen" />
Ikona pojawiająca się w pasku adresu obok naszego URL strony .
Kod PHP:
<link rel="Shortcut icon" href="<?php echo $this->AppUrl; ?>fb_images/facebook.ico" />
Tworzymy własne skrypty JavaScript . Pierwsza funkcja będzie służyła potwierdzaniu zamiaru usunięcia danego elementu i będzie przyjmowała URL , pod jaki użytkownik ma zostać przekierowany , oraz treść komunikatu , który należy użytkownikowi wyświetlić . Natomiast druga funkcja będzie używana do pokazywania warstw . Jedynym parametrem jest nazwa elementu . Gdy będzie widoczny , po użyciu funkcji zniknie on z ekranu . Natomiast kiedy będzie niewidoczny , pojawi się w określonym miejscu.
Kod PHP:
<script language="JavaScript">
function DeleteInfo(URL,Comunicate){if(Confirm(Comunicate)){window.location = URL;}}
function PublishCommForm(DivFormName){if(document.getElementById(DivFormName).style.display == 'block'){document.getElementById(DivFormName).style.display='none';}else{document.getElementById(DivFormName).style.display='block';}}
</script>
Załadujemy jeszcze bibliotekę Prototype do operacji związanych z AJAX-em .
Kod PHP:
<script src="<?php echo $this->AppUrl; ?>library/prototype.js"></script>
</head>
<body>
Rozpoczynamy pierwszą tabelę widoczną na samej górze strony zawierającą logo oraz pola do logowania bądź menu użytkownika .
Kod PHP:
<table width="100%" cellpadding="0" cellspacing="0"><tr><td style="background-color: #f3f4f9;"><?php
Sprawdzamy za pomocą metody , czy nasz użytkownik jest zalogowany . Gdy zmienna sesyjna nie będzie posiadała żadnej wartości , oznacza to , iż należy użytkownikowi pokazać okno , wktórym będzie mógł się zalogować oraz wystąpić z prośbą o przypomnienie hasła.
Kod PHP:
if($this->AppSessionGetValue('user_id') == "")
{
?>
<div style="width: 100%; background-color: #3b5998; padding-top: 5px; padding-bottom: 5px; color: #ffffff; text-align: center; font-family: 'Trebuchet MS'; height: 80px;">
<center>
<table cellpadding="0" cellspacing="0" border="0" width="1000">
<tr>
<td>
<a href="<?php echo $this->AppUrl; ?>"><img src="<?php echo $this->AppUrl; ?>fb_images/logo.png" width="200" height="70" /></a>
</td>
<td width="500" style="text-align: right;">
<form action="<?php echo $this->AppUrl; ?>index.php" method="post">
<table>
<tr>
<td style="text-align: left;">
<?php echo $Lang['l1_login_email']; ?>
</td>
<td style="text-align: left;">
<?php echo $Lang['l1_login_pswd']; ?>
</td>
<td>
</td>
</tr>
<tr>
<td style="text-align: left;">
<input type="text" name="login_user_email" style="width: 170px;" />
</td>
<td style="text-align: left;">
<input type="password" name="login_user_pswd" style="width: 170px;" />
</td>
<td style="text-align: left;">
<input type="hidden" name="fb_action_login" value="login" />
<input type="submit" value="<?php echo $Lang['l1_login_button']; ?>" class="submit_buttom" />
</td>
</tr>
<tr>
<td style="text-align: left;">
<?php echo '<a href="'.$this->AppMakeLink('password').'" class="up_menu">'.$Lang['l1_m_remind_password'].'</a>'; ?>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</center>
</div>
<?php
}
else
{
Sprawdzamy sesję , w której powinien znajdować się identyfikator użytkownika pobrany z tabeli z ich danymi .
Kod PHP:
if($this->AppSessionGetValue('user_id') != "")
{
Na samej górze strony , w przypadku zalogowania się na swoje konto , jest widoczna lista przyjaciół . Musimy więc wybrać z tabeli 14 osób , ponieważ tyle znajdzie miejsce u góry strony bez jej rozsuwania , gdzie użytkownik jest do nich przypisany , a wszystkie znajomości zostały zaakceptowane .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'friends
WHERE
friend_user_id = "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'"
AND
friend_accept = "y"
LIMIT 0,14
';
Wykonujemy zapytanie i pobieramy wyniki .
Kod PHP:
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
echo '<center><table cellpadding="0" cellspacing="0" border="0" width="1000"><tr><td>';
Kiedy liczba przyjaciół , a tak zawsze będzie od razu po rejestracji , jest równa zero , wyświetlamy łącze do formularza , które pozwala na zaproszenie nowych osób do strony , na której mamy konto .
Kod PHP:
if($Rows == 0)
{
echo $Lang['nv1_no_friend'].' <a href="'.$this->AppUrl.'index.php?app=emailinvite">'.$Lang['nv1_invite_friend'].'</a>';
}
else
{
echo '<table';
echo '<td class="fb_row_underline">'.$Lang['nv1_your_friends'].'</td>';
Istniejących znajomych należy wybrać z tabeli z użytkownikami , ponieważ w poprzednim rapytaniu jako rezultat otrzymaliśmy tylko ich identyfikatory . Dane każdej z osób pobieramy w osobnym odpytaniu bazy danych w pętli określającą liczbę przyjaciół .
Kod PHP:
for($f=0;$f<$Rows;$f++)
{
$SqlConfig = 'SELECT user_id, user_firstname, user_lastname, user_picture, user_gender, user_active FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($Result[$f]['friend_friend_id']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultFriend = $this->AppDBResult();
Sprawdzamy , czy użytkownik ma aktywne konto w serwisie .
Kod PHP:
if($ResultFriend[0]['user_active'] == 'y')
{
if($ResultFriend[0]['user_picture'] == 'y')
{
Avatar użytkownika istnieje i możemy śmiało załadować plik o średniej wielkości .
Kod PHP:
$FileImage = $this->AppUrl.'upload/'.$ResultFriend[0]['user_id'].'/prifile_medium.jpg';
}
else
{
W przypadku gdyby nie posiadał własnego obrazu , ładujemy domyślny z folderu zawierającego domyślne pliki zarównodla kobiet , jak i mężczyzn , uwzględniając przy wyborze płeć podaną podczas zakładania własnego profilu .
Kod PHP:
if($ResultFriend[0]['user_gender'] == 'm')
{
$FileImage = $this->AppUrl.'fb_images/profile_small_men.jpg';
}
else
{
$FileImage = $this->AppUrl.'fb_images/profile_small_women.jpg';
}
}
Poniżej tworzymy linki do profilu danej osoby za pomocą specjalnej funkcji , która pozwala zapomnieć o tworzeniu odpowiednich adresów dla strony .
Kod PHP:
echo '<td class="fb_row_underline"><a href="'.$this->AppMakeLink('showprofile', $ResultFriend[0]['user_id']).'" title="'.$this->AppDBUnsecure($ResultFriend[0]['user_firstname']).''.$this->AppDBUnsecure($ResultFriend[0]['user_lastname']).'"><img src="'.$FileImage.'" height="25" /></a></td>';
}
}
echo '</table>';
}
echo '</td></tr></table></center>';
}
?>
Drukujemy tabelkę zawierającą logo .
Kod PHP:
<div style="width: 100%; background-color: #3b5998; padding-top: 5px; padding-bottom: 5px; color: #ffffff; text-align: center; font-family: 'Trebuchet MS'; height: 20px;">
<center>
<table cellpadding="0" cellspacing="0" border="0" width="1000">
<tr>
<td>
<a href="<?php echo $this->AppUrl; ?>"><img src="<? echo $this->AppUrl; ?>fb_images/logo_mini.png" width="200" height="20" /></a>
</td>
<td width="250"> </td>
<td width="650" class="top_menu_td" style="text-align: right; background-color: #627aad; border: solid 1px #1D4088; border-bottom-width: 0px; vartical-align: bottom; padding-right: 20px;">
Tworzenie rozwijanego menu zrobimy za pomocą skryptu , który także jest dostępny w Internecie . W zależności od opcji , która zostanie wybrana , odpowiednia pozycja się otworzy .
Kod PHP:
<!-- dd menu -->
<script type="text/javascript">
<!--
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
// open hidden layer
function mopen(id)
{
// cancel close timer
mcancelclosetime();
// close old layer
if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
// get new layer and show it
ddmenuitem = document.getElementById(id);
ddmenuitem.style.visibility = 'visible';
}
// close showed layer
function mclose()
{
if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}
// go close timer
function mclosetime()
{
closetimer = window.setTimeOut(mclose, timeout);
}
// cancel close timer
function mcancelclosetime()
{
if(closetimer)
{
window.clearTimeout(closetimer);
closetimer = null;
}
}
// close layer when click-out
document.onclick = mclose;
// -->
</script>
Należy jeszcze umieścić arkusz stylów dla górnego menu .
Kod PHP:
<style>
#sddm{margin: 0;padding: 0;z-index: 30;text-align: right;}
#sddm li{margin: 0;padding: 0;list-style: none;float: left;font: bold 11px arial;}
#sddm li a{display: block;margin: 0 0px 0 0;padding 4px 4px;width: 100px;background: #627aad;color: #FFF;text-align center;text-decoration: none;}
#sddm li a:hover{background: #6d86b7;}
#sddm div{position: absolute;visibility: hidden;margin: 0;padding: 0;background: #EAEBD8;border: 1px solid #5970B2;}
#sddm div a{position: relative;display: block;margin: 0;padding: 5px 10px;width: auto;white-space: nowrap;text-align: left;text-decoration: none;background: #ffffff;color: #3a579a;font: 11px arial;}
#sddm div a:hover{background: #6d86b7;color: #FFF;}
</style>
Możemy już stworzyć menu za pomocą listy UL , gdzie poszczególne elementy będą zdefiniowane jako jej pozycje za pomocą znacznika LI .
Kod PHP:
<ul id="sddm">
Menu Strona Domowa
Kod PHP:
<li><a href="<?php echo $this->AppUrl; ?>index.php"><?php echo $Lang['l1_m_homepage']; ?></a></li>
Menu Profilu
Kod PHP:
<li><a href="#" onmouseover="mopen('m2')" onmouseout="mclosetime()"><?php echo $Lang['l1_m_profile_menu']; ?></a>
<div id="m2" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<?php echo '<a href="'.$this->AppMakeLink('showprofile', $this->AppSessionGetValue('user_id')).'">'.$Lang['l1_m_see_your_profile'].'</a>';
echo '<a href="'.$this->AppMakeLink('change_pswd').'">'.$Lang['a_d10_m_change_password'].'</a>';
if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('privacy').'">'.$Lang['l1_m_set_priwacy'].'</a>';}
echo '<a href="'.$this->AppMakeLink('picture').'">'.$Lang['l1_m_profilepicture'].'</a>';
if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('school').'">'.$Lang['l1_m_edit_school'].'</a>';
echo '<a href="'.$this->AppMakeLink('work').'">'.$Lang['l1_m_edit_work'].'</a>';}
echo '<a href="'.$this->AppMakeLink('about').'">'.$Lang['l1_m_about'].'</a>';
if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('language').'">'.$Lang['up4_d1_m_languages'].'</a>';
echo '<a href="'.$this->AppMakeLink('entertainment').'">'.$Lang['l1_m_enternaiment'].'</a>';
echo '<a href="'.$this->AppMakeLink('maritalstatus').'">'.$Lang['l1_m_marialstatus'].'</a>';
echo '<a href="'.$this->AppMakeLink('philosophy').'">'.$Lang['l1_m_philosophy'].'</a>';
echo '<a href="'.$this->AppMakeLink('sport').'">'.$Lang['l1_m_sport'].'</a>';}
echo '<a href="'.$this->AppMakeLink('contactinformation').'">'.$Lang['l1_m_contactinfo'].'</a>';
if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('interests').'">'.$Lang['l1_m_interests'].'</a>';}
?>
</div>
</li>
Menu Przyjaciół
Kod PHP:
<li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()"><?php echo $Lang['l1_m_friends']; ?></a>
<div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<?php if($this->AppSessionGetValue('user_firm') != 'y')
{
echo '<a href="'.$this->AppMakeLink('friends').'">'.$Lang['l1_m_edit_firends'].'</a>';
echo '<a href="'.$this->AppMakeLink('emailinvite').'">'.$Lang['l1_m_emailinvite'].'</a>';
echo '<a href="'.$this->AppMakeLink('searchfriends').'">'.$Lang['l1_m_search_firends'].'</a>';
echo '<a href="'.$this->AppMakeLink('inviteyou').'">'.$Lang['l3_a1_invite_you'].'</a>';
echo '<a href="'.$this->AppMakeLink('likeit').'">'.$Lang['l1_m_likeit'].'</a>';
}
?>
</div>
</li>
Menu wiadomosci
Kod PHP:
<li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()"><?php echo $Lang['l1_m_messages']; ?></a>
<div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="<?php echo $this->AppMakeLink('pm_get'); ?>"><?php echo $Lang['l1_m_inbox']; ?></a>
<a href="<?php echo $this->AppMakeLink('pm_send'); ?>"><?php echo $Lang['l1_m_send']; ?></a>
<a href="<?php echo $this->AppMakeLink('pm_new'); ?>"><?php echo $Lang['l1_m_write_new']; ?></a>
</div>
</li>
Menu Wyloguj
Kod PHP:
<li><a href="<?php echo $this->AppUrl; ?>index.php?app=logout"><?php echo $Lang['l1_m_logout']; ?></a></li>
</ul>
</td>
</tr>
</table>
</center>
</div>
<?php
}
?>
Teraz możemy zacząć tworzyć główną część strony przeznaczoną do wyświetlania treści generowanych przez system .
Kod PHP:
<center>
<div style="padding: 5px;text-align: center;width: 1000px;background-color: #f3f4f9;">
<?php
Najpierw trzeba się jednak zatroszczyć o błędneinformacje podane podczas logowania . Pierwszą jest brak wypełnienia wszystkich pól , a drugim wypełnienie ich , lecz błędnymi danymi .
Kod PHP:
if($LoginAppNullFields != "")
{
echo '<span class="span_bad_login">'.$Lang['l1_login_data_null_fields'].'</span>';
}
if($LoginAppBadData != "")
{
echo '<span class="span_bad_login">'.$Lang['l1_login_data_bad'].'</span>';
}
/*
Sprawdzamy , czy formularz do rejestracji strony firmowej bądź opisującej jakiś temat został wysłany .
*/
if($_POST['fb_action'] == 'register_firm')
{
Sprawdzamy , czy wszystkie pola zostały wypełnione , gdyż tylko w takim przypadku możliwa jest rejestracja . Gdy któreś w pól pozostało puste , wówczas wyświetlamy odpowiedni komunikat z prośbą o wypełnienie .
Kod PHP:
if($_POST['reg_firm_user_firstname'] == "" OR $_POST['reg_firm_user_lastname'] == "" OR $_POST['reg_firm_user_email'] == "" OR $_POST['reg_firm_user_email_rec'] == "" OR $_POST['reg_firm_user_pswd'] == "" OR $_POST['reg_firm_user_pswd_rec'] == "" OR $_POST['reg_firm_user_firm_name'] == "" OR $_POST['reg_firm_user_www'] == "" OR $_POST['reg_firm_user_firstlastname'] == "" )
{
echo $this->AppPrintWarning($Lang['l1_not_fill_all_fields']);
}
else
{
Musimy sprawdzić , czy adresy e-mailowe wpisane w formularzu są identyczne .
Kod PHP:
if($_POST['reg_firm_user_email'] == $_POST['reg_firm_user_email_rec'])
{
Za pomocą metody spawdzamy , czy adres e-mailowy jest prawidłowo skonstruowany .
Kod PHP:
if($this->AppValidateEmail($_POST['reg_firm_user_email']))
{
Hasło i jego potwierdzenie także powinny być identyczne .
Kod PHP:
if($_POST['reg_firm_user_pswd'] == $_POST['reg_firm_user_pswd_rec'])
{
Pozostało nam jeszcze jedno do zrobienia . Musimy sprawdzić , czy użytkownik o takim adresie e-mailowym już nie zarejestrował swojego konta .
Kod PHP:
if(!$this->CheckIsEmail($_POST['reg_firm_user_email']))
{
Tworzymy tablicę z literami oraz cyframi , spośród których będzie losowany kod przeznaczony do aktywacji konta .
Kod PHP:
$ArrayToRand = array(
1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e', 6 => 'f', 7 => 'g', 8 => 'h', 9 => 'i', 10 => 'j', 11 => 'k', 12 => 'l', 13 => 'm', 14 => 'n', 15 => 'o', 16 => 'p', 17 => 'q', 18 => 'r', 19 => 's', 20 => 't', 21 => 'u', 22 => 'w', 23 => 'x', 24 => 'y', 25 => 'z', 26 => '1', 27 => '2', 28 => '3', 29 => '4', 30 => '5', 31 => '6', 32 => '7', 33 => '8', 34 => '9', 35 => '0'
);
$SpecialCode = '';
for($i=0;$i<24;$i++)
{
$SpecialCode .= $ArrayToRand[array_rand('$ArrayToRand')];
}
Możemy już umieścić daną stronę firmową lub fanów w bazie danych wraz z danymi podanymi podczas jej zakładania .
Kod PHP:
$SqlConfig = 'INSERT INTO '.$this->DBPrefix.'user
(
user_lang,
user_firstname,
user_lastname,
user_gender,
user_birth_day,
user_birth_month,
user_birth_year,
user_email,
user_pswd,
user_code,
user_reg,
user_firm_name,
user_www,
user_firstlastname,
user_is_firm,
)
VALUES
(
"'.$this->AppDBSecure($this->AppSessionGetValue('user_lang')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_firstname')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_lastname')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_gender')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_birth_day')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_birth_month')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_birth_year')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_email')).'",
"'.$this->AppDBSecure(md5($_POST['reg_firm_user_pswd'])).'",
"'.$this->AppDBSecure($SpecialCode).'",
"'.$this->AppDBSecure(time()).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_firm_name')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_www')).'",
"'.$this->AppDBSecure($_POST('reg_firm_user_firstlastname')).'",
"y"
)
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Wybieramy nowo założone konto użytkownika w celu pozyskania jego numeru ID , według którego utworzymy odpowiedni katalog na pliki wgrywane na serwer .
Kod PHP:
$SqlConfig = ' SELECT user_id FROM '.$this->DBPrefix.'user
WHERE
user_birth_day = "'.$this->AppDBSecure($_POST['reg_firm_user_birth_day']).'"
AND
user_birth_month = "'.$this->AppDBSecure($_POST['reg_firm_user_birth_month']).'"
AND
user_birth_year = "'.$this->AppDBSecure($_POST['reg_firm_user_birth_year']).'"
AND
user_email = "'.$this->AppDBSecure($_POST['reg_firm_user_email']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
/*
Tworzymy katalog .
*/
mkdir('./upload/'.$Result[0]['user_id']);
/*
Teraz przygotujemy list e-mailowy zawierający w treści adres przeznaczony do aktywacji konta .
*/
$ContentOfLetter = $Lang['reg_email_send'].$this->AppUrl.'index.php?app=account&user_email='.$_POST['reg_firm_user_email'].'&code='.$SpecialCode.' '.$Lang['reg_email_second_send'];
Definiujemy kolejno adres , na który zostanie e-mail wysłany , e-mail , z którego przyjdzie on na konto , temat wiadomości , treść utworzoną w poprzedniej zmiennej oraz nagłówek , w jakim ma zostać wysłana wiadomość .
Kod PHP:
$this->AppSendTo = $_POST['reg_firm_user_email'];
$this->AppSendFrom = $this->DBConfigTable['admin_email'];
$this->AppSendTopic = $Lang['reg_activation'];
$this->AppSendContent = $ContentOfLetter;
$this->AppSendHeaders = 'text';
Wysyłamy e-mail i drukujemy informację o poprawnej rejestracji .
Kod PHP:
$this->AppSendEmail();
echo $this->AppPrintSuccess($Lang['reg_account_created']);
Na samym końcu można wyczyścić pola wypełnione przez użytkownika w formularzu .
Kod PHP:
$_POST['reg_firm_user_firstname'] = '';
$_POST['reg_firm_user_lastname'] = '';
$_POST['reg_firm_user_email'] = '';
$_POST['reg_firm_user_email_rec'] = '';
$_POST['reg_firm_user_pswd'] = '';
$_POST['reg_firm_user_pswd_rec'] = '';
$_POST['reg_firm_user_gender'] = '';
$_POST['reg_firm_user_birth_day'] = '';
$_POST['reg_firm_user_birth_month'] = '';
$_POST['reg_firm_user_birth_year'] = '';
$ClearDataRegistrationForm = true;
}
else
{
Drukujemy komunikat informujący , iż taki e-mail znajduje się już w naszej bazie .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_user_this_email_exists']);
}
}
else
{
Informacja wyświetlająca komunikat , iż hasło i jego potwierdzenie nie pasują do siebie .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_pswd_dont_match']);
}
}
else
{
Poinformowanie użytkownika , iż adres e-mailowy został podany niepoprawnie .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_email_bad']);
}
}
else
{
Wyświetlamy informację o niepasujących do siebie podanych adresach e-mailowych .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_email_rec_dont_match']);
}
}
}
kiedy akcją po wysłaniu formularza było zarejestrowanie użytkownika , musimy przeprowadzić dokładne sprawdzenie pól formularza , a następnie jeżeli wszystkie pola będą posiadały odpowiednią wartość , można takiego użytkownika dodać .
Kod PHP:
elseif($_POST['fb_action'] == 'register')
{
Pierwszą rzeczą jest sprawdzenie , czy któreś z wymaganych pól nie pozostało puste . Wówczas wyświetlamy użytkownikowi informację o konieczności jego wypełnienia .
Kod PHP:
if($_POST['user_firstname'] == "" OR $_POST['user_lastname'] == "" OR $_POST['user_email'] == "" OR $_POST['user_email_rec'] == "" OR $_POST['user_pswd'] == "" OR $_POST['user_pswd_rec'] == "" OR $_POST['gender'] == "" OR $_POST['user_birth_day'] == "" OR $_POST['user_birth_month'] == "" OR $_POST['user_birth_year'] == "")
{
echo $this->AppPrintWarning($Lang['l1_not_fill_all_fields']);
}
else
{
Sprawdzamy także , czy e-mail podany w formularzu pasuje do jego potwierdzenia .
Kod PHP:
if($_POST['user_email'] == $_POST['user_email_rec'])
{
Adres e-mailowy może zostać podany niepoprawnie i należy sprawdzić , czy odpowiada on założeniom składni .
Kod PHP:
if($this->AppValidateEmail($_POST['user_email']))
{
Teraz sprawdzamy , czy hasło podane w formularzu jest identyczne z jego potwierdzeniem .
Kod PHP:
if($_POST['user_pswd'] == $_POST['user_pswd_rec'])
{
Na samym końcu należy zadać zapytanie do bazy danych , czy użytkownik z takim adresem e-mailowym już się nie zarejestrował .
Kod PHP:
if(!$this->CheckIsEmail($_POST['user_email']))
{
Wszystkie warunki zostały pozytywnie zakończone . Teraz możemy przejść do generowania kodu aktywacyjnego do konta , które zostanie wysłane na e-mail podany podczas zakładania profilu .
Kod PHP:
$ArrayToRand = array(
1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e', 6 => 'f', 7 => 'g', 8 => 'h', 9 => 'i', 10 => 'j', 11 => 'k', 12 => 'l', 13 => 'm', 14 => 'n', 15 => 'o', 16 => 'p', 17 => 'q', 18 => 'r', 19 => 's', 20 => 't', 21 => 'u', 22 => 'w', 23 => 'x', 24 => 'y', 25 => 'z', 26 => '1', 27 => '2', 28 => '3', 29 => '4', 30 => '5', 31 => '6', 32 => '7', 33 => '8', 34 => '9', 35 => '0'
);
$SpecialCode = '';
for($i=0;$i<24;$i++)
{
$SpecialCode .= $ArrayToRand[array_rand('$ArrayToRand')];
}
Wpisujemy dane do bazy danych .
Kod PHP:
$SqlConfig = 'INSERT INTO '.$this->DBPrefix.'user
(
user_lang,
user_firstname,
user_lastname,
user_gender,
user_birth_day,
user_birth_month,
user_birth_year,
user_email,
user_pswd,
user_code,
user_reg,
)
VALUES
(
"'.$this->AppDBSecure($this->AppSessionGetValue('user_lang')).'",
"'.$this->AppDBSecure($_POST('user_firstname')).'",
"'.$this->AppDBSecure($_POST('user_lastname')).'",
"'.$this->AppDBSecure($_POST('user_gender')).'",
"'.$this->AppDBSecure($_POST('user_birth_day')).'",
"'.$this->AppDBSecure($_POST('user_birth_month')).'",
"'.$this->AppDBSecure($_POST('user_birth_year')).'",
"'.$this->AppDBSecure($_POST('user_email')).'",
"'.$this->AppDBSecure(md5($_POST['user_pswd'])).'",
"'.$this->AppDBSecure($SpecialCode).'",
"'.$this->AppDBSecure(time()).'",
)
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Wybieramy użytkownika na podstawie danych zapisanych do bazy . Potzrebny będzie nam jego unikalny numer identyfikacyjny .
Kod PHP:
$SqlConfig = ' SELECT user_id FROM '.$this->DBPrefix.'user
WHERE
user_birth_day = "'.$this->AppDBSecure($_POST['user_birth_day']).'"
AND
user_birth_month = "'.$this->AppDBSecure($_POST['user_birth_month']).'"
AND
user_birth_year = "'.$this->AppDBSecure($_POST['user_birth_year']).'"
AND
user_email = "'.$this->AppDBSecure($_POST['user_email']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Tworzymy katalog na pliki graficzne , które użytkownik będzie wgrywał na własne konto .
Kod PHP:
mkdir('./upload/'.$Result[0]['user_id']);
Tworzymy treść listu e-mail zawierającego link do aktywacji konta na naszej stronie .
Kod PHP:
$ContentOfLetter = $Lang['reg_email_send'].$this->AppUrl.'index.php?app=account&user_email='.$_POST['user_email'].'&code='.$SpecialCode.' '.$Lang['reg_email_second_send'];
Definiujemy kolejno : adres e-mailowy , na który mamy zamiar wysłać list , adres nadawcy z tablicy konfiguracyjnej , temat , treść oraz format listu .
Kod PHP:
$this->AppSendTo = $_POST['user_email'];
$this->AppSendFrom = $this->DBConfigTable['admin_email'];
$this->AppSendTopic = $Lang['reg_activation'];
$this->AppSendContent = $ContentOfLetter;
$this->AppSendHeaders = 'text';
Wysyłamy list i wyświetlamy komunikat z informacją , że takie konto zostało poprawnie założone .
Kod PHP:
$this->AppSendEmail();
echo $this->AppPrintSuccess($Lang['reg_account_created']);
Musimy jeszcze wyczyścić dane pochodzące z formularza przeznaczonego do rejestracji .
Kod PHP:
$_POST['reg_firm_user_firstname'] = '';
$_POST['reg_firm_user_lastname'] = '';
$_POST['reg_firm_user_email'] = '';
$_POST['reg_firm_user_email_rec'] = '';
$_POST['reg_firm_user_pswd'] = '';
$_POST['reg_firm_user_pswd_rec'] = '';
$_POST['reg_firm_user_gender'] = '';
$_POST['reg_firm_user_birth_day'] = '';
$_POST['reg_firm_user_birth_month'] = '';
$_POST['reg_firm_user_birth_year'] = '';
$ClearDataRegistrationForm = true;
}
else
{
Informacja dla użytkowników , którego adres e-mailowy jest już zapisany w bazie danych .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_user_this_email_exists']);
}
}
else
{
W przypadku kiedy hasło i jego potwierdzenie nie pasują do siebie , także należy wyświetlić odpowiedni komunikat .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_pswd_dont_match']);
}
}
else
{
Informacja o błędnie wpisanym adresie e-mailowym .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_email_bad']);
}
}
else
{
Przekazujemy użytkownikowi komunikat o błędzie we wpisanych adresach e-mailowych , które nie pasują do siebie .
Kod PHP:
echo $this->AppPrintWarning($Lang['l1_email_rec_dont_match']);
}
}
}
?>
</div>
Należy stworzyć tabelę , w której będzie wyświetlana treść całego systemu .
Kod PHP:
<table cellpadding="0" cellspacing="0" border="0" width="1000" width="1000" style="table_body">
<tr>
<?php
Gdy użytkownik nie jest zalogowany , wyświetlamy tylko i wyłącznie wartość zmiennej zawierającej treść wygenerowaną przez system .
Kod PHP:
if($this->AppSessionGetValue('user_id') == "")
{
echo '<td width="1000" style="border: solid 1px #cccccc;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;background-color: #ffffff;">';
echo $this->AppBody;
echo '</td>';
}
else
{
Dana osoba została już zidentyfikowana . W przypadku gdyby wybrała pozycję gry z głównego menu , wystarczy pokazać jej treść z systemu , a dodatkowo po prawej stronie menu .
Kod PHP:
if($app == 'playgame')
{
echo '<td width="800" style="border-width: 0px;padding-left: 5px;padding-right: 5px;padding-bottom: 20px;background-color: #ffffff;">';
echo $this->AppBody;
echo '</td>';
echo '<td width="200" style="border-width: 0px;padding-left: 5px;padding-right: 5px;padding-bottom: 20px;background-color: #ffffff;">';
$this->RightMenu();
echo '</td>';
}
else
{
Każdy inny przypadek , czyli aktywność użytkownika na dowolnej stronie oprócz gier , spowoduje wygenerowanie wyglądu z lewym menu , treścią oraz prawym menu .
Kod PHP:
echo'<td width="200" style="border: solid 1px #3b5998;border-width: 0px;border-right-width: 1px;padding-left: 20px;padding-bottom: 20px;background-color: #ffffff;">';
$this->LeftMenu();
echo '</td>';
echo 'td width="600" style="border-width: 0px;padding-left: 5px;padding-right: 5px;padding-bottom: 20px;background-color: #ffffff;">';
echo $this->AppBody;
echo '</td>';
echo 'td width="200" style="border-width: 0px;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;background-color: #ffffff;">';
$this->RightMenu();
echo '</td>';
}
}
?>
</tr>
</table>
</center>
<br />
</td>
</tr>
</table>
<br />
Drukujemy tabelę zawierającą informacje o stopce i zmianie języka .
Kod PHP:
<center>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td style="background-color: #ffffff;">
<center>
<table width="1000" cellpadding="0" cellspacing="0">
<tr>
<td style="border-top: solid 1px #b3b3b3;font-size: 11px;">© <?php echo $Lang['l1_copyright']; ?>
<?php
echo $Lang['up_a1_language_select'];
Sprawdzamy , który język został ustawiony w sesji użytkownika , a następnie dla wybranego określamy odpowiedni styl pozwalający na jego wyróżnienie .
Kod PHP:
if($this->AppSessionGetValue('user_lang') == 'pl')
{
$LangPLIsChecker = ' style="font-weight: bold;" ';
}
if($this->AppSessionGetValue('user_lang') == 'en')
{
$LangENIsChecker = ' style="font-weight: bold;" ';
}
echo '<a href="'.$this->AppUrl.'index.php?fb_action_lang=change&select_language_set=pl" '.$LangPLIsChecker.'>'.$Lang['u_p_a1_pl'].'</a>';
echo '<a href="'.$this->AppUrl.'index.php?fb_action_lang=change&select_language_set=en" '.$LangENIsChecker.'>'.$Lang['u_p_a1_en'].'</a>';
?>
</td>
<td style="border-top: solid 1px #b3b3b3;text-align: right;font-size: 11px;">
<?php echo $Lang['l1_copyright_by']; ?>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
Na końcu pliku umieszczamy krótką informację o prawach autorskich i aplikacji , która została skonstruowana w celach testowych .
Kod PHP:
<div style="width: 1000px;text-align: center;padding: 5px;color: #ffffff;background-color: #600000;">
<?php echo $Lang['copyright_trademark']; ?>
</div>
</center>
</body>