Ir para conteúdo

Arquivado

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

Biel.

impedir cadastro aleatório

Recommended Posts

Boa noite a todos. Direto ao ponto. Pessoal 
o codigo abaixo cadastra normalmente os meses que estão no select. Até aqui tudo bem!
O código também impede cadastro duplicado. Até aqui tudo bem!
o código só não impede de cadastrar os meses de forma aleatória. Gostaria que impedisse o cadastro aleatório e que os meses fosse cadastrado na ordem de janeiro a dezembro


Alguém tem idéia de como criar uma regra em PHP para impedir o cadastro aleatório no select abaixo? 
Nota: Criar uma regra em javascript não resolve o problema,  pois tudo será de forma dinâmica, sem necessidade de ficar alterando o tempo o código. 
A regra para impedir o cadastro aleatório tem que ser em PHP mesmo. Obrigado por sua atenção! 

tabela_aprendiz
id  mes
1   1

...

<?php
$editFormAction = $_SERVER['PHP_SELF'];
//========================================
if (isset($_POST["MM_ACAO"])){ 

$mes  = $_POST['mes']; 

$sql = mysqli_query($con, "SELECT * FROM tabela_aprendiz WHERE mes = '".$mes."' ") ;
$comparar_dados = mysqli_num_rows($sql);

if($comparar_dados == 0){
$sql = mysqli_query($con, "INSERT INTO tabela_aprendiz(mes)VALUES('".$mes."')");
echo "cadastro realizado com sucesso<br />";
}

elseif($comparar_dados >0){
	echo "não foi possível fazer o cadastro. Motivo: <br />
	o mes que você tentou cadastrar, já foi cadastrado";
	}

}		
?>

<form action="<?php echo $editFormAction; ?>" method="post" > 

<select name="mes" required>
    <option></option>
    <option value="1">janeiro</option>
    <option value="2">fevereiro</option>
    <option value="3">março</option>
    <option value="4">abril</option>
    <option value="5">maio</option>
    <option value="6">junho</option>
    <option value="7">julho</option>
    <option value="8">agosto</option>
    <option value="9">setembro</option>
    <option value="10">outubro</option>
    <option value="11">novembro</option>
    <option value="12">dezembro</option>
</select>

<input type="submit" style="width:auto; background:#CCC; color:#09F;" name="MM_ACAO" value="Cadastrar" />

</form>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda não entendi isso aí direito não brow. que aleatório é esse? o select só manda um valor no $_POST... por acaso tu quer verificar os meses já cadastrado pra não cadastrar um menor e nem maior do que 1 a mais? se for isso tu pode pegar o MAX mês e se o que foi enviado for menor ou for de 2 ou mais maior aí impede tipo

