Jump to content
Pellegrini3834

Gravar somente campos que possui string sem utilizar simbolos ou números depois

Recommended Posts

Olá galera do php estou com um probleminha com uma função chamada preg_match onde eu configuro para não gravar caracteres especiais ou números  depois que eu entro com dados via post eu quero somente que ele grave um dado(string) valido ate ai tudo bem, mas se eu entro com uma string valida e em seguida eu coloco símbolos ou números  antes ou depois deste dado ele grava  também como vimos no  Exemplo1(Fabio@#%&9090) e Exemplo2($%*&777Fabio) e isso que eu não quero, quero somente o dado valido exemplo(Fabio).

 

public function ctlIncluirSt() {
        
        $setor = $_POST['txtdesc'];

        if (isset($_POST["btnincluir"])) {
            if (empty(trim($_POST['txtdesc']) && (preg_match("/[^a-zA-Z\s]/", "",$setor)))) {
                echo '<div class="alert-danger">Campo Está Inválido Por Favor Preencha Corretamente!!!</div>';
            } else {
                $this->ObjSetor->setDesc($_POST['txtdesc']));
                echo '<div class="alert-success">Setor Incluido com Sucesso!!!</div>';
                return $this->ObjDaoSetor->incluirSt($this->ObjSetor);
            }
        }
    }

 

Share this post


Link to post
Share on other sites

Através do respectivo valor dos caracteres na tabela ASCII, você consegue fazer a restrição de quais caracteres são válidos.

 

Link de uma tabela ASCII: https://blog.tetranet.com.br/tabelas-codigos-ascii-normal-e-extendida/

 

A comparação será feita para todo caractere da string. Logo, você consegue evitar por exemplo: Paul%o.

Share this post


Link to post
Share on other sites

Boa noite!

 

Cara, acho que você está usando a função com os parâmetros errados:

 

http://php.net/manual/pt_BR/function.preg-match.php

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int$offset = 0 ]]] )

 

Corrigindo os parâmetros, a lógica (que deve ser OR || ao invés de AND &&) e o pattern ficaria assim:

 

public function ctlIncluirSt() {
        
        $setor = $_POST['txtdesc'];

        if (isset($_POST["btnincluir"])) {
			//Acrescentei o + no pattern, dizendo que pode existir mais de uma letra.
            if ((empty($_POST['txtdesc'])) || (preg_match("/[^a-zA-Z\s]+/", $setor, $matches) === 1)) {
                echo '<div class="alert-danger">Campo Está Inválido Por Favor Preencha Corretamente!!!</div>';
            } else {
                $this->ObjSetor->setDesc($_POST['txtdesc']));
                echo '<div class="alert-success">Setor Incluido com Sucesso!!!</div>';
                return $this->ObjDaoSetor->incluirSt($this->ObjSetor);
            }
        }
    }

Ficou claro?

 

Um abraço!

 

Share this post


Link to post
Share on other sites

Caso não esteja fazendo, é bom também incluir a mesma validação no formulário, para evitar processamento desnecessário no back-end. Exemplo:

<form action="/xpto.php">
  <input type="text" name="txtdesc" pattern="[A-Za-z]" title="Campo invalido, preencha apenas com caracteres de A à Z">
  <input type="submit">
</form>

 

Share this post


Link to post
Share on other sites

