Ignore:
Timestamp:
Jun 18, 2013, 6:58:22 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Uživatelská podpora přepracována na aplikační modul.
Location:
trunk/Modules/User
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Modules/User/Registration.php

    r544 r547  
    11<?php
    22
    3 include('includes/global.php');
    4 
    5 function ShowForm()
     3class PageUserRegistration extends Page
    64{
    7   global $System;
    8  
    9   if(array_key_exists('sc', $_POST)) $Human = true;
    10     else $Human = false;
    11   if(array_key_exists('user', $_POST)) $UserName = $_POST['user'];
    12     else $UserName = '';
    13   if(array_key_exists('Email', $_POST)) $Email = $_POST['Email'];
    14     else $Email = '';
    15   if(array_key_exists('Team', $_POST)) $Team = $_POST['Team'];
    16     else $Team = '';
    17   if(array_key_exists('Language', $_POST)) $Language = $_POST['Language'];
    18     else $Language = 1;
    19  
    20   $Output = '<form action="?" method="post">
    21   <fieldset><legend>Registrace nového uživatele</legend>
    22   <table>
    23     <tr><td colspan="2">Pozorně si přečtěte <a href="info.php">pokyny k překladu</a> a řiďte se jimi. Překládat je nutno včetně háčků a čárek!<br/><br/></td></tr>
    24     <tr>
    25       <td>Jsi člověk? </td>';
    26       if($Human) $Checked = ' checked="checked"';
    27         else $Checked = '';
    28       $Output .= '<td><input type="checkbox" name="sc" '.$Checked.'/></td>
    29     </tr>
    30     <tr>
    31       <td>Jméno:</td>
    32       <td><input type="text" name="user" value="'.$UserName.'"/></td>
    33     </tr>
    34     <tr>
    35       <td>Heslo:</td>
    36       <td><input type="password" name="pass" /></td>
    37     </tr>
    38     <tr>
    39       <td>Potvrzení Hesla: </td>
    40       <td><input type="password" name="pass2" /></td>
    41     </tr>
    42     <tr>
    43       <td>Email: </td>
    44       <td><input type="text" name="Email" value="'.$Email.'"/></td>
    45     </tr>
    46     <tr>
    47       <td>Normálně budu překládat do: </td>
    48       <td>'.WriteLanguages($Language).'</td>
    49     </tr>
    50     <tr>
    51       <td>Patřím do týmu: </td>';
    52       if($Team == '') $Selected = ' selected="selected"';
    53         else $Selected = '';
    54       $Output .= '<td><select name="Team"><option value="0"'.$Selected.'>Žádného</option>
    55       ';
    56     $DbResult = $System->Database->query('SELECT `Name`, `Id` FROM `Team`');
    57     while($Line = $DbResult->fetch_assoc())
    58     {
    59       if($Team == $Line['Id']) $Selected = ' selected="selected"';
    60         else $Selected = '';
    61       $Output .= '<option value="0'.$Line['Id'].'"'.$Selected.'>'.$Line['Name'].'</option>';
    62     }
    63     $Output .= '</select></td>
    64     </tr>';
    65      $Output .= '</td></tr>'.
    66        '<tr><td>Upřednostněná verze klienta: </td><td>'.ClientVersionSelection('').'</td></tr>';
    67     $Output .= '<tr>
    68       <th><input type="submit" value="Registrovat" /></th>
    69     </tr>
    70   </table></fieldset></form>';
    71   return($Output);
    72 }
    73  
    74 
    75 $Output = '';
    76 if(array_key_exists('user', $_POST))
    77 {
    78   $ShowForm = true;
    79  
    80   $UserName = $_POST['user'];
    81   $Pass = $_POST['pass'];
    82   $Pass2 = $_POST['pass2'];
    83   $Email = $_POST['Email'];
    84   $Team = $_POST['Team'];
    85   $Language = $_POST['Language'];
    86   $PreferredVersion = $_POST['ClientVersion'];
    87   if($PreferredVersion == '') $PreferredVersion = 'NULL';
    88   if(array_key_exists('sc', $_POST)) $SpamCheck = $_POST['sc'];
    89     else $SpamCheck = '';
    90  
    91   if($SpamCheck != '')
    92   {
    93     if(($UserName != '') and ($Pass != '') and ($Pass2 != ''))
    94     {
    95       if(!in_array(strtolower($UserName), $Config['ForbiddedUserNames']))
    96       {
    97         if($Pass == $Pass2)
    98         {
    99           $DbResult = $System->Database->query('SELECT * FROM `User` WHERE LOWER(`Name`) = LOWER("'.$UserName.'")');
    100           $Line = $DbResult->fetch_row();
    101           if(!$Line)
    102           {
    103             if($Team == 0) $Team = 'NULL';
    104             $User->Register($UserName, $Pass, $Email, $Language, $Team, $PreferredVersion);
    105             $Output .= ShowMessage('Registrace proběhla úspěšně.');
    106             $Output .= 'Přečtěte si pozorně <a href="'.$System->Link('/info.php').'">pokyny pro překladání</a> a můžete pak hned začít překládat.';
    107             $User->Login($UserName, $Pass);
    108             WriteLog('Uživatel se zaregistroval: '.$UserName, LOG_TYPE_USER);     
    109             $ShowForm = false;
    110           } else $Output = ShowMessage('Uživatel se zadanou přezdívkou již existuje.', MESSAGE_CRITICAL);
    111         } else $Output = ShowMessage('Hesla se neshodují.', MESSAGE_CRITICAL);
    112       } else $Output = ShowMessage('To jméno uživatele nemůžete použít.', MESSAGE_CRITICAL);
    113     } else $Output = ShowMessage('Nelze použít prázdné jméno nebo heslo.', MESSAGE_CRITICAL);
    114   } else $Output = ShowMessage('Nejsi člověk. Strojům není dovoleno se registrovat.', MESSAGE_CRITICAL);
    115  
    116   if($ShowForm) $Output .= ShowForm();
    117 } else $Output .= ShowForm();
    118  
    119 ShowPage($Output);     
    120 
    121 ?>
     5        function ShowForm()
     6        {
     7                global $System;
     8       
     9                if(array_key_exists('sc', $_POST)) $Human = true;
     10                else $Human = false;
     11                if(array_key_exists('user', $_POST)) $UserName = $_POST['user'];
     12                else $UserName = '';
     13                if(array_key_exists('Email', $_POST)) $Email = $_POST['Email'];
     14                else $Email = '';
     15                if(array_key_exists('Team', $_POST)) $Team = $_POST['Team'];
     16                else $Team = '';
     17                if(array_key_exists('Language', $_POST)) $Language = $_POST['Language'];
     18                else $Language = 1;
     19       
     20                $Output = '<form action="?" method="post">
     21                <fieldset><legend>Registrace nového uživatele</legend>
     22                <table>
     23                <tr><td colspan="2">Pozorně si přečtěte <a href="info.php">pokyny k překladu</a> a řiďte se jimi. Překládat je nutno včetně háčků a čárek!<br/><br/></td></tr>
     24                <tr>
     25                <td>Jsi člověk? </td>';
     26                if($Human) $Checked = ' checked="checked"';
     27                else $Checked = '';
     28                $Output .= '<td><input type="checkbox" name="sc" '.$Checked.'/></td>
     29                </tr>
     30                <tr>
     31                <td>Jméno:</td>
     32                <td><input type="text" name="user" value="'.$UserName.'"/></td>
     33                </tr>
     34                <tr>
     35                <td>Heslo:</td>
     36                <td><input type="password" name="pass" /></td>
     37                </tr>
     38                <tr>
     39                <td>Potvrzení Hesla: </td>
     40                <td><input type="password" name="pass2" /></td>
     41                </tr>
     42                <tr>
     43                <td>Email: </td>
     44                <td><input type="text" name="Email" value="'.$Email.'"/></td>
     45                </tr>
     46                <tr>
     47                <td>Normálně budu překládat do: </td>
     48                <td>'.WriteLanguages($Language).'</td>
     49                </tr>
     50                <tr>
     51                <td>Patřím do týmu: </td>';
     52                if($Team == '') $Selected = ' selected="selected"';
     53                else $Selected = '';
     54                $Output .= '<td><select name="Team"><option value="0"'.$Selected.'>Žádného</option>
     55                ';
     56                $DbResult = $this->Database->query('SELECT `Name`, `Id` FROM `Team`');
     57                while($Line = $DbResult->fetch_assoc())
     58                {
     59                        if($Team == $Line['Id']) $Selected = ' selected="selected"';
     60                        else $Selected = '';
     61                        $Output .= '<option value="0'.$Line['Id'].'"'.$Selected.'>'.$Line['Name'].'</option>';
     62                }
     63                $Output .= '</select></td>
     64                </tr>';
     65                $Output .= '</td></tr>'.
     66                                '<tr><td>Upřednostněná verze klienta: </td><td>'.ClientVersionSelection('').'</td></tr>';
     67                $Output .= '<tr>
     68                <th><input type="submit" value="Registrovat" /></th>
     69                </tr>
     70                </table></fieldset></form>';
     71                return($Output);
     72        }
     73       
     74        function Show()
     75        {
     76                global $User, $Config;
     77       
     78                $Output = '';
     79                if(array_key_exists('user', $_POST))
     80                {
     81                        $ShowForm = true;
     82       
     83                        $UserName = $_POST['user'];
     84                        $Pass = $_POST['pass'];
     85                        $Pass2 = $_POST['pass2'];
     86                        $Email = $_POST['Email'];
     87                        $Team = $_POST['Team'];
     88                        $Language = $_POST['Language'];
     89                        $PreferredVersion = $_POST['ClientVersion'];
     90                        if($PreferredVersion == '') $PreferredVersion = 'NULL';
     91                        if(array_key_exists('sc', $_POST)) $SpamCheck = $_POST['sc'];
     92                        else $SpamCheck = '';
     93       
     94                        if($SpamCheck != '')
     95                        {
     96                                if(($UserName != '') and ($Pass != '') and ($Pass2 != ''))
     97                                {
     98                                        if(!in_array(strtolower($UserName), $Config['ForbiddedUserNames']))
     99                                        {
     100                                                if($Pass == $Pass2)
     101                                                {
     102                                                        $DbResult = $this->Database->query('SELECT * FROM `User` WHERE LOWER(`Name`) = LOWER("'.$UserName.'")');
     103                                                        $Line = $DbResult->fetch_row();
     104                                                        if(!$Line)
     105                                                        {
     106                                                                if($Team == 0) $Team = 'NULL';
     107                                                                $User->Register($UserName, $Pass, $Email, $Language, $Team, $PreferredVersion);
     108                                                                $Output .= ShowMessage('Registrace proběhla úspěšně.');
     109                                                                $Output .= 'Přečtěte si pozorně <a href="'.$this->System->Link('/info.php').'">pokyny pro překladání</a> a můžete pak hned začít překládat.';
     110                                                                $User->Login($UserName, $Pass);
     111                                                                WriteLog('Uživatel se zaregistroval: '.$UserName, LOG_TYPE_USER);
     112                                                                $ShowForm = false;
     113                                                        } else $Output = ShowMessage('Uživatel se zadanou přezdívkou již existuje.', MESSAGE_CRITICAL);
     114                                                } else $Output = ShowMessage('Hesla se neshodují.', MESSAGE_CRITICAL);
     115                                        } else $Output = ShowMessage('To jméno uživatele nemůžete použít.', MESSAGE_CRITICAL);
     116                                } else $Output = ShowMessage('Nelze použít prázdné jméno nebo heslo.', MESSAGE_CRITICAL);
     117                        } else $Output = ShowMessage('Nejsi člověk. Strojům není dovoleno se registrovat.', MESSAGE_CRITICAL);
     118       
     119                        if($ShowForm) $Output .= $this->ShowForm();
     120                } else $Output .= $this->ShowForm();
     121                return($Output);
     122        }       
     123}
Note: See TracChangeset for help on using the changeset viewer.