... "SELECT MAX mes AS max_mes FROM tabela_aprendiz"...
...
...
if($row["max_mes"] < $mes || $row["max_mes"] > ($mes + 1)){
    echo "o mês está errado";
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, marsolim disse:

ainda não entendi isso aí direito não brow. que aleatório é esse? o select só manda um valor no $_POST... por acaso tu quer verificar os meses já cadastrado pra não cadastrar um menor e nem maior do que 1 a mais? se for isso tu pode pegar o MAX mês e se o que foi enviado for menor ou for de 2 ou mais maior aí impede tipo


... "SELECT MAX mes AS max_mes FROM tabela_aprendiz"...
...
...
if($row["max_mes"] < $mes || $row["max_mes"] > ($mes + 1)){
    echo "o mês está errado";
}

 

Aleatório é fora da ordem tipo : o colega cadastra o mês de janeiro, depois agosto, depois março, depois julho, depois fevereiro e assim por diante. Quero impedir o cadastro aleatório e forçar o colega a cadastrar na ordem de janeiro a dezembro sem pular nenhum mês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então é por aí mesmo o que eu passei mas pensando bem pra quer ter essa lista de meses? podia quando o usuário logar já pesquisar o mês mais alto e deixar só um botão pra ele cadastrar o próximo mês tipo se já tem lá na tabela os meses 1, 2, 3 e 4 coloca um botão CADASTRAR PRÓXIMO MÊS  e quando o usuário clicar já cadastra o mês 5.

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, marsolim disse:

então é por aí mesmo o que eu passei mas pensando bem pra quer ter essa lista de meses? podia quando o usuário logar já pesquisar o mês mais alto e deixar só um botão pra ele cadastrar o próximo mês tipo se já tem lá na tabela os meses 1, 2, 3 e 4 coloca um botão CADASTRAR PRÓXIMO MÊS  e quando o usuário clicar já cadastra o mês 5.

Para o que eu quero fazer é bom deixar visível a lista de meses para cadastro. Marsolim, sua idéia é interessante ou seja após o cadastro do mês de janeiro por exemplo, fica disponivel para cadastro somente o mês de fevereiro e após o cadastro do mês de fevereiro, fica disponível somente o mês de março e assim por diante. 
Vou tentar mais algumas vezes fazer da forma que eu gostaria, seu eu não conseguir vou tentar fazer da forma que você sugeriu. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu pode também desabilitar os options com disabled e deixar só o 5(pro caso que passei acima) habilitado e ainda botar a tag já usado por exemplo nos que já tá cadastrado tipo

<select name="mes" required>
    <option></option>
    <option value="1" disabled>janeiro (já cadastrado)</option>
    <option value="2" disabled>fevereiro (já cadastrado)</option>
    <option value="3" disabled>março (já cadastrado)</option>
    <option value="4" disabled>abril (já cadastrado)</option>
    <option value="5">maio</option>
    <option value="6" disabled>junho</option>
    <option value="7" disabled>julho</option>
    <option value="8" disabled>agosto</option>
    <option value="9" disabled>setembro</option>
    <option value="10" disabled>outubro</option>
    <option value="11" disabled>novembro</option>
    <option value="12" disabled>dezembro</option>
</select>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Biel.
      Olá pessoal. Ao digitar um texto qualquer no input e pressionar submit o valor do atributo href é alterado temporariamente. Como alterar permanentemente no corpo do documento  o valor do atributo href, digitando um nome de link qualquer no campo input e em seguida submit ?
      <!DOCTYPE html> <html> <head> <style> input { width: 100%; font-size: 20px; } textarea { width: 100%; font-size: 16px; height: 200px; } .class88 { margin-top: 50px; padding: 10px; max-width: 100px; } </style> </head> <body> <h2> alterar valor do atributo href</h2> digite um texto qualquer <input type="text" class="class42" value=""> <a id="linkToChange" href="teste5.php" class="class43"></a> <input type="submit" class="class88" value="enviar" onclick="alterarHref()"> <script> function alterarHref() { // pega o valor da class42 var valorDaclass42 = document.querySelector('.class42').value.trim(); // altera o valor do atributo href para o valorDaclass42 sugerido document.querySelector('.class43').setAttribute('href', valorDaclass42); console.log("Href alterado:", valorDaclass42); } </script> </body> </html>  
    • Por Biel.
      Olá pessoal. BannerA está funcionando normalmente. Como usar mesmo script para bannerB e bannerC.
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Banner Aleatório</title> <style> /* Estilos opcionais para o banner */ #divPai { margin: auto; border: 2px solid red; } #bannerA { width: 240px; height: 480px; overflow: hidden; position: relative; } #bannerA img { width: 100%; height: auto; position: absolute; top: 0; left: 0; transition: 1.5s ease-in; } #bannerA img.active { opacity: 1; } </style> </head> <body> <div id="divPai"> <div id="bannerA" class="bannerA"> <a href="link1"><img src="image1.jpg" alt="Imagem 1"></a> <a href="link2"><img src="image2.jpg" alt="Imagem 2"></a> <a href="link3"><img src="image3.jpg" alt="Imagem 3"></a> </div> <!-- <hr> <div id="bannerB" class="bannerB"> <a href="link4"><img src="image4.jpg" alt="Imagem 4"></a> <a href="link5"><img src="image5.jpg" alt="Imagem 5"></a> <a href="link6"><img src="image6.jpg" alt="Imagem 6"></a> </div> <hr> <div id="bannerC" class="bannerC"> <a href="link7"><img src="image7.jpg" alt="Imagem 7"></a> <a href="link8"><img src="image8.jpg" alt="Imagem 8"></a> <a href="link9"><img src="image9.jpg" alt="Imagem 9"></a> </div> --> </div> <hr> <script> document.addEventListener("DOMContentLoaded", function() { // var banner = document.getElementById("divPai"); // var images = banner.querySelectorAll("img"); var images = document.querySelectorAll("#bannerA img"); // Função para exibir uma imagem aleatória function showRandomImage() { // Escolhe aleatoriamente um índice de imagem var randomIndex = Math.floor(Math.random() * images.length); // Define todas as imagens como ocultas images.forEach(function(img) { img.style.display = "none"; }); // Exibe a imagem aleatória images[randomIndex].style.display = "block"; } // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos showRandomImage(); setInterval(showRandomImage, 1000); // makeSliderKind('.bannerA', 1000); // makeSliderKind('.bannerB', 2000); // makeSliderKind('.bannerC', 3000); }); </script> </body> </html>  
    • Por Biel.
      Olá pessoal. O banner abaixo está funcionando e o link acompanha o banner, até aqui tudo ok ! Quero muito fazer uma transição suave entre uma image e outra, colocando as propiedades e valores no css ou diretamente no javascript e nada de propiedades e valores no html através do style . Se possível coloque no código somente o que precisa . Obrigado!
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Banner</title> <style> /* Estilos opcionais para o banner */ .banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner img { width: 100%; height: auto; position: absolute; top: 0; left: 0; transition: 1.5s ease-in; } .banner img.active { opacity: 1; } </style> </head> <body> <div class="banner" id="banner"> <a href="link1" class="ggg"><img src="image1.jpg" alt="Imagem 1"></a> <a href="link2" class="ggg"><img src="image2.jpg" alt="Imagem 2"></a> <a href="link3" class="ggg"><img src="image3.jpg" alt="Imagem 3"></a> <a href="link4" class="ggg"><img src="image4.jpg" alt="Imagem 4"></a> <a href="link5" class="ggg"><img src="image5.jpg" alt="Imagem 5"></a> </div> <script> document.addEventListener("DOMContentLoaded", function() { var banner = document.getElementById("banner"); var images = banner.querySelectorAll("img"); // Função para exibir uma imagem aleatória function showRandomImage() { // Escolhe aleatoriamente um índice de imagem var randomIndex = Math.floor(Math.random() * images.length); // Define todas as imagens como ocultas images.forEach(function(img) { img.style.display = "none"; }); // Exibe a imagem aleatória images[randomIndex].style.display = "block"; } // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos showRandomImage(); setInterval(showRandomImage, 3000); }); </script> </body> </html>  
       
    • Por Biel.
      Olá pessoal. O banner abaixo está funcionando normalmente, mas a transição entre uma imagem e outra está um tanto truculenta. Quero deixar suave. Como resolver isso? Obrigado !
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>transition suave entre uma image e outra</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } #bannerGG { width: 100%; height: auto; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 1s ease-in-out; } /* #tete:active { opacity: 1; } */ </style> </head> <body> <div id="banner"> <img class="bannerGG" src="imagem1.png" alt="Image 1"> <img class="bannerGG" src="imagem2.png" alt="Image 2"> <img class="bannerGG" src="imagem3.png" alt="Image 3"> <img class="bannerGG" src="imagem4.png" alt="Image 4"> <img class="bannerGG" src="imagem5.png" alt="Image 5"> </div> <script> const image = document.querySelectorAll('.bannerGG'); const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * image.length); const randomImage = image[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = randomImage.src; const linkElement = document.createElement('a'); linkElement.appendChild(imgElement); banner.innerHTML = ''; banner.appendChild(linkElement); } showRandomImage(); setInterval(showRandomImage, 3000); </script> </body> </html>  
    • Por Biel.
      Olá pessoal. O banner abaixo está funcionando, mas quero que o link do banner venha da tag a  e não do javascript . Como resolver? 
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mostrar link do banner que está na tag a</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner-img { width: 100%; height: 100%; object-fit: cover; position: absolute; /* opacity: 0; */ transition: opacity 0.5s ease-in-out; } .banner-link { display: block; width: 100%; height: 100%; } </style> </head> <body> <div id="banner"> <a href="link147"><img class="banner-img" src="imagem1.png" alt="Image 1"></a> <a href="link254"><img class="banner-img" src="imagem2.png" alt="Image 2"></a> <a href="link350"><img class="banner-img" src="imagem3.png" alt="Image 3"></a> <a href="link462"><img class="banner-img" src="imagem4.png" alt="Image 4"></a> <a href="link538"><img class="banner-img" src="imagem5.png" alt="Image 5"></a> </div> <script> const images = document.querySelectorAll('.banner-img'); const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * images.length); const randomImage = images[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = randomImage.src; imgElement.alt = randomImage.alt; imgElement.classList.add('banner-img'); const linkElement = document.createElement('a'); // linkElement.appendChild(imgElement); linkElement.href = randomImage.href; linkElement.classList.add('banner-link'); linkElement.href = "page" + (randomIndex + 1) + ".html"; // Link para cada imagem linkElement.appendChild(imgElement); banner.innerHTML = ''; banner.appendChild(linkElement); } showRandomImage(); setInterval(showRandomImage, 1000); </script> </body> </html> Resolvido,  Obrigado a todos !
×

Informação importante

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