Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa tarde Galera, Tudo bem?

 

Estou abrindo um servidor poketibia, poderiam me ajudar nesse problema?

 

Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\xampp\htdocs\myaccount.php on line 176

 

CODIGO FONTE: 

 

<?php require_once 'engine/init.php';
protect_page ();
include 'layout/overall/header.php'
#region CANCEL CHARACTER DELETE
$undelete_id = @$_GET['cancel_delete_id'];
if($undelete_id) {
    $undelete_id = (int)$undelete_id;
    $undelete_q1 = mysql_select_single('SELECT `character_name` FROM `znote_deleted_characters` WHERE `done` = 0 AND `id` = ' . $undelete_id . AND `original_account_id` = ' . $session_user_id . AND NOW() < `time`');
    if($undelete_q1) {
        mysql_delete('DELETE FROM `znote_deleted_characters` WHERE `id` = ' . $undelete_id);
        echo 'Pending delete of ' . $undelete_q1['character_name'. ' has been successfully canceled.<br/>';
    }
}
#endregion
 
// Variable used to check if main page should be rendered after handling POST (Change comment page)
$render_page = true;
 
// Handle GET (verify email)
if (isset($_GET['authenticate']) && $config['mailserver']['myaccount_verify_email']):
    // If we need to process email verification
    if (isset($_GET['u']) && isset($_GET['k'])) {
        // Authenticate user, fetch user id and activation key
        $auid = (isset($_GET['u']) && (int)$_GET['u'> 0? (int)$_GET['u': false;
        $akey = (isset($_GET['k']) && (int)$_GET['k'> 0? (int)$_GET['k': false;
        if ($auid !== false && $akey !== false) {
            // Find a match
            $user = mysql_select_single("SELECT `id``active``active_email` FROM `znote_accounts` WHERE `account_id`='{$auid}' AND `activekey`='{$akey}' LIMIT 1;");
            if ($user !== false) {
                $user = (int) $user['id'];
                $active = (int) $user['active'];
                $active_email = (int) $user['active_email'];
                $verify_points = ($active_email == 0 && $config['mailserver']['verify_email_points'> 0)
                    ? ", `points` = `points` + {$config['mailserver']['verify_email_points']}" 
                    : '';
                // Enable the account to login
                if ($active == 0 || $active_email == 0) {
                    $new_activeKey = rand(100000000, 999999999);
                    mysql_update("UPDATE `znote_accounts` SET `active`='1'`active_email`='1'`activekey`='{$new_activeKey}' {$verify_points} WHERE `id`= {$user} LIMIT 1;");
                }
                echo '<h1>Congratulations!</h1> <p>Your email has been verified.</p>';
                if ($verify_points !== ''echo "<p>As thanks for having a verified email, you have received <a href='/shop.php'>{$config['mailserver']['verify_email_points']} shop points</a>!</p>";
                $user_znote_data['active_email'= 1;
                // Todo: Bonus points as thanks for verifying email
            } else {
                echo '<h1>Authentication failed</h1> <p>Either the activation link is wrong, or your account is already activated.</p>';
            }
        } else {
            echo '<h1>Authentication failed</h1> <p>Either the activation link is wrong, or your account is already activated.</p>';
        }
    } else { // We need to send email verification
        $verify_account_id = (int)$session_user_id;
        $user = mysql_select_single("SELECT `id``activekey``active_email` FROM `znote_accounts` WHERE `account_id`='{$verify_account_id}' LIMIT 1;");
        if ($user !== false) {
            $thisurl = config ('site_url'. "myaccount.php";
            $thisurl .= "?authenticate&u=".$verify_account_id."&k=".$user['activekey'];
 
            $mailer = new Mail($config['mailserver']);
 
            $title = "Please authenticate your email at {$_SERVER['HTTP_HOST']}.";
            
            $body = "<h1>Please click on the following link to authenticate your account:</h1>";
            $body .= "<p><a href='{$thisurl}'>{$thisurl}</a></p>";
            $body .= "<p>Thank you for verifying your email and enjoy your stay at {$config['mailserver']['fromName']}.</p>";
            $body .= "<hr><p>I am an automatic no-reply e-mail. Any emails sent back to me will be ignored.</p>";
            
            $user_name = ($config['ServerEngine'!== 'OTHIRE'? $user_data['name': $user_data['id'];
            //echo "<h1>" . $title . "<h1>" . $body;
            $mailer->sendMail($user_data['email'], $title, $body, $user_name);
            ?>
            <h1>Email authentication sent</h1>
            <p>We have sent you an email with a verification link to your email address: <strong><?php echo $user_data['email']; ?></strong></p>
            <p>If you can't find the email within 5 minutes, check your <strong>junk/trash inbox (spam filter)</strong> as it may be misplaced there.</p>
            <?php
        } else {
            echo '<h1>Authentication failed</h1> <p>Failed to verify user when trying to send a verification email.</p>';
        }
    }
endif;
 
// Handle POST
if (!empty($_POST['selected_character'])) {
    if (!empty($_POST['action'])) {
        // Validate token
        if (!Token::isValid($_POST['token'])) {
            exit();
        }
        // Sanitize values
        $action = getValue($_POST['action']);
        $char_name = getValue($_POST['selected_character']);
 
        // Handle actions
        switch($action) {
            // Change character comment PAGE2 (Success).
            case 'update_comment':
                if (user_character_account_id($char_name) === $session_user_id) {
                    user_update_comment(user_character_id($char_name), getValue($_POST['comment']));
                    echo 'Successfully updated comment.';
                }
                break;
            // end
 
            // Hide character
            case 'toggle_hide':
                $hide = (user_character_hide($char_name) == 1 ? 0 : 1);
                if (user_character_account_id($char_name) === $session_user_id) {
                    user_character_set_hide(user_character_id($char_name), $hide);
                }
                break;
            // end
 
            // DELETE character
            case 'delete_character':
                if (user_character_account_id($char_name) === $session_user_id) {
                    $charid = user_character_id($char_name);
                    if ($charid !== false) {
                        if ($config['ServerEngine'=== 'TFS_10') {
                            if (!user_is_online_10($charid)) {
                                if (guild_leader_gid($charid) === falseuser_delete_character_soft($charid);
                                else echo 'Character is leader of a guild, you must disband the guild or change leadership before deleting character.';
                            } else echo 'Character must be offline first.';
                        } else {
                            $chr_data = user_character_data($charid, 'online');
                            if ($chr_data['online'!= 1) {
                                if (guild_leader_gid($charid) === falseuser_delete_character_soft($charid);
                                else echo 'Character is leader of a guild, you must disband the guild or change leadership before deleting character.';
                            } else echo 'Character must be offline first.';
                        }
                    }
                }
                break;
            // end
 
            // CHANGE character name
            case 'change_name':
                $oldname = $char_name;
                $newname = isset($_POST['newName']) ? getValue($_POST['newName']) : '';
 
                $player = false;
                if ($config['ServerEngine'=== 'TFS_10') {
                    $player = mysql_select_single("SELECT `id``account_id` FROM `players` WHERE `name` = '$oldname'");
                    $player['online'= (user_is_online_10($player['id'])) ? 1 : 0;
                } else $player = mysql_select_single("SELECT `id``account_id``online` FROM `players` WHERE `name` = '$oldname'");
 
                // Check if user is online
                if ($player['online'== 1) {
                    $errors[] = 'Character must be offline first.';
                }
 
                // Check if player has bough ticket
                $accountId = $player['account_id'];
                $order = mysql_select_single("SELECT `id``account_id` FROM `znote_shop_orders` WHERE `type`='4' AND `account_id` = '$accountId' LIMIT 1;");
                if ($order === false) {
                    $errors[] = 'Did not find any name change tickets, buy them in our <a href="shop.php">shop!</a>';
                }
 
                // Check if player and account matches
                if ($session_user_id != $accountId || $session_user_id != $order['account_id']) {
                    if (empty($errors)) {
                        $errors[] = 'Failed to sync your account. :|';
                    }
                }
 
                $newname = validate_name($newname);
                if ($newname === false) {
                    $errors[] = 'Your name can not contain more than 2 words.';
                } else {
                    if (empty($newname)) {
                        $errors[] = 'Please enter a name!';
                    } else if (user_character_exist($newname) !== false) {
                        $errors[] = 'Sorry, that character name already exist.';
                    } else if (!preg_match("/^[a-zA-Z_ ]+$/", $newname)) {
                        $errors[] = 'Your name may only contain a-z, A-Z and spaces.';
                    } else if (strlen($newname) < $config['minL'|| strlen($newname) > $config['maxL']) {
                        $errors[] = 'Your character name must be between ' . $config['minL'. ' - ' . $config['maxL'. ' characters long.';
                    } else if (!ctype_upper($newname{0})) {
                        $errors[] = 'The first letter of a name has to be a capital letter!';
                    }
 
                    // name restriction
                    $resname = explode(" ", $_POST['newName']);
                    foreach($resname as $res) {
                        if(in_array(strtolower($res), $config['invalidNameTags'])) {
                            $errors[] = 'Your username contains a restricted word.';
                        } else if(strlen($res) == 1) {
                            $errors[] = 'Too short words in your name.';
                        }
                    }
                }
 
                if (!empty($newname) && empty($errors)) {
                    echo 'You have successfully changed your character name to ' . $newname . '.';
                    mysql_update("UPDATE `players` SET `name`='$newname' WHERE `id`='".$player['id']."' LIMIT 1;");
                    mysql_delete("DELETE FROM `znote_shop_orders` WHERE `id`='".$order['id']."' LIMIT 1;");
 
                } else if (!empty($errors)) {
                    echo '<font color="red"><b>';
                    echo output_errors($errors);
                    echo '</b></font>';
                }
 
                break;
            // end
 
            // Change character sex
            case 'change_gender':
                if (user_character_account_id($char_name) === $session_user_id) {
                    $char_id = (int)user_character_id($char_name);
                    $account_id = user_character_account_id($char_name);
 
                    if ($config['ServerEngine'== 'TFS_10') {
                        $chr_data['online'= user_is_online_10($char_id) ? 1 : 0;
                    } else $chr_data = user_character_data($char_id, 'online');
                    if ($chr_data['online'!= 1) {
                        // Verify that we are not messing around with data
                        if ($account_id != $user_data['id']) die("wtf? Something went wrong, try relogging.");
 
                        // Fetch character tickets
                        $tickets = shop_account_gender_tickets($account_id);
                        if ($tickets !== false || $config['free_sex_change'== true) {
                            // They are allowed to change gender
                            $last = false;
                            $infinite = false;
                            $tks = 0;
                            // Do we have any infinite tickets?
                            foreach ($tickets as $ticket) {
                                if ($ticket['count'== 0) $infinite = true;
                                else if ($ticket > 0 && $infinite === false) $tks += (int)$ticket['count'];
                            }
                            if ($infinite === true) $tks = 0;
                            $dbid = (int)$tickets[0]['id'];
                            // If they dont have unlimited tickets, remove a count from their ticket.
                            if ($tickets[0]['count'> 1) { // Decrease count
                                $tks--;
                                $tkr = ((int)$tickets[0]['count'- 1);
                                shop_update_row_count($dbid, $tkr);
                            } else if ($tickets[0]['count'== 1) { // Delete record
                                shop_delete_row_order($dbid);
                                $tks--;
                            }
 
                            // Change character gender:
                            //
                            user_character_change_gender($char_name);
                            echo 'You have successfully changed gender on character '. $char_name .'.';
                            if ($tks > 0echo '<br>You have '. $tks .' gender change tickets left.';
                            else if ($infinite !== trueecho '<br>You are out of tickets.';
                        } else echo 'You don\'t have any character gender tickets, buy them in the <a href="shop.php">SHOP</a>!';
                    } else echo 'Your character must be offline.';
                }
                break;
            // end
 
            // Change character comment PAGE1:
            case 'change_comment':
                $render_page = false// Regular "myaccount" page should not render
                if (user_character_account_id($char_name) === $session_user_id) {
                    $comment_data = user_znote_character_data(user_character_id($char_name), 'comment');
                    ?>
                    <!-- Changing comment MARKUP -->
                    <h1>Change comment on:</h1>
                    <form action="" method="post">
                        <ul>
                            <li>
                                <input name="action" type="hidden" value="update_comment">
                                <input name ="selected_character" type="text" value="<?php echo $char_name; ?>" readonly="readonly">
                            </li>
                            <li>
                                <font class="profile_font" name="profile_font_comment">Comment:</font> <br>
                                <textarea name="comment" cols="70" rows="10"><?php echo $comment_data['comment']; ?></textarea>
                            </li>
                            <?php
                                /* Form file */
                                Token::create();
                            ?>
                            <li><input type="submit" value="Update Comment"></li>
                        </ul>
                    </form>
                    <?php
                }
                break;
            //end
        }
    }
}
 
if ($render_page) {
    $char_count = user_character_list_count($session_user_id);
    $pending_delete = user_pending_deletes($session_user_id);
    if ($pending_delete) {
        foreach($pending_delete as $delete) {
            if(new DateTime($delete['time']) > new DateTime())
                echo '<b>CAUTION!</b> Your character with name <b>' . $delete['character_name'. ' will be deleted on ' . $delete['time'. '</b>. <a href="myaccount.php?cancel_delete_id=' . $delete['id'. '">Cancel this operation.</a><br/>';
            else {
                user_delete_character(user_character_id($delete['character_name']));
                mysql_update('UPDATE `znote_deleted_characters` SET `done` = 1 WHERE `id` = '. $delete['id']. '');
                echo '<b>Character ' . $delete['character_name'. ' has been deleted</b>. This operation was requested by owner of this account.';
                $char_count--;
            }
        }
    }
 
    ?>
    <div id="myaccount">
        <h1>My account</h1>
        <p>Welcome to your account page, <?php if ($config['ServerEngine'!== 'OTHIRE'echo $user_data['name']; else echo $user_data['id']; ?><br>
            <?php if ($config['ServerEngine'!== 'OTHIRE') {
                if ($user_data['premdays'!= 0) {
                    echo 'You have ' .$user_data['premdays']. ' remaining premium account days.';
                } else {
                    echo 'You are free account.';
                }
            } else {
                if ($user_data['premend'!= 0) {
                    echo 'Your premium account will last till ';
                    echo date("d/m/Y", $user_data['premend']);
                } else {
                    echo 'You do not have premium account days.';
                }
            } 
            if ($config['mailserver']['myaccount_verify_email']):
                ?><br>Email: <?php echo $user_data['email'];
                if ($user_znote_data['active_email'== 1) {
                    ?> (Verified).<?php
                } else {
                    ?><br><strong>Your email is not verified! <a href="?authenticate">Please verify it</a>.</strong><?php
                }
            endif?>
        </p>
        <?php
        if ($config['ServerEngine'=== 'TFS_10' && $config['twoFactorAuthenticator']) {
            $query = mysql_select_single("SELECT `secret` FROM `accounts` WHERE `id`='".(int)$session_user_id."' LIMIT 1;");
            $status = ($query['secret'=== NULL? false : true;
            ?><p>Account security with Two-factor Authentication: <a href="twofa.php"><?php echo ($status) ? 'Enabled' : 'Disabled'?></a></p><?php
        }
        ?>
        <h2>Character List: <?php echo $char_count; ?> characters.</h2>
        <?php
        // Echo character list!
        $char_array = user_character_list($user_data['id']);
        // Design and present the list
        if ($char_array) {
            ?>
            <table id="myaccountTable" class="table table-striped table-hover">
                <tr class="yellow">
                    <th>NAME</th><th>LEVEL</th><th>VOCATION</th><th>TOWN</th><th>LAST LOGIN</th><th>STATUS</th><th>HIDE</th>
                </tr>
                <?php
                $characters = array();
                foreach ($char_array as $value) {
                    // characters: [0] = name, [1] = level, [2] = vocation, [3] = town_id, [4] = lastlogin, [5] = online
                    echo '<tr>';
                    echo '<td><a href="characterprofile.php?name='. $value['name'.'">'. $value['name'.'</a></td><td>'. $value['level'.'</td><td>'. $value['vocation'.'</td><td>'. $value['town_id'.'</td><td>'. $value['lastlogin'.'</td><td>'. $value['online'.'</td><td>'. hide_char_to_name(user_character_hide($value['name'])) .'</td>';
                    echo '</tr>';
                    $characters[] = $value['name'];
                }
            ?>
            </table>
            <!-- FORMS TO EDIT CHARACTER-->
            <form action="" method="post">
                <table class="table">
                    <tr>
                        <td>
                            <select id="selected_character" name="selected_character" class="form-control">
                            <?php
                            for ($i = 0; $i < $char_count; $i++) {
                                if (user_character_hide($characters[$i]) == 1) {
                                    echo '<option value="'. $characters[$i] . '">'. $characters[$i] .'</option>';
                                } else {
                                    echo '<option value="'. $characters[$i] . '">'. $characters[$i] .'</option>';
                                }
                            }
                            ?>
                            </select>
                        </td>
                        <td>
                            <select id="action" name="action" class="form-control" onChange="changedOption(this)">
                                <option value="none" selected>Select action</option>
                                <option value="toggle_hide">Toggle hide</option>
                                <option value="change_comment">Change comment</option>
                                <option value="change_gender">Change gender</option>
                                <option value="change_name">Change name</option>
                                <option value="delete_character" class="needconfirmation">Delete character</option>
                            </select>
                        </td>
                        <td id="submit_form">
                            <?php
                                /* Form file */
                                Token::create();
                            ?>
                            <input id="submit_button" type="submit" value="Submit" class="btn btn-primary btn-block"></input>
                        </td>
                    </tr>
                </table>
            </form>
            <?php
        } else {
            echo 'You don\'t have any characters. Why don\'t you <a href="createcharacter.php">create one</a>?';
        }
        ?>
    </div>
    <script>
        function changedOption(e) {
            // If selection is 'Change name' add a name field in the form
            // Else remove name field if it exists
            if (e.value == 'change_name') {
                var lastCell = document.getElementById('submit_form');
                var x = document.createElement('TD');
                x.id = "new_name";
                x.innerHTML = '<input type="text" name="newName" placeholder="New Name" class="form-control">';
                lastCell.parentNode.insertBefore(x, lastCell);
            } else {
                var child = document.getElementById('new_name');
                if (child) {
                    child.parentNode.removeChild(child);
                }
            }
        }
    </script>
    <script src="engine/js/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script>
        $(document).ready(function(){
            $("#submit_button").click(function(e){
                if ($("#action").find(":selected").attr('class'== "needconfirmation") {
                    var r = confirm("Do you really want to DELETE character: "+$('#selected_character').find(":selected").text()+"?")
                    if (r == false) {
                        e.preventDefault();
                    }
                }
            });
        });
    </script>
    <?php
}
include 'layout/overall/footer.php';
?>
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo