Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Szablon dla użytkownika
#1
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">&nbsp;</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(ddmenuitemddmenuitem.style.visibility 'hidden';
// get new layer and show it
ddmenuitem document.getElementById(id);
ddmenuitem.style.visibility 'visible';
}
// close showed layer
function mclose()
  {
  if(ddmenuitemddmenuitem.style.visibility 'hidden';
}
// go close timer
function mclosetime()
  {
  closetimer window.setTimeOut(mclosetimeout);
}
// 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(
=> 'a'=> 'b'=> 'c'=> 'd'=> 'e'=> 'f'=> 'g'=> 'h'=> '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(
=> 'a'=> 'b'=> 'c'=> 'd'=> 'e'=> 'f'=> 'g'=> 'h'=> '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;">&copy; <?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> 
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości