Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ridley Ramos

Senha com caracteres especiais

Recommended Posts

  if($serverSettings['register_on'] && (!isset($_SESSION['user_admin']))) {
  
    if(isset($_POST['submit']) && $_POST['submit']=="Registrar") {
      if((checkAnum($_POST['account']) && strlen($_POST['account'])>=5 && strlen($_POST['account'])<=16) && checkAnum($_POST['pass'])  && strlen($_POST['pass'])>=8 && strlen($_POST['pass2'])<=16 && !empty($_POST['pass2']) && (checkName($_POST['uname']) && strlen($_POST['uname'])>=3 && strlen($_POST['uname'])<=20) && $_POST['pass']==$_POST['pass2'] && checkMail($_POST['email']) && strlen($_POST['email'])<=40  && (checkAnum($_POST['loeschcode']) && strlen($_POST['loeschcode'])==7)) {

      
        $lcode = mysql_real_escape_string($_POST['loeschcode']);
        
        $zuFall = rand(99999,999999999);
        $userpass=mysql_real_escape_string($_POST['pass']);
        
        $aktivHash = ($serverSettings['mail_activation']) ? md5($zuFall):'';
        $accountStatus = ($serverSettings['mail_activation']) ? 'BLOCK':'OK';
          mysql_set_charset('utf8');
  mysql_query("SET NAMES 'utf8' ");
  mysql_query("SET character_set_connection=utf8");
  mysql_query("SET character_set_client=utf8");
  mysql_query("SET character_set_results=utf8");
        $sqlCmd = "INSERT INTO account.account 
        (login,password,real_name,email,social_id,question1,answer1,create_time,status,coins,autoloot_expire,safebox_expire,web_aktiviert) 
        VALUES 
        ('".$_POST['account']."',PASSWORD('".$userpass."'),'".mysql_real_escape_string($_POST['uname'])."','".mysql_real_escape_string($_POST['email'])."','".$lcode."','".$sfNum."','".$hashSF."','".$sqlZeit."','".$accountStatus."','".$regCoins."','".$expireDate."','".$expireDate."','".$aktivHash."')";
        $sqlQry = mysql_query($sqlCmd,$sqlServ);

Eu criei um site de cadastro mais ele não está aceitando senhas com caracteres especiais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pega essas senhas e faça delas um hash e insira no db, assim evita este problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já estão indo como hash PASSWORD('".$userpass."')

:ninja:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok!

Além do seu código esta muito sujo e usando funções obsoletas.

 

Seu banco se chama account?

 

e tabela também se chama account?

INSERT INTO account.account (login ...
$sqlQry = mysql_query($sqlCmd,$sqlServ);

pesquise por mysql_error(), e veja se o problema é mesmo a senha!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?PHP
  
  $regCoins = 0; // Startcoins
  
  $laufZeit = 365; //Tage autoloot,safebox
  $calcLZ = (60*60*24)*365;
  $expireStamp = time()+$calcLZ;
  $expireDate = date("Y-m-d H:i:s",$expireStamp);
  
  if($serverSettings['register_on'] && (!isset($_SESSION['user_admin']))) {
  
    if(isset($_POST['submit']) && $_POST['submit']=="Registrar") {
      if((checkAnum($_POST['account']) && strlen($_POST['account'])>=5 && strlen($_POST['account'])<=16) && checkAnum($_POST['pass'])  && strlen($_POST['pass'])>=8 && strlen($_POST['pass2'])<=16 && !empty($_POST['pass2']) && (checkName($_POST['uname']) && strlen($_POST['uname'])>=3 && strlen($_POST['uname'])<=20) && $_POST['pass']==$_POST['pass2'] && checkMail($_POST['email']) && strlen($_POST['email'])<=40  && (checkAnum($_POST['loeschcode']) && strlen($_POST['loeschcode'])==7)) {

      
        $lcode = mysql_real_escape_string($_POST['loeschcode']);
        
        $zuFall = rand(99999,999999999);
        $userpass=mysql_real_escape_string($_POST['pass']);
        
        $aktivHash = ($serverSettings['mail_activation']) ? md5($zuFall):'';
        $accountStatus = ($serverSettings['mail_activation']) ? 'BLOCK':'OK';
          mysql_set_charset('utf8');
  mysql_query("SET NAMES 'utf8' ");
  mysql_query("SET character_set_connection=utf8");
  mysql_query("SET character_set_client=utf8");
  mysql_query("SET character_set_results=utf8");
        $sqlCmd = "INSERT INTO account.account 
        (login,password,real_name,email,social_id,question1,answer1,create_time,status,coins,autoloot_expire,safebox_expire,web_aktiviert) 
        VALUES 
        ('".$_POST['account']."',PASSWORD('".$userpass."'),'".mysql_real_escape_string($_POST['uname'])."','".mysql_real_escape_string($_POST['email'])."','".$lcode."','".$sfNum."','".$hashSF."','".$sqlZeit."','".$accountStatus."','".$regCoins."','".$expireDate."','".$expireDate."','".$aktivHash."')";
        $sqlQry = mysql_query($sqlCmd,$sqlServ);
        if($sqlQry) {
          
          
          $absender = $serverSettings['titel']."";
          $email = $serverSettings['reg_mail'];
          $empfaenger = $_POST['email'];
          $mail_body = "Olá ".$_POST['uname'].",
          
          Seu registro no ".$serverSettings['titel']." Foi efetuado com sucesso! Para iniciares a sessão tens que ativar a tua conta.
          Para ativares a tua conta carrega no link a baixo:
          
          ".$serverSettings['url']."/login&do=aktivieren&hash=".$aktivHash."
          
          Dados da sua conta
          Conta: ".$_POST['account']."
          Password: ".$userpass."
          
          Codigo Apagar personagem: ".$lcode."
          Pergunta de segurança: ".$sFrage[$sfNum]."
          Resposta de segurança: ".$_POST['sicherheitsa']."
          
          Desejamos-lhe boa sorte.
          
          Cumprimentos ".$serverSettings['titel']." Nova-Aventura
          
          
          Este endereço de e-mail foi gerado automaticamente. Por favor, enviar respostas para este endereço, senão estás lixado!";
          $titel = "Registro no ".$serverSettings['titel'];
          
          $header = "X-Priority: 3\n";
          $header .= "X-Mailer: ".$serverSettings['titel']." Homepage Mailer\n";
          $header .= "MIME-Version: 1.0\n";
          $header .= "From: ".$absender." <".$serverSettings['reg_mail'].">\n";
          $header .= "Reply-To: ".$serverSettings['reg_mail']."\n";
          $header .= "Content-Type: text/plain; charset=iso-8859-1\n";
          
          
          if($serverSettings['mail_activation']) {
            mail($empfaenger, $titel, $mail_body, $header);
            echo'
			
			
<div class="boxui box-con">
<div class="wrap">
        <div class="formSteps stp2">
        </div>
        <div class="sep">
        </div>
        <p>
            <b>Bem-Vindo ao '.$serverSettings['titel_page'].'!</b>
        </p>
        <p>
            Deverás estar prestes a receber um email a pedir para confirmares o teu registro.
            Por favor confirme o seu registro clicando na hiperligação enviada no email. Só podes
            começar a usar a tua conta após teres confirmado o seu registro.
            <br>
            Para jogares precisas efectuar o Download do Jogo.</p>
        <div class="sep">
        </div>
        <center>
            <a class="btn2 curved5" href="download">Prosseguir para o Download</a></center>
    </div>
	</div>
	<div class="boxui box-end">
</div>
			
			';

          }
          else {
            echo'<p class="meldung_sucesso">Conta criada com sucesso. Agora ja pode entrar na sua conta.</p>';
          }
          
        }
        else {
          echo'<p class="meldung_erro">Falha de registro: A conta já existe.</p>';
        }
        
      }
      else {
        echo'<p class="meldung_erro">registro falhou: especifique todos os campos corretamente.</p>';
      }
    }
  ?>
                
                <script type="text/javascript">
    $(document).ready(function () {
        $(".upass").keyup(function () {
            var pw = $(this);
            var str_e = $(".pwstr");
            var v = pw.val();
            var l = v.length;
            if (v == 'Palavra-Passe') {
                str_e.attr("class", "pwstr st1");
            }
            if (l < 2) {
                str_e.attr("class", "pwstr st1");
            }
            else if (l >= 2 && l < 4) {
                str_e.attr("class", "pwstr st1");
            }
            else if (l >= 4 && l < 6) {
                str_e.attr("class", "pwstr st2");
            }
            else if (l >= 6 && l < 8) {
                str_e.attr("class", "pwstr st3");
            }
            else if (l >= 8) {
                str_e.attr("class", "pwstr st4");
            }
        });

    });

</script>


<div class="boxui box-title">
    <h3>
        ETAPA 1 - Faça o registro</h3>
</div>
<div class="boxui box-con">
    <div class="wrap">
        <div class="formSteps stp1">
        </div>
        <div class="sep">
        </div>
        <p>
            Preenche o formulário abaixo para registrar uma nova conta. Todos os campos são obrigatórios!</p>
        <div class="sep">
        </div>
<form action="registro" class="labelForm" id="RegisterForm" method="post"><input Value="0" data-val="true" data-val-number="The field id must be a number." data-val-required="The id field is required." id="id" name="id" type="hidden" value="0" />        
<label for="">
            Nome de Usuário:</label>
<input alt="Mínimo de 6 caracteres" class="bar curved5 tooltip_registo_uid" required maxlength="16" name="account" placeholder="Mínimo de 6 caracteres" type="text" value="" />        <span id="reg_uid"></span>
        <br>
        <div class="sep"></div>
        <label for="">
            O Seu Nome:</label>
<input alt="Mínimo de 3 caracteres" class="bar curved5 tooltip_registo_uid" required name="uname" placeholder="Mínimo de 3 caracteres" type="text" value="" />        <span id="reg_uname"></span>
        <br>
        <div class="sep">
        </div>
        <label for="">
            Código Apagar Personagem:</label>
<input alt="7 digitos" class="bar curved5 tooltip_registo_uid" maxlength="7" required name="loeschcode" placeholder="7 caracteres" type="text" value="" />        <span id="reg_social_id"></span>
        <br>
        <div class="sep">
        </div>
        <label for="">
            Senha:</label>
<input alt="Mínimo de 8 caracteres" class="bar curved5 tooltip_registo_uid upass" required name="pass" placeholder="Mínimo de 8 caracteres" type="password" />        <span id="reg_upass"></span>
        <br>
        <div class="sep">
        </div>
		 <label for=""> Senha [Confirmação]:</label>
		<input class="bar curved5 tooltip_registo_uid upass" type="password" required name="pass2" maxlength="16" size="16" placeholder="Mínimo de 8 caracteres" />
        <br>
        <label for="">
        </label>
        <div id="pw_div" class="pwstr st1">
        </div>
        <div class="sep">
        </div>

        <label for="">
            E-mail:</label>
<input alt="Insere um e-mail válido" class="bar curved5 tooltip_registo_uid" required id="username" name="email" placeholder="Insira um e-mail válido" type="email" value="" />        <span id="reg_uemail"></span>
        <br>
                <div class="sep"></div>
       
        <textarea readonly="readonly" class="cgd barTXT curved5" style="resize: none;" rows="15">TERMOS DE USO

		
</textarea>
        <div class="sep">
        </div>
        <input name="agreement" required type="checkbox" />
        <span>Eu concordo com os </span><a href="rulls">Termos de Uso do <?PHP echo $serverSettings['titel_page']; ?>.</a>
        <div class="sep">
        </div>
        <center>
            <input name="submit" value="Registrar" class="btn s2" type="submit">
        </center>
</form>        
    </div>
</div>
<div class="boxui box-end">
</div>

                
            </div>
  <?PHP
  }
  else {
    echo'
	<div class="boxui box-title">
<span class="title-icon icon-status"></span>
<h3>Erro</h3>
</div>
<div class="boxui box-con"><p style="padding-left:10px;">Os registros foram desativados pelo administrador, ou então já estás logado no site.</p></div>
<div class="boxui box-end"></div>
';
}
?>

            

ai está o arquivo completo. é ele pois quando tento com senha com somente letras ou numeros cria normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando disse para pesquisar sobre mysql_error e para você efetuar um debug

 

http://php.net/manual/pt_BR/function.mysql-error.php

 

Veja que erro mostra e tente corrigir, aqui é um fórum, não help desk, onde posta o script, e o analista verifica onde esta feito a cagada.

 

Como eu disse antes hash+salt de segurança resolve, ao invés de função PASSWORD nativa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.