Ir para conteúdo

Featured Replies

Postado

Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website).

Ex.gesior AAC

Base: 

Site 10.98

 

Qual erro está surgindo/O que você procura?

Saudações! Estou com um problemão envolvendo meu createaccount.php, ele não registra novas contas na DB nem conectando no DNS nem no LOCALHOST. Pensei que poderia ser algum erro de configuração de conexão do website com a DB mas quando logo na conta do admin eu consigo criar novos personagens e tudo mais.

 

Você tem o código disponível? Se tiver publique-o aqui:

<?php
if(!defined('INITIALIZED'))
    exit;
require 'config/namesblocked.php';
if(!$logged) {
    $voc = array(); // Rookgard Active !

    if (isset($_POST['step']) && $_POST['step'] == 'docreate') {
        $erro = array();

        # Nome da conta
        $accountname = isset($_POST['accountname']) ? $_POST['accountname'] : '';

        if ($accountname == '')
            $erro['acc'] = 'Insira sua conta desejada:';
        elseif (strlen($accountname) < 3)
            $erro['acc'] = 'Numero de caracteres muito curto!';
        elseif (strlen($accountname) > 30)
            $erro['acc'] = 'Numero de caracteres muito grande!';
        else {
            $accountname = strtoupper($accountname);

            if (!ctype_alnum($accountname))
                $erro['acc'] = 'This account name has an invalid format. Your account name may only consist of numbers 0-9 and letters A-Z!';
            elseif (!preg_match('/[A-Z0-9]/', $accountname))
                $erro['acc'] = 'Your account name must include at least one letter A-Z!';
            else {
                $acc = new Account($accountname, Account::LOADTYPE_NAME);
                if ($acc->isLoaded())
                    $erro['acc'] = 'This account name is already used. Please select another one!';
            }
        }

        /*# Nome do personagem
        $charactername = isset($_POST['name']) ? trim($_POST['name']) : '';

        if(empty($charactername))
            $erro['name'] = 'Please enter a name for your character!';
        elseif(strlen($charactername) < 2 || strlen($charactername) > 29)
            $erro['name'] = 'A name must have at least 2 but no more than 29 letters!';
        elseif(preg_match('/[^a-zA-Z ]/', $charactername))
            $erro['name'] = 'This name contains invalid letters. Please use only A-Z, a-z and space!';
        elseif(!ctype_upper($charactername[0]))
            $erro['name'] = 'The first letter of a name has to be a capital letter!';
        elseif(strpos($charactername, '  ') !== false)
            $erro['name'] = 'This name contains more than one space between words. Please use only one space between words!';
        else {

            foreach(explode(' ', $charactername) as $k =>$v) {
                $words[$k] = str_split($v);
                $len = strlen($v);
                if($len == 1) {
                    $erro['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!';
                    break;
                }
                elseif($len > 14) {
                    $erro['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!';
                    break;
                }
            }

            if(!isset($e['name'])) {
                $total = 0;
                foreach($words as $k =>$p) {
                    if(isset($erro['name']))
                        break;
                    $total++;
                    if($total > 3) {
                        $erro['name'] = 'This name contains more than 3 words. Please choose another name!';
                        break;
                    }
                    $len = 0;
                    foreach($p as $i =>$j) {
                        $len++;
                        if($i != 0 && ctype_upper($j)) {
                            $erro['name'] = 'In names capital letters are only allowed at the beginning of a word!';
                            break;
                        }
                        elseif($i == $len-1) {
                            $ff = null;
                            for($h = 0; $h < strlen($v); $h++) {
                                if(in_array(strtolower($v[$h]), array('a','e','i','o','u')) !== false) {
                                    $ff = true;
                                    break;
                                }
                            }
                            if(!$ff) {
                                $erro['name'] = 'This name contains a word without vowels. Please choose another name!';
                                break;
                            }
                        }
                    }
                }
            }

            if(!isset($erro['name'])) {
                $charactername = strtolower($charactername);
                for($i = 0; $i < strlen($charactername); $i++)
                    if($charactername[$i] == $charactername[($i+1)] && $charactername[$i] == $charactername[($i+2)]) {
                        $erro['name'] = 'This character name is already used. Please select another one!';
                        break;
                    }
            }
            if(!isset($erro['name'])) {
                foreach($nomesBloqueados as $v)
                    if(strpos($charactername, $v) !== false) {
                        $erro['name'] = 'This character name can not be used. Please select another one!';
                        break;
                    }
            }
            if(!isset($erro['name'])) {
                $ple = new Player($charactername, Player::LOADTYPE_NAME);
                if($ple->isLoaded())
                    $erro['name'] = 'This character name is already used. Please select another one!';
            }
        }

        if(!isset($_POST['sex']) || ($_POST['sex'] != 'male' && $_POST['sex'] != 'female'))
            $erro['sex'] = 'Please select the sex for your character!';

        if(count($voc) != 0 && (!isset($_POST['vocation']) || !is_numeric($_POST['vocation']) || !isset($voc[$_POST['vocation']])))
            $erro['vocation'] = 'Please select the vocation for your character!';*/

        $email = isset($_POST['email']) ? $_POST['email'] : '';

        if ($email == '')
            $erro['email'] = 'Please enter your email address!';
        elseif (strlen($email) > 49)
            $erro['email'] = 'Your email address is too long!';
        elseif (!filter_var($email, FILTER_VALIDATE_EMAIL))
            $erro['email'] = 'This email address has an invalid format. Please enter a correct email address!';
        else {
            $accMailCheck = new Account($email, Account::LOADTYPE_MAIL);
            if ($accMailCheck->isLoaded())
                $erro['email'] = 'This email address is already used. Please enter another email address!';
        }

        $password1 = isset($_POST['password1']) ? $_POST['password1'] : '';
        $password2 = isset($_POST['password2']) ? $_POST['password2'] : '';

        if (empty($password2))
            $erro['pass'] = 'Please enter the password again!';
        elseif ($password1 != $password2)
            $erro['pass'] = 'The two passwords do not match!';
        else {
            $err = array();
            if (strlen($password1) < 6 || strlen($password1) > 29)
                $err[] = 'The password must have at least 8 and less than 30 letters!';
            if (!ctype_alnum($password1))
                $err[] = 'The password contains invalid letters!';

            if (count($err) != 0) {
                $erro['pass'] = '';
                for ($i = 0; $i < count($err); $i++)
                    $erro['pass'] .= ($i == 0 ? '' : '<br/>') . $err[$i];
            }
        }

        if (!isset($_POST['agreeagreements']) || empty($_POST['agreeagreements']))
            $erro['rules'] = 'You have to agree to the ' . $config['server']['serverName'] . ' Rules in order to create an account!';

        if (count($erro) != 0) {
            $main_content = '<div class="SmallBox"><div class="MessageContainer"><div class="BoxFrameHorizontal" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeLeftTop" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeRightTop" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-edge.gif)"/></div><div class="ErrorMessage"><div class="BoxFrameVerticalLeft" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-vertical.gif)"/></div><div class="BoxFrameVerticalRight" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-vertical.gif)"/></div><div class="AttentionSign" style="background-image:url(' . $layout_name . '/images/global/content/attentionsign.gif)"/></div><b>The Following Errors Have Occurred:</b><br/>';
            foreach ($erro as $error) $main_content .= $error . '<br/>';
            $main_content .= '</div><div class="BoxFrameHorizontal" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-horizontal.gif)"/></div><div class="BoxFrameEdgeRightBottom" style="background-image:url(' . $layout_name . '/images/global/content/box-frame-edge.gif)"/></div><div class="BoxFrameEdgeLeftBottom" style="background-image:url(' . $layout_name . '/images/content/global/box-frame-edge.gif)"/></div></div></div><br/>';
        } else {
            $reg_account = new Account();
            $reg_account->setName(strtoupper($_POST['accountname']));
            $reg_account->setPassword($_POST['password1']);
            $reg_account->setEMail($_POST['email']);
            $reg_account->setCreateDate(time());
            $reg_account->setCreateIP(Visitor::getIP());
            $reg_account->setFlag(Website::getCountryCode(long2ip(Visitor::getIP())));
            $reg_account->save();

            /*if($reg_account->getID() > 0) {
                $sample = (count($voc) == 0 ? 'Rook' : $voc[$_POST['vocation']]).' Sample';
                $char_to_copy = new Player();
                $char_to_copy->find($sample);
                if(!$char_to_copy->isLoaded())
                    die('Missing sample character ('.$sample.')');
                $char_to_copy->getItems()->load();
                $char_to_copy->setLookType(($_POST['sex'] == 'female' ? 136 : 128));
                $char_to_copy->setID(null); // save as new character
                $char_to_copy->setLastIP(0);
                $char_to_copy->setLastLogin(0);
                $char_to_copy->setLastLogout(0);
                $char_to_copy->setName($_POST['name']);
                $char_to_copy->setAccount($reg_account);
                $char_to_copy->setSex(($_POST['sex'] == 'female' ? 0 : 1));
                $char_to_copy->setPosX(0);
                $char_to_copy->setPosY(0);
                $char_to_copy->setPosZ(0);
                $char_to_copy->setCreateIP(Visitor::getIP());
                $char_to_copy->setCreateDate(time());
                $char_to_copy->setSave(); // make character saveable
                $char_to_copy->save(); // now it will load 'id' of new player
            }*/
            //show information about registration
            if ($config['site']['send_emails']) {
                $reg_name = $reg_account->getName();
                $reg_email = $reg_account->getEMail();
                $mailBody = '<html>
            <body>
            <h3>Your account name and password!</h3>
            <p>You or someone else registred on server <a href="' . $config['server']['url'] . '"><b>' . htmlspecialchars($config['server']['serverName']) . '</b></a> with this e-mail.</p>
            <p>Account name: <b>' . htmlspecialchars($reg_name) . '</b></p>            
            <br />
            <p>After login you can:</p>
            <li>Create new characters
            <li>Change your current password
            <li>Change your current e-mail
            </body>
            </html>

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo