Ir para conteúdo
  • 0

Site [WONRS] não seleciona vocação para criação


menina sexy

Pergunta

Boa tarde galera,

Queria uma ajuda o site da WONRS não seleciona vocação para criação
image.png.96a34cd0834c6cba369f51de5674fb50.png

Segue createcharacter.php
 

Citar
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';
$imagem = 'http://'.$_SERVER['HTTP_HOST'].'/layout/images/vocstatus';
$statusid = 1;

 

if (empty($_POST) === false) {
    // $_POST['']
    $required_fields = array('name', 'selected_town');
    foreach($_POST as $key=>$value) {
        if (empty($value) && in_array($key, $required_fields) === true) {
            $errors[] = 'You need to fill in all fields.';
            break 1;
        }
    }

 

    // check errors (= user exist, pass long enough
    if (empty($errors) === true) {
        if (!Token::isValid($_POST['token'])) {
            $errors[] = 'O token é inválido.';
        }
        $_POST['name'] = validate_name($_POST['name']);
        if ($_POST['name'] === false) {
            $errors[] = 'Seu nome não pode conter mais de 2 palavras.';
        } else {
            if (user_character_exist($_POST['name']) !== false) {
                $errors[] = 'Desculpe, esse nome de personagem já existe.';
            }
            if (!preg_match("/^[a-zA-Z_ ]+$/", $_POST['name'])) {
                $errors[] = 'Seu nome pode conter apenas a-z, A-Z e espaços.';
            }
            if (strlen($_POST['name']) < $config['minL'] || strlen($_POST['name']) > $config['maxL']) {
                $errors[] = 'O nome do seu personagem deve estar entre ' . $config['minL'] . ' - ' . $config['maxL'] . ' caracteres longos.';
            }
            // name restriction
                if(in_array(strtolower($_POST['name']), $config['invalidNames'])) {
                    $errors[] = 'Este nome de usuario esta bloqueado.';
                }
            $resname = explode(" ", $_POST['name']);
            foreach($resname as $res) {
                if(in_array(strtolower($res), $config['invalidNameTags'])) {
                    $errors[] = 'Seu nome de usuário contém uma palavra restrita.';
                }
                else if(strlen($res) == 1) {
                    $errors[] = 'Palavras muito curtas em seu nome.';
                }
            }
            // Validate vocation id
            if (!in_array((int)$_POST['pdt_id'], $config['available_vocations'])) {
                $errors[] = 'Permissão negada. Vocação errada.';
            }
            // Char count
            $char_count = user_character_list_count($session_user_id);
            if ($char_count >= $config['max_characters']) {
                $errors[] = 'Sua conta não tem permissão para ter mais de '. $config['max_characters'] .' personagens.';
            }
            if (validate_ip(getIP()) === false && $config['validate_IP'] === true) {
                $errors[] = 'Falha ao reconhecer o seu endereço IP. (Não é um endereço IPv4 válido).';
            }
        }
    }
}
?>

 

    <div id="title">
        <div class="name">Criar novo personagem</div>
    </div>
        <br>
    <?php
if (isset($_GET['success']) && empty($_GET['success'])) {
    echo 'Parabens! Seu personagem foi criado. Te vejo no jogo!';
} else {
    if (empty($_POST) === false && empty($errors) === true) {
        if ($config['log_ip']) {
            znote_visitor_insert_detailed_data(2);
        }
        //Register
        $character_data = array(
            'name'      =>  format_character_name($_POST['name']),
            'elo_points' => 0,
            'account_id'=>  $session_user_id,
            'vocation'  =>  $_POST['pdt_id'],
            'lastip'    =>  getIPLong(),
            'created'   =>  time()
        );

 

        user_create_character($character_data);
        header('Location: createcharacter.php?success');
        exit();
        //End register

 

    } else if (empty($errors) === false){
        echo '<font color="red"><b>';
        echo output_errors($errors);
        echo '</b></font>';
    }
    ?>

 

    <br>
        <link rel="stylesheet" type="text/css" href="layout/css/style.css">
        <script type="text/javascript" src="/layout/js/selection.js"></script>

 

        <center>
            <div class="Text">
                <br>Selecione o personagem desejado:</div>
            <div class="caixa" style="width: 600px;height: 300px;overflow: auto;">
                <table border="0" cellspacing="10" cellpadding="0">
                <?php $y = 0; $i = 0; foreach ($config['available_vocations'] as $id) {
                 if ($i == 0){echo'<tr>';}; $i++; $y++?>
                        <td>
                            <table style="width:115px;" border="0" cellspacing="0" cellpadding="0">
                                <tr style="height:75px;">
                                    <td><?php
                                    echo'
                                        <div id="i' . $id . '" class="pdt_cls" style="background-image:url('.$config['images']['selectVocation'].'/' . $id . '.png), url(/layout/images/donate/back.png);">
                                            <div id="b' . $id . '" class="pdt_blc" value="' . $id . '" onclick="selectpdt('. $id . ');"></div>
                                        </div>'?>
                                    </td>
                                </tr>

 

                                <tr>
                                    <td>
                                        <center>
                                            <div class="pdt_nme"><?php echo vocation_id_to_name($id); ?></div>
                                        </center>
                                    </td>
                                </tr>

 

                            </table>
                        </td>
                        <td>
                            <div style="width:20px;"></div>
                        </td>
                    <?php  if ($i == 3){ echo'</tr>'; $i = 0;}; }; ?>
                </table>
            </div>
            <br>
            <form action="" method="post">
                <li>
                    <font color="white">Digite o nome para seu personagem:</font>
                    <br>
                    <input type="text" name="name">
                </li>
                <input id="pdt_id" name="pdt_id" type="hidden" value="0" />
                <table>
                    <tr>
                        <td>
                            <input id="ckb_obs" name="ckb_obs" onclick="chkbox();" type="checkbox" />
                        </td>

 

                        <td>
                            <label class="Text" style="width:100%;" for="ckb_obs">
                                <center>Estou ciente das <a href="/termos.php" style="font-family:monospace; font-size:13px; font-weight:bold;">observa&ccedil;&otilde;es referentes a cria&ccedil;&atilde;o do personagem.</a>
                                    <center>
                            </label>
                        </td>
                    </tr>
                </table>
                <input type="hidden" name="token" value="5f4aded24fa3a75b68f3dae980bed805dd583904" />
                <div style="height:20px;"></div>

 

                <input id="Button" type="submit" value="Criar Personagem" disabled>
            </form>
            </center>
            <?php
}
include 'layout/overall/footer.php'; ?>

 

