Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* Nastavení */
- /* MySQL */
- $mysql_server = 'localhost';
- $mysql_user = 'web';
- $mysql_pass = '...';
- /* Povolené realmy */
- $realm1ok = false;
- $realm2ok = false;
- /* Databáze pro realmy */
- $realm1db = 'auth';
- $realm2db = 'auth_trinity';
- /* Nezapomeň smazat, pokud oba realmy jsou povolené! */
- $_POST['realm1'] = 'on';
- $_POST['realm2'] = 'off';
- /* Konec nastavení */
- $ok = false;
- do{
- if(!isset($_POST['sent'])){
- if(isset($_SESSION['pass']))unset($_SESSION['pass']);
- $name = '';
- $pass = '';
- $pass2 = '';
- $mail = '';
- $datadisc = 2;
- $realm1 = 1;
- $realm2 = 0;
- break;
- }
- if(!isset($_POST['name'],$_POST['pass'],$_POST['mail'],$_POST['datadisc'],$_POST['realm1'],$_POST['realm2'])){
- $e = 'Neplatné odeslání!';
- $regenerate = true;
- break;
- }
- if(empty($_POST['name'])){
- $e = 'Jméno účtu není vyplněné!';
- break;
- }
- if($_POST['pass']==''){
- $e = 'Heslo není vyplněné!';
- $pass_error = true;
- break;
- }
- if($_POST['pass2']==''){
- $e = 'Potvrzení hesla není vyplněné!';
- $pass_error = true;
- break;
- }
- if($_POST['mail']==''){
- $e = 'E-mail není vyplněn!';
- break;
- }
- if(strlen($_POST['name']) < 4 || strlen($_POST['name']) > 20){
- $e = 'Jméno účtu má neplatnou délku!';
- $_POST['name'] = '';
- break;
- }
- if(preg_match('/[^0-9A-Za-z]/',$_POST['name'])){
- $e = 'Jméno účtu obsahuje neplatné znaky!';
- $_POST['name'] = '';
- break;
- }
- if(!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
- $e = 'E-mail je neplatný!';
- $_POST['mail'] = '';
- break;
- }
- if(!isset($_SESSION['pass'])){
- if($_POST['pass']!=$_POST['pass2']){
- $e = 'Zadaná hesla nejsou stejná!';
- $pass_error = true;
- $_POST['pass'] = '';
- $_POST['pass2'] = '';
- break;
- }
- if(strlen($_POST['pass']) < 7 || ($_POST['pass']) > 20){
- $e = 'Heslo má neplatnou délku!';
- $pass_error = true;
- $_POST['pass'] = '';
- $_POST['pass2'] = '';
- break;
- }
- }
- if($_POST['realm1']=='off' && $_POST['realm2']=='off'){
- $e = 'Není vybrán žádný realm!';
- break;
- }
- $ok = true;
- } while(false);
- /* Hack pro GM */
- if(isset($_GET['token']) && $_GET['token']=='smajdalf'){
- $realm1 = 0;
- $realm2 = 1;
- $_POST['realm1'] = 'off';
- $_POST['realm2'] = 'on';
- }
- /* Konec hacku */
- if($ok){
- if(isset($_SESSION['pass'])){
- $pass = $_SESSION['pass'];
- unset($_SESSION['pass']);
- }
- else $pass = $_POST['pass'];
- $pass = sha1(strtoupper($_POST['name']).':'.strtoupper($pass));
- $mysqli = new mysqli($mysql_server,$mysql_user,$mysql_pass,$realm1db);
- $name = $mysqli->real_escape_string($_POST['name']);
- $pass = $mysqli->real_escape_string($pass);
- $mail = $mysqli->real_escape_string($_POST['mail']);
- $datadisc = $mysqli->real_escape_string($_POST['datadisc']);
- if($_POST['realm1']=='on'){
- $mysqli->query('LOCK TABLES account WRITE');
- $return = $mysqli->query("SELECT id FROM account WHERE username='$name'");
- if($return->num_rows){
- $ok = false;
- $e = 'Jméno účtu už je na jednom z realmů obsazené!';
- }
- else {
- $mysqli->query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES ('$name','$pass','$mail','$datadisc')");
- $e = 'Účet byl úspešně založen!';
- }
- }
- if($_POST['realm2']=='on' && $ok){
- $mysqli->select_db($realm2db);
- $mysqli->query('LOCK TABLES account WRITE');
- $return = $mysqli->query("SELECT id FROM account WHERE username='$name'");
- if($return->num_rows){
- $ok = false;
- $e = 'Jméno účtu už je na jednom z realmů obsazené!';
- }
- else {
- $mysqli->query("INSERT INTO account (username,sha_pass_hash,email,expansion) VALUES ('$name','$pass','$mail','$datadisc')");
- $e = 'Účet byl úspešně založen!';
- }
- }
- $mysqli->query('UNLOCK TABLES');
- $mysqli->close();
- }
- if($ok || isset($regenerate)){
- $name = '';
- $pass = '';
- $pass2 = '';
- $mail = '';
- $datadisc = 2;
- $realm1 = 1;
- $realm2 = 0;
- }
- if(!$ok && isset($_POST['sent'])){
- $name = htmlentities($_POST['name']);
- $mail = htmlentities($_POST['mail']);
- $datadisc = $_POST['datadisc'];
- $realm1 = ($_POST['realm1']=='on') ? 1 : 0;
- $realm2 = ($_POST['realm2']=='on') ? 1 : 0;
- if(isset($pass_error)){
- $pass = '';
- $pass2 = '';
- }
- else {
- $_SESSION['pass'] = $_POST['pass'];
- $pass = str_repeat('*',strlen($_SESSION['pass']));
- $pass2 = $pass;
- }
- }
- ?>
- <h2>Registrace účtu</h2><br />
- <?php if(isset($e)) echo "<strong><div style=\"color: red;\">$e</div></strong><br /><br />";?>
- <form action="?page=reg<?php if(isset($_GET['token'])) echo('&token=' . htmlentities($_GET['token']));?>" method="post">
- <input type="hidden" name="sent" value="" />
- <table>
- <tr><td><strong>Jméno účtu:</strong></td>
- </tr>
- <tr><td>
- <input type="text" name="name" value="<?php echo $name;?>"/></td><td>Minimálně 4 a maximálně 20 znaků<br />Jen malá a velká písmena bez diaktriky a čísla</td>
- </tr>
- <tr>
- <td style="padding-top: 10px"><strong>Heslo:</strong></td>
- </tr>
- <tr><td>
- <input type="password" name="pass" value="<?php echo $pass;?>" /></td><td>Minimálně 7 a maximálně 20 znaků</td>
- </tr>
- <tr>
- <td style="padding-top: 10px"><strong>Heslo znovu:</strong></td>
- </tr>
- <tr><td>
- <input type="password" name="pass2" value="<?php echo $pass2;?>" /></td><td>Zadejte prosím kvůli kontrole stejné heslo jako v kolonce "Heslo"</td>
- </tr>
- <tr>
- <td style="padding-top: 10px"><strong>E-mail:</strong></td>
- </tr>
- <tr><td>
- <input type="text" name="mail" value="<?php echo $mail;?>" /></td>
- </tr>
- <tr>
- <td style="padding-top: 10px"><strong>Vytvořit účet na realmu:</strong></td>
- </tr>
- <tr><td>
- <input type="checkbox" name="realm1" <?php if(!$realm1ok) echo 'disabled '; if($realm1) echo 'checked';?>/> Victus & Dominus </td>
- </tr>
- <tr><td>
- <input type="checkbox" name="realm2" <?php if(!$realm2ok) echo 'disabled '; if($realm2) echo 'checked';?>/> Trinity Test </td>
- </tr>
- <tr>
- <td style="padding-top: 10px"><strong>Rozšíření:</strong></td>
- </tr>
- <tr>
- <td colspan="2">
- <input type="radio" name="datadisc" value="0" <?php if($datadisc==0) echo 'checked';?>> World of Warcraft <td>
- </tr>
- <tr>
- <td colspan="2">
- <input type="radio" name="datadisc" value="1" <?php if($datadisc==1) echo 'checked';?>> World of Warcraft: Burning Crusade <td>
- </tr>
- <tr>
- <td colspan="2">
- <input type="radio" name="datadisc" value="2" <?php if($datadisc==2) echo 'checked';?>> World of Warcraft: Wrath of The Lich King <td>
- </tr>
- <tr>
- <td style="padding-top: 10px">
- <input type="submit" value="Zaregistrovat"> </td>
- </tr>
- </table>
- </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement