Changeset 547 for trunk/Modules/User/Registration.php
- Timestamp:
- Jun 18, 2013, 6:58:22 PM (12 years ago)
- Location:
- trunk/Modules/User
- Files:
-
- 1 added
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/User/Registration.php
r544 r547 1 1 <?php 2 2 3 include('includes/global.php'); 4 5 function ShowForm() 3 class PageUserRegistration extends Page 6 4 { 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.