Jump to content
paulojk

Problema com if

Recommended Posts

Alguém sabe dizer qual o erro aqui?

if (substr($purse_pay, 0, 2) != 'A+' or substr($purse_pay, 0, 2) != 'B+' or !is_numeric(substr($purse_pay, 2)))

O usuario la em configuração de sua conta ele vai ter add um número de telefone no formato ex: A+999990000 ou B+999990000

Share this post


Link to post
Share on other sites

@paulojk

 

Experimente esse código, altere apenas o valor do PURSE_PAY como os exemplos abaixo:

 

$purse_pay = "A+99999999";

$purse_pay = "B+99999999";

$purse_pay = "A+a9";

$purse_pay = "B+B99999999";

$purse_pay = "C+99999999";

$purse_pay = "C+9999999n";

<?php
$purse_pay = "C+99999999";

if ((substr($purse_pay, 0, 2) == 'A+' OR substr($purse_pay, 0, 2) == 'B+') AND is_numeric(substr($purse_pay, 2))) {
    echo substr($purse_pay, 0, 2);
    echo "<br />";
    echo substr($purse_pay, 2);
    echo "<br />";
    echo "Número telefônico atende ao padrão!";
} else {
    echo substr($purse_pay, 0, 2);
    echo "<br />";
    echo substr($purse_pay, 2);
    echo "<br />";
    echo "Número telefônico fora do padrão!";
};
?>

Espero ter ajudado.

 

Att.

Felipe Coutinho

Share this post


Link to post
Share on other sites
1 hora atrás, Felipe Guedes Coutinho disse:

@paulojk

 

Experimente esse código, altere apenas o valor do PURSE_PAY como os exemplos abaixo:

 

$purse_pay = "A+99999999";

$purse_pay = "B+99999999";

$purse_pay = "A+a9";

$purse_pay = "B+B99999999";

$purse_pay = "C+99999999";

$purse_pay = "C+9999999n";


<?php
$purse_pay = "C+99999999";

if ((substr($purse_pay, 0, 2) == 'A+' OR substr($purse_pay, 0, 2) == 'B+') AND is_numeric(substr($purse_pay, 2))) {
    echo substr($purse_pay, 0, 2);
    echo "<br />";
    echo substr($purse_pay, 2);
    echo "<br />";
    echo "Número telefônico atende ao padrão!";
} else {
    echo substr($purse_pay, 0, 2);
    echo "<br />";
    echo substr($purse_pay, 2);
    echo "<br />";
    echo "Número telefônico fora do padrão!";
};
?>

Espero ter ajudado.

 

Att.

Felipe Coutinho

Aqui esta meu codigo linha 30-31 o A+ esta funcionando so que quero add um B+ para o usuario escolher uma das 2 maneiras A+99999999 ou B+99999999

