Postado Abril 4, 2018 7 anos Autor @Rusherzin Muito sóbria sua observação! Já que de fato estou usando uma versão recente do PHP, para ser mais específico a 5.6. Realizei o que propuseste, sem resultados, infelizmente... O que me é estranho é justamente o fato de retornar a resposta do createaccount.php depois que dou submit.. Exemplo: Citar Esse retorno traduzido pra PT-BR foi o que traduzi no createaccount.php, não nos ajax... Já que dos ajax não traduzi, deixei em inglês. Justamente para dar uma diferenciada e saber quando estivesse chamando a resposta dos ajax. Penso que talvez possa ser uma má chamada dos ajax no createaccount.php, mas por falta de experiência prefiro não dar muita ênfase nisso.
Postado Abril 4, 2018 7 anos Sim, isso é normal. Quando tu clicas em submit, a condição a seguir passa a ser verdadeira e, por esse motivo, tu acaba recebendo as mensagens que estão dentro dela. if(isset($_POST['step']) && $_POST['step'] == 'docreate') { Tenta usar o código dessa maneira:ajax_accountname.php Spoiler <?PHP ob_start('ob_gzhandler'); header('Connection: close'); if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') exit(); header('X-Ajax-Cip-Response-Type: Container'); function f($e) { die('{"AjaxObjects": [{"DataType": "Attributes","Data": "style=background-image:url(account/nok.gif)","Target": "#accountname_indicator"},{"DataType": "HTML","Data": "'.$e.'","Target": "#accountname_errormessage"},{"DataType": "Attributes","Data": "class=red","Target": "#accountname_label"}]}'); } $s = isset($_POST['a_AccountName']) ? $_POST['a_AccountName'] : ''; if($s == '') f('Please enter an account name!'); elseif(strlen($s) < 6) f('This account name is too short!'); elseif(strlen($s) > 30) f('This account name is too long!'); $s = strtoupper($s); if(!ctype_alnum($s)) f('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]/', $s)) f('Your account name must include at least one letter A-Z!'); $c = parse_ini_file('../config/config.ini'); $c = parse_ini_file($c['server_path'].'config.lua'); $conn = new mysqli($c['sqlHost'], $c['sqlUser'], $c['sqlPass'], $c['sqlDatabase']) or die($conn->connect_error); $query = $conn->prepare("SELECT id FROM accounts WHERE name=? LIMIT 1"); $query->bind_param("s", $s); $query->execute(); $result = $query->fetch(); if($result) f('This account name is already used. Please select another one!'); echo '{"AjaxObjects": [{"DataType": "Attributes","Data": "style=background-image:url(account/ok.gif);","Target": "#accountname_indicator"},{"DataType": "HTML","Data": "","Target": "#accountname_errormessage"},{"DataType": "Attributes","Data": "class=","Target": "#accountname_label"}]}'; ob_end_flush(); ?> Ajudei? De nada \o/ Att Rusherzin
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.