Editado por menina sexy
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 1

1. Verifique o Código JavaScript

O botão de seleção de vocação e o valor do campo pdt_id são definidos pelo JavaScript. Certifique-se de que o JavaScript está funcionando corretamente e que o valor está sendo corretamente atribuído ao campo pdt_id.

Aqui está um exemplo de função JavaScript que deve estar presente para selecionar a vocação:
 

function selectpdt(id) {
    document.getElementById('pdt_id').value = id;
    var buttons = document.getElementsByClassName('pdt_blc');
    for (var i = 0; i < buttons.length; i++) {
        buttons[i].style.border = 'none';
    }
    document.getElementById('b' + id).style.border = '2px solid #f00'; // Ajuste a borda para indicar seleção
}


 

2. Verifique o HTML do Formulário

Assegure-se de que o formulário HTML está configurado corretamente para enviar os dados:

  • O campo oculto para vocação (pdt_id) deve estar presente e ser atualizado pelo JavaScript quando uma vocação é selecionada.
  • O botão de submit (Criar Personagem) deve estar habilitado quando todos os campos forem preenchidos.

No seu código, o botão de submit está desabilitado (disabled), o que pode ser a causa do problema. Verifique se o JavaScript está habilitando o botão após a seleção da vocação e o preenchimento dos campos obrigatórios.

3. Verifique a Função selectpdt

Verifique se a função JavaScript selectpdt está sendo chamada corretamente ao clicar em uma vocação. Você pode adicionar um console.log para depuração:
 

function selectpdt(id) {
    console.log('Vocation selected:', id); // Adicione isso para verificar se a função é chamada
    document.getElementById('pdt_id').value = id;
    // Resto do código
}


 

4. Verifique o Código PHP para Processamento de Dados

Certifique-se de que o valor de $_POST['pdt_id'] está sendo corretamente verificado e validado no código PHP. Aqui está uma parte relevante do seu código:
 

// Validate vocation id
if (!in_array((int)$_POST['pdt_id'], $config['available_vocations'])) {
    $errors[] = 'Permissão negada. Vocação errada.';
}

Certifique-se de que o $_POST['pdt_id'] está sendo enviado corretamente e contém um ID válido.


atualizando seu código deve ficar mais ou menos assim:
 