Agora apareceu mais  dois problemas amigos eu quero que aceite somente palavras acentuadas, mas quando configuro as expressões regulares para aceitar  qualquer tipo de palavra acentuada ele também aceita caracteres  (!@#$%¨&*etc..) coisa que eu não quero que  aconteça queria somente palavras acentuadas como exemplo: "Administração" e o outro problema que ele não aceita espaços entre palavras como por exemplo "Análise de Sistemas".

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Joob
      Boas Malta,
       
      Não sei porquê que não estou a conseguir remover os ficheiros após minutos..
      Por exemplo ele vai buscar o deleteshared_links e apaga a partilha feita após o tempo colocado, mas no deletezips já não apaga.
      Supostamente ele vai buscar os ficheiros da pasta zip e deveria apagar.
       
      Resolvido
       
      Obrigado :)
    • By adamo marinho
      Estou tentando achar numeros iguais dentro de arrays criadas usando a função array_intersect, porem para facilitar o meu projeto, precisaria incluir variaveis dentro das arrays, alguem pode ajudar por favor?

      <?php $v1_1 = 1; $v1_2 = 2; $v1_3 = 3; $v1_4 = 4; $v1_5 = 5; $v1 = array($v1_1, $v1_2, $v1_3, $v1_4, $v1_5); $v2_1 = 6; $v2_2 = 7; $v2_3 = 8; $v2_4 = 9; $v2_5 = 10; $v2 = array($v2_1, $v2_2, $v2_3, $v2_4, $v2_5); $v3_1 = 10; $v3_2 = 9; $v3_3 = 8; $v3_4 = 7; $v3_5 = 6; $v3 = array($v3_1, $v3_2, $v3_3, $v3_4, $v3_5); $v4_1 = 5; $v4_2 = 4; $v4_3 = 3; $v4_4 = 2; $v4_5 = 1; $v4 = array($v4_1, $v4_2, $v4_3, $v4_4, $v4_5); $resultado = array_intersect($v1, $v2, $v3, $v4 ); var_dump($resultado); ?>
    • By babylon
      Ola amigos,
       
      Estava querendo criar algo para meu site, um botao igual do site abaixo para calcular formas de pagamento "ver formas de pagamento":
       
      https://www.chipart.com.br/pc-gamer-level-one-black-amd-3400g
       
      Segue imagem em anexo.
       
      Alguem poderia me ajudar se tem algum script algo pronto ou que ajude para abrir pop up modal?
       
      Obrigado a todos.
       
       

    • By srs1999_
      Tópico
       
      Site em Código
      Sobre desenvolver sites sem o wordpress que ja tá tudo ali feito que seja um site dinâmico ou seja com banco de dados , APIs de pagamento, Painel para o usuário ,  além de todas  as funções que tem no wordpress e você teria propriedade pra explicar sobre detalhes mais técnicos da produção onde no wordpress só quem entende de progrqmação explicaria algum detalhe técnico 
      Então usando basicamente : 
      FRONT END 
      HTML 
       CSS 
      JAVASCRIPT 
      ALGUMA DE BACKEND COMO PHP E BANCO DE DADOS
      Pode se criar sites/sistemas tão bons ou melhores que no wordpress
       
      Fato : o proprio wordpress é feito em php e ate o proprio facebook tbm em php
      Fato 2 :  cerca de 70% dos sites são feitos em Wordpress
       
      Acho esse lance de procurar o caminho mais fácil limita muito a pessoa por exemplo é facil editar imagens no paint bem intuitivo , agora para editar no photoshop com muitas outras possibilidades  acaba sendo importante ir explorando essa elaboração mais difícil  com um mesmo objetivo. No caso do exemplo ( editar imagens )  
       
      Reflexão:
      Vale a pena se dedicar a trabalhar com a ferramenta Wordpress apenas por ser um meio rápido de ganhar dinheiro ?
      Ou trabalhar sem wordpress  usando tudo que exigido pra criar coisas originais mais que não seria tão rápido a produção. Mas creio que além dos sites feitos também geraria a possibildade de vender o sistema web criado para o cliente personalizar .
       
      Você Desenvolveria de que forma :
       Wordpress apenas ?
       
      Conhecer programação pra trabalhar 
      com  Wordpress ?
       
      Produzir tudo só com programação totalmente dinâmico sem  Wordpress?
    • By violin101
      Caros amigos
       
      saudações...
       
      Peço desculpa, se postei minha dúvida em local errado.
       
      Tenho um formulário onde valido todos os campos e após clicar no BUTTON para adicionar, tenho uma função que muda o TITLE e deixa desabilitado.
       
      O problema é o seguinte:
      - caso algum campo fica em branco, após validar o formulário e mudar o BUTTON, não consigo depois de preenchido HABILITAR novamente o button.
       
      Observação:
      1) após preencher o campo que ficou em branco, como faço para HABILITAR o button novamente e mudar o title do button ?
       
       
      na VIEW está assim:
      <form action="<?php echo current_url(); ?>" id="frmEstoque" method="post" onsubmit="this.btn_adc.disabled=true;" > <div class="card-body"> <div class="row"> <!---Todos os campos do Formulário---> </div> </div> <div class="card-footer" style="text-align:center;"> <input type="hidden" id="idCli" name="idCli" value="<?php echo $cliente->idClientes; ?>" /> <a href="<?php echo base_url() ?>admin/estoque" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a> &nbsp; <button type="submit" id="btn_adc" name="btn_adc" class="btn btn-primary">Adicionar</button> </div> </form>  
      na JavaScript está assim:
      <script> //Função para Mudar o VALUE do Button Adicionar Veículo document.getElementById("btn_adc").addEventListener("click",function(){ this.innerHTML = this.value++ || 'Aguarde...'; },false); </script> /* Observação: 1) como removo a função acima, após validar o formulário e esse encontrar algum campo vazio. 2) após preencher o campo que ficou em branco, HABILITAR o button novamente. */ <script type="text/javascript"> $(document).ready(function(){ //Função para Validar Formulário $('#frmEstoque').validate({ rules :{ etq_categcars:{ required: true}, etq_destaq:{ required: true}, etq_status:{ required: true} }, messages:{ etq_categcars :{ required: '<span style="color:#ff0000;">Campo Requerido</span>'}, etq_destaq :{ required: '<span style="color:#ff0000;">Campo Requerido</span>'}, etq_status :{ required: '<span style="color:#ff0000;">Campo Requerido</span>'} }, errorClass: "help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.form-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.form-group').removeClass('error'); $(element).parents('.form-group').addClass('success'); } }); //Status dos Botões ADICIONAR - iniciar como desabilitado. document.getElementById("btn_adc").disabled = true; }); function statusButton(){ //valida conteudo do input if ($("input[name=etq_vlrcpr]").val() != 0 && $("input[name=etq_vlrvda]").val() != 0) { //habilita o botão document.getElementById("btn_adc").disabled = false; } else { //desabilita o botão se o conteúdo do input ficar em branco document.getElementById("btn_adc").disabled = true; } } </script>  
      Grato,
       
      Cesar
       
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.