<?
if(!(array_key_exists('HTTP_X_REQUESTED_WITH',$_SERVER) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')) {
	exit('O que estamos fazendo aqui?)');
} else {
	include 'mane/func.php';

	if (CheckToken($token)) {
		$n_pass = clear($_POST['new_pass']);
		$n_pass_2 = clear($_POST['new_pass_2']);

		$pass_hac_set = md5(clear($_POST['norm_pass']));
		$new_pass_hac_set = md5($n_pass);

		$purse_pay = clear($_POST['purse_payeer']);


		if (!empty(UID)) {
			if (!empty($n_pass) && !empty($n_pass_2)) {
				if ($checksbans['pass'] != $pass_hac_set) {
					messgo(0,'A senha atual está incorreta');
				} else {
					if ($n_pass != $n_pass_2) {
						messgo(0,'Nova senha não corresponde');
					} else {
						$db->update("users","pass = ?","login = ?",[1=>$new_pass_hac_set,2=>ULG]);
					}
				}
			}

			if (!empty($purse_pay)) {
				if (substr($purse_pay, 0, 1) != 'A+' or !is_numeric(substr($purse_pay, 1))) {
					messgo(0,'Formato de número inválido');
				} else {
					$db->update("users","purse_pay = ?","login = ?",[1=>$purse_pay,2=>ULG]);
					$_SESSION['purse_pay'] = $purse_pay;
				}
			}			
			messgo(1,'Alterações salvas');
		} else {
			messgo(0,'Entrar');
		}
	} else {
		messgo(0,'Erro');
	}
}	
?>

Pode fazer as alterações por favor

Share this post


Link to post
Share on other sites

@paulojk

 

O código que te passei funcionar, basta você implementar no seu código...

 

Na linha 31 que existe a validação do A+ basta você colocar o B+ da forma que segue abaixo:

if (!empty($purse_pay)) {
    if ((substr($purse_pay, 0, 2) == 'A+' OR substr($purse_pay, 0, 2) == 'B+') AND !is_numeric(substr($purse_pay, 2))) {
        $db->update("users","purse_pay = ?","login = ?",[1=>$purse_pay,2=>ULG]);
        $_SESSION['purse_pay'] = $purse_pay;
    } else {
        messgo(0,'Formato de número inválido');
    }
}

 

A lógica de validação foi "trocada" se for igual a A+ e o restante for numérico ele entra no IF, se for B+ e o restante for numérico ele entra no IF, SENÃO ele informa que o número é inválido.

 

Testa ai e veja se funciona.

 

* PRECISO DE AJUDA - Vejá meu problema aqui Problemas com SELECT

 

Espero ter ajudado.

 

Att.

Felipe Coutinho

Share this post


Link to post
Share on other sites

@paulojk

Um jeito mais simples para você validar números de telefone é usando expressões regulares.

Aceita todos formatos de telefone de acordo com a agência ANATEL aqui do brasil

Citar

     +55 (99) 99999-9999
     99 99999-9999
     9999-9999
     9999999999999

 

Exemplo:

function telefone($numero) {
  if (preg_match('/^(?:(?:\+|00)?(55)\s?)?(?:\(?([1-9][0-9])\)?\s?)?(?:((?:9\d|[2-9])\d{3})\-?(\d{4}))$/', $numero)) {
    return (true);
  }
}

 

Demostração:

$valido = "99 99999-9999";

if (telefone($valido)) {
  // Numero de telefone é valido
} else {
  // Numero de telefone é inválido
}

 

Share this post


Link to post
Share on other sites

Caro amigo Paulo

 

saudações...

 

Você pode criar uma máscara usando um JAVASCRIPT, conforme abaixo:

<script language=javascript>

    //Função para Máscar de Telefone
    function fone(obj,prox) {
        switch (obj.value.length){
            case 1:
                obj.value = "(" + obj.value;
                break;
            case 3:
                obj.value = obj.value + ")";
                break;  
            case 8:
                obj.value = obj.value + "-";
                break;  
            case 13:
                prox.focus();
                break;
        }
    }

    //Função para Máscara de Celular
    function cel(obj,prox) {
        switch (obj.value.length){
            case 1:
                obj.value = "(" + obj.value;
                break;
            case 3:
                obj.value = obj.value + ")";
                break; 
            case 5:
                obj.value = obj.value + ".";
                break;                  
            case 10:
                obj.value = obj.value + "-";
                break;  
            case 15:
                prox.focus();
                break;
        }
    }    

    //Função para Aceitar apenas números
    function Apenas_Numeros(caracter){
      var nTecla = 0;
      if (document.all) {
          nTecla = caracter.keyCode;
      } else {
          nTecla = caracter.which;
      }
      if ((nTecla> 47 && nTecla <58)
      || nTecla == 8 || nTecla == 127
      || nTecla == 0 || nTecla == 9  // 0 == Tab
      || nTecla == 13) { // 13 == Enter
          return true;
      } else {
          return false;
      }
    }    
     
</script>

 

Espero ter ajudado.

 

Cesar

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 Diego-SLP
      Bom dia,
       
      Estou passando uma variavel via GET para uma pagina PHP e a SQL não interpreta a mesma.
       
      Se eu printar o numero é exibido, se eu colocar o valor manualmente na SQL ela funciona, porém quando coloco a variavel não exibe nenhum registro, se alguem puder me ajudar.
       
      <?php $id = $_GET['id']; echo $id; $procura = mysqli_query($con,"SELECT p.DATA,p.cod_func,f.nome,f.funcao,p.cod_etapa,p.entrada_1,p.saida_1,p.entrada_2,p.saida_2,p.entrada_3,p.saida_3 FROM rh_pontoFuncionario p, rh_funcionario f WHERE p.cod_func = f.cod AND p.cod_obra = '".$id."' ORDER BY p.id desc") or die (mysqli_error($procura)); while($row = mysqli_fetch_array($procura)){ ?> <tr role="row" class="odd table-sm"> <td class="text-center"> <?php echo date('d/m/Y',strtotime($row['DATA'])); ?> </td> <td class="text-center"><?php echo $row['cod_func'];?></td> <td class="text-center"><?php echo $row['nome'];?></td> <td class="text-center"><?php echo $row['funcao'];?></td> <td class="text-center"><?php echo $row['cod_etapa'];?></td> <td class="text-center"><?php echo $row['entrada_1'];?></td> <td class="text-center"><?php echo $row['saida_1'];?></td> <td class="text-center"><?php echo $row['entrada_2'];?></td> <td class="text-center"><?php echo $row['saida_2'];?></td> <td class="text-center"><?php echo $row['entrada_3'];?></td> <td class="text-center"><?php echo $row['saida_3'];?></td> <td class="project-actions text-center"> <a class="btn btn-warning btn-sm" href="#.php?id=<?php echo $row['id']; ?>"> <i class="fas fa-pencil-alt"> </i> </a> <a class="btn btn-danger btn-sm" href="#.php?id=<?php echo $row['id']; ?>"> <i class="fas fa-trash-alt"> </i> </a> </td> </tr> <?php }//while ?>  
    • By rodrigofv1994
      <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "ajax";   $email = $_POST['email']; $senha = $_POST['senha'];   // Criando conexão $conn = new mysqli($servername, $username, $password, $dbname); // Checando conexão if ($conn->connect_error) {   die("Connection failed: " . $conn->connect_error); }   $sql = "select mail , senha from usuarios where mail = '$email' and senha = '$senha'";   $registros=$conn->count() //$registros = mysqli_num_rows($conn);   if($registros>0){     echo "1"; }else{     echo"0"; }   $conn->close(); ?>
    • By rodrigofv1994
      <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "ajax";   $email = $_POST['email']; $senha = $_POST['senha'];   // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) {   die("Connection failed: " . $conn->connect_error); }   $sql = 'INSERT INTO usuarios VALUES (default,'$email','$senha')';   if ($conn->query($sql) === TRUE) {   echo "New record created successfully"; } else {   echo "Error: " . $sql . "<br>" . $conn->error; }   $conn->close(); ?>
    • By Camilavip
      Boa noite, alguém por acaso sabe um modo simples de se desativar um cadastro automaticamente após um período?
      Deixa eu explicar. Eu cadastro um cliente, em que na tabela do banco de dados tem o campo "ativo" onde 1 é ativado e 0 é desativado. Então eu queria cadastrar esse cliente e o ativar, mas que no período de 30 dias por exemplo ele se desativasse sozinho.  Alguém sa8e algo simples nesse sentido?
    • By Camilavip
      Boa noite a todos, estou tendo um probleminha em gravar a senha criptografada, na verdade editar, pois quando gravo vai certo, mas na edição não está dando certo.
      A baixo quando cadastro o cliente é assim, e está indo perfeito.
       
      $nome = $_POST['nome']; $email = $_POST['email']; $login = $_POST['login']; $senha = sha1($_POST['senha']); Mas na hora da edição como está um pouco diferente estou tentando colocar esse sha1 em todo lugar e não está dando
      nome='$_POST[nome]', email='$_POST[email]', login='$_POST[login]', senha='$_POST[senha]', Então no de cima no cadastro está ok, mas na edição não sei mais aonde coloco esse sha1 para dar certo ou é burrice minha mesmo,
×

Important Information

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