<?php
require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';
$imagem = 'http://' . $_SERVER['HTTP_HOST'] . '/layout/images/vocstatus';
$statusid = 1;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $required_fields = array('name', 'selected_town', 'pdt_id');
    $errors = array();

    foreach ($required_fields as $field) {
        if (empty($_POST[$field])) {
            $errors[] = 'You need to fill in all fields.';
            break;
        }
    }

    if (empty($errors)) {
        if (!Token::isValid($_POST['token'])) {
            $errors[] = 'O token é inválido.';
        }

        $_POST['name'] = validate_name($_POST['name']);
        if ($_POST['name'] === false) {
            $errors[] = 'Seu nome não pode conter mais de 2 palavras.';
        } else {
            if (user_character_exist($_POST['name']) !== false) {
                $errors[] = 'Desculpe, esse nome de personagem já existe.';
            }
            if (!preg_match("/^[a-zA-Z_ ]+$/", $_POST['name'])) {
                $errors[] = 'Seu nome pode conter apenas a-z, A-Z e espaços.';
            }
            if (strlen($_POST['name']) < $config['minL'] || strlen($_POST['name']) > $config['maxL']) {
                $errors[] = 'O nome do seu personagem deve estar entre ' . $config['minL'] . ' - ' . $config['maxL'] . ' caracteres longos.';
            }
            if (in_array(strtolower($_POST['name']), $config['invalidNames'])) {
                $errors[] = 'Este nome de usuario esta bloqueado.';
            }
            $resname = explode(" ", $_POST['name']);
            foreach ($resname as $res) {
                if (in_array(strtolower($res), $config['invalidNameTags'])) {
                    $errors[] = 'Seu nome de usuário contém uma palavra restrita.';
                } else if (strlen($res) == 1) {
                    $errors[] = 'Palavras muito curtas em seu nome.';
                }
            }
            if (!in_array((int)$_POST['pdt_id'], $config['available_vocations'])) {
                $errors[] = 'Permissão negada. Vocação errada.';
            }
            $char_count = user_character_list_count($session_user_id);
            if ($char_count >= $config['max_characters']) {
                $errors[] = 'Sua conta não tem permissão para ter mais de ' . $config['max_characters'] . ' personagens.';
            }
            if (validate_ip(getIP()) === false && $config['validate_IP'] === true) {
                $errors[] = 'Falha ao reconhecer o seu endereço IP. (Não é um endereço IPv4 válido).';
            }
        }
    }
}
?>
<div id="title">
    <div class="name">Criar novo personagem</div>
</div>
<br>
<?php
if (isset($_GET['success']) && empty($_GET['success'])) {
    echo 'Parabéns! Seu personagem foi criado. Te vejo no jogo!';
} else {
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && empty($errors)) {
        if ($config['log_ip']) {
            znote_visitor_insert_detailed_data(2);
        }
        // Register
        $character_data = array(
            'name'      => format_character_name($_POST['name']),
            'elo_points' => 0,
            'account_id' => $session_user_id,
            'vocation'   => $_POST['pdt_id'],
            'lastip'     => getIPLong(),
            'created'    => time()
        );

        user_create_character($character_data);
        header('Location: createcharacter.php?success');
        exit();
    } else if (!empty($errors)) {
        echo '<font color="red"><b>';
        echo output_errors($errors);
        echo '</b></font>';
    }
?>
<br>
<link rel="stylesheet" type="text/css" href="layout/css/style.css">
<script type="text/javascript" src="/layout/js/selection.js"></script>
<center>
    <div class="Text">
        <br>Selecione o personagem desejado:</div>
    <div class="caixa" style="width: 600px;height: 300px;overflow: auto;">
        <table border="0" cellspacing="10" cellpadding="0">
            <?php
            $y = 0;
            $i = 0;
            foreach ($config['available_vocations'] as $id) {
                if ($i == 0) {
                    echo '<tr>';
                }
                $i++;
                $y++;
            ?>
            <td>
                <table style="width:115px;" border="0" cellspacing="0" cellpadding="0">
                    <tr style="height:75px;">
                        <td>
                            <div id="i<?php echo $id; ?>" class="pdt_cls" style="background-image:url('<?php echo $config['images']['selectVocation']; ?>/<?php echo $id; ?>.png'), url(/layout/images/donate/back.png);">
                                <div id="b<?php echo $id; ?>" class="pdt_blc" value="<?php echo $id; ?>" onclick="selectpdt(<?php echo $id; ?>);"></div>
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <center>
                                <div class="pdt_nme"><?php echo vocation_id_to_name($id); ?></div>
                            </center>
                        </td>
                    </tr>
                </table>
            </td>
            <td>
                <div style="width:20px;"></div>
            </td>
            <?php
                if ($i == 3) {
                    echo '</tr>';
                    $i = 0;
                }
            }
            ?>
        </table>
    </div>
    <br>
    <form action="" method="post">
        <li>
            <font color="white">Digite o nome para seu personagem:</font>
            <br>
            <input type="text" name="name">
        </li>
        <input id="pdt_id" name="pdt_id" type="hidden" value="0" />
        <table>
            <tr>
                <td>
                    <input id="ckb_obs" name="ckb_obs" onclick="chkbox();" type="checkbox" />
                </td>
                <td>
                    <label class="Text" style="width:100%;" for="ckb_obs">
                        <center>Estou ciente das <a href="/termos.php" style="font-family:monospace; font-size:13px; font-weight:bold;">observações referentes a criação do personagem.</a></center>
                    </label>
                </td>
            </tr>
        </table>
        <input type="hidden" name="token" value="<?php echo Token::generate(); ?>" />
        <div style="height:20px;"></div>
        <input id="Button" type="submit" value="Criar Personagem" />
    </form>
</center>
<?php
}
include 'layout/overall/footer.php';
?>


 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...