Changeset 466 for trunk/registrace.php


Ignore:
Timestamp:
Apr 15, 2010, 8:20:31 AM (15 years ago)
Author:
george
Message:
  • Opraveno: Zobrazopvání HTTP odkazů v kecátku.
  • Přidáno: Systémová hlášení se nyní zobrazují v barevných rámečcích s ikonou. Typy zpráv jsou informace, varování a kritická chyba.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/registrace.php

    r455 r466  
    22
    33include('includes/global.php');
     4
     5function 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 = 0;
     17  if(array_key_exists('Language', $_POST)) $Language = $_POST['Language'];
     18    else $Language = 1;
     19 
     20  echo('<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      echo('<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); echo('</td>
     49    </tr>
     50    <tr>
     51      <td>Patřím do týmu: </td>');
     52      if($Team == 0) $Selected = ' selected="selected"';
     53        else $Selected = '';
     54      echo('<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      echo('<option value="0'.$Line['Id'].'"'.$Selected.'>'.$Line['Name'].'</option>');
     62    }
     63    echo('</select></td>
     64    </tr>
     65    <tr>
     66      <th><input type="submit" value="Registrovat" /></th>
     67    </tr>
     68  </table></fieldset></form>');
     69}
    470 
     71ShowPage();
     72
     73$ForbiddedNames = array('Addon', 'admin', 'administrator');
     74
    575if(array_key_exists('user', $_POST))
    676{
     77  $ShowForm = true;
     78 
    779  $UserName = $_POST['user'];
    880  $Pass = $_POST['pass'];
     
    1890    if($UserName != '')
    1991    {
    20       if($UserName != 'Addon')
     92      if(!in_array($UserName, $ForbiddedNames))
    2193      {
    2294        if($Pass == $Pass2)
     
    28100            $Salt = $User->GetPasswordSalt();
    29101            $System->Database->query('INSERT INTO `User` (`Name` , `Pass` , `Salt`, `LastIP` , `LastLogin` , `Email` , `Language` , `Team` , `NeedUpdate`, `RegistrationTime` ) VALUES ("'.$UserName.'", '.$User->CryptPasswordSQL('"'.$Pass.'"', '"'.$Salt.'"').', "'.$Salt.'", "'.$_SERVER['REMOTE_ADDR'].'", NOW(), "'.$Email.'", '.$Language.', '.$Team.', 1, NOW())');
    30             $Message = 'Registrace proběhla úspěšně.<br /><br/>'.
    31             '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.';
     102            ShowMessage('Registrace proběhla úspěšně.');
     103            echo('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.');
    32104            $User->Login($UserName, $Pass);
    33105            WriteLog('Uživatel se zaregistroval: '.$UserName, LOG_TYPE_USER);     
    34           } else $Message = 'Uživatel se zadanou přezdívkou již existuje. <a href="?">Zpět</a>';
    35         } else $Message = 'Hesla se neshodují. <a href="?">Zpět</a>';
    36       } else $Message = 'To jméno uživatele nemůžete použít';
    37     } else $Message = 'Nelze použít prázdné jméno';
    38   } else $Message = 'Nejsi člověk. Strojům není dovoleno se registrovat.';
    39   ShowPage();
    40   echo($Message);
    41   ShowFooter();     
    42 } else
    43 {
    44   ShowPage();
    45   echo('<form action="?" method="post">
    46   <fieldset><legend>Registrace nového uživatele</legend>
    47   <table>
    48     <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!</td></tr>
    49     <tr>
    50       <td>Jsi člověk? </td>
    51       <td><input type="checkbox" name="sc" /></td>
    52     </tr>
    53     <tr>
    54       <td>Jméno:</td>
    55       <td><input type="text" name="user" /></td>
    56     </tr>
    57     <tr>
    58       <td>Heslo:</td>
    59       <td><input type="password" name="pass" /></td>
    60     </tr>
    61     <tr>
    62       <td>Potvrzení Hesla: </td>
    63       <td><input type="password" name="pass2" /></td>
    64     </tr>
    65     <tr>
    66       <td>Email: </td>
    67       <td><input type="text" name="Email" /></td>
    68     </tr>
    69     <tr>
    70       <td>Normálně budu překládat do: </td>
    71       <td>'); WriteLanguages(1); echo('</td>
    72     </tr>
    73     <tr>
    74       <td>Patřím do týmu: </td>
    75       <td><select name="Team"><option value="0">Žádného</option>
    76       ');
    77     $DbResult = $System->Database->query('SELECT `Name`, `Id` FROM `Team`');
    78     while($Line = $DbResult->fetch_assoc())
    79     {
    80       echo('<option value="0'.$Line['Id'].'">'.$Line['Name'].'</option>');
    81       }
    82       echo('</select></td>
    83     </tr>
    84     <tr>
    85       <th><input type="submit" value="Registrovat" /></th>
    86     </tr>
    87   </table></fieldset></form>');
    88 }
     106            $ShowForm = false;
     107          } else ShowMessage('Uživatel se zadanou přezdívkou již existuje.', MESSAGE_CRITICAL);
     108        } else ShowMessage('Hesla se neshodují.', MESSAGE_CRITICAL);
     109      } else ShowMessage('To jméno uživatele nemůžete použít.', MESSAGE_CRITICAL);
     110    } else ShowMessage('Nelze použít prázdné jméno.', MESSAGE_CRITICAL);
     111  } else ShowMessage('Nejsi člověk. Strojům není dovoleno se registrovat.', MESSAGE_CRITICAL);
     112 
     113  if($ShowForm) ShowForm();
     114} else ShowForm();
    89115 
    90116ShowFooter();     
Note: See TracChangeset for help on using the changeset viewer.