Bloqueio de caracteres especias PHP e JavaScript

1. Bloqueio de caracteres especias PHP e JavaScript

Alysson
AlyssonAlmeida

(usa Ubuntu)

Enviado em 10/06/2023 - 00:58h

Coloquei os seguintes scripts dentro da pagina PHP que quero impedir que os usuarios digitem nos formularios login e senha com caracteres especias
No Desktop funcionou perfeitamente, mas no mobile não funciona, alguem sabe como resolver?

<div class="col-md-6 col-12">
<div class="mb-1">
<label class="form-label" for="first-name-icon">Usuário</label>
<div class="input-group input-group-merge">
<span class="input-group-text"><i data-feather="user"></i></span>
<input type="text" name="login_ssh" id="login_ssh" class="form-control" data-minlength="4" data-maxlength="32" placeholder="Digite o usuário..." required="">
</div>

</div>
<div class="col-md-6 col-12">
<div class="mb-1">
<label class="form-label" for="country-floating">Senha</label>
<div class="input-group input-group-merge">
<span class="input-group-text"><i data-feather='lock'></i></span>
<input type="text" min="4" max="32" class="form-control" name="senha_ssh" data-minlength="4" id="senha_ssh" placeholder="Digite a Senha" required="" value="<?php echo $senha_ssh;?>">

</div>

<script>
var input = document.querySelector("#login_ssh");
input.addEventListener("keypress", function(e) {
if(!checkChar(e)) {
e.preventDefault();
}
});
function checkChar(e) {
var char = String.fromCharCode(e.keyCode);

console.log(char);
var pattern = '[a-zA-Z0-9]';
if (char.match(pattern)) {
return true;
}
}
</script>

<script>
var input = document.querySelector("#senha_ssh");
input.addEventListener("keypress", function(e) {
if(!checkChar(e)) {
e.preventDefault();
}
});
function checkChar(e) {
var char = String.fromCharCode(e.keyCode);

console.log(char);
var pattern = '[a-zA-Z0-9]';
if (char.match(pattern)) {
return true;
}
}
</script>


  


2. Re: Bloqueio de caracteres especias PHP e JavaScript

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 10/06/2023 - 09:41h

Não confie nos seus usuários!

O que digo é, não valide o form no cliente via javascript, mas sim no servidor via php.
Por exemplo, já pensou na possibilidade de causar um sql injection ou algo do tipo?
Isso pode acontecer caso um user malicioso estude seu javascript e ai ele presuma que vc só valida no cliente e não no servidor.

Então, minha sugestão é que vc verifique por meio de uma expressão regular via php no próprio servidor e não nos clientes via javascript.
Basta colocar um fetch em javascript pra sua página e ai ela devolve um valor como válido ou não, como uma API de validação.


https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!


3. Re: Bloqueio de caracteres especias PHP e JavaScript

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/06/2023 - 01:23h

AlyssonAlmeida escreveu:

Coloquei os seguintes scripts dentro da pagina PHP que quero impedir que os usuarios digitem nos formularios login e senha com caracteres especias
No Desktop funcionou perfeitamente, mas no mobile não funciona, alguem sabe como resolver?

<div class="col-md-6 col-12">
<div class="mb-1">
<label class="form-label" for="first-name-icon">Usuário</label>
<div class="input-group input-group-merge">
<span class="input-group-text"><i data-feather="user"></i></span>
<input type="text" name="login_ssh" id="login_ssh" class="form-control" data-minlength="4" data-maxlength="32" placeholder="Digite o usuário..." required="">
</div>

</div>
<div class="col-md-6 col-12">
<div class="mb-1">
<label class="form-label" for="country-floating">Senha</label>
<div class="input-group input-group-merge">
<span class="input-group-text"><i data-feather='lock'></i></span>
<input type="text" min="4" max="32" class="form-control" name="senha_ssh" data-minlength="4" id="senha_ssh" placeholder="Digite a Senha" required="" value="<?php echo $senha_ssh;?>">

</div>

<script>
var input = document.querySelector("#login_ssh");
input.addEventListener("keypress", function(e) {
if(!checkChar(e)) {
e.preventDefault();
}
});
function checkChar(e) {
var char = String.fromCharCode(e.keyCode);

console.log(char);
var pattern = '[a-zA-Z0-9]';
if (char.match(pattern)) {
return true;
}
}
</script>

<script>
var input = document.querySelector("#senha_ssh");
input.addEventListener("keypress", function(e) {
if(!checkChar(e)) {
e.preventDefault();
}
});
function checkChar(e) {
var char = String.fromCharCode(e.keyCode);

console.log(char);
var pattern = '[a-zA-Z0-9]';
if (char.match(pattern)) {
return true;
}
}
</script>

Boa noite Alysson.
Quanto a sua pergunta:
No Desktop funcionou perfeitamente, mas no mobile não funciona, alguem sabe como resolver?
Recomendo que use as 'Ferramentas do Desenvolvedor' com o script rodando no celular....
Foi assim que resolvi um problema que tive.
//-----------------------------------------------------//
Sugestão:
<label for='senha'>Senha:</label>
<input type="text" min="4" max="32" id="senha" placeholder="Digite a Senha" onkeyup='pega_key(event);'>
<br><br>
<pre id='log'></pre>
<script>
function pega_key(e) {
var k = e.key;
if( (/^\w$/).test(k)){
log.innerHTML+=`True: ${k}<br>`
}else{
log.innerHTML+=`False: ${k}<br>`;
}
}
</script>



______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



4. Re: Bloqueio de caracteres especias PHP e JavaScript

Buckminster
Buckminster

(usa Debian)

Enviado em 12/06/2023 - 08:15h

1 - HTML
<input type="text" required="required" name="text" pattern="[a-zA-Z0-9]+">

2 - PHP
$pattern = '[a-zA-Z0-9]';
if (preg_match($pattern, $email)){return true;}
ou
if (preg_match("/([a-zA-Z0-9])/", $email)){return true;}

3 -Javascript
document.getElementById("teste").onkeydown = function(e) {
var chr = String.fromCharCode(e.which);
if ("1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM".indexOf(chr) < 0)
return false;
};

<input type="text" name="name" id="teste">

https://pt.stackoverflow.com/questions/91477/como-bloquear-caracteres-especiais-em-campo
https://pt.stackoverflow.com/questions/15738/como-validar-com-regex-uma-string-contendo-apenas-letra...
https://stackoverflow.com/questions/47478453/keyup-keydown-and-keypress-events-not-working-on-mobile

________________________________________________
Always listen the Buck!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts