Jump to content
t0ze

Campos mandatórios em formulário

Recommended Posts

t0ze

Boa tarde pessoal.

Tenho um formulário e antes de fazer o insert na base de dados queria validar que alguns campos estão preenchidos devidamente.

Para já apenas estou a validar se tem texto escrito.. Para que caso esteja vazio não faça o insert e dê uma mensagem ao utilizador.

if ($_POST["title"]=="") {header("Location: ListNews.php");}

Essa é a validação que eu estou a fazer.. mas não está a funcionar.

if ($_POST["title"]=="") {header("Location: ListNews.php");}
				$title = $_POST["title"];
				$description = $_POST["description"];
				$body = $_POST["body"];
				$date = isset($_REQUEST["date1"]) ? $_REQUEST["date1"] : "";
				$consulta = "Insert into content (ContentTitle, ContentDescription, ContentBody, ContentDate) 
													values ('$title', '$description', '$body', '$date')";
				$resultado=mysql_query($consulta);
				//header("Location: ListNews.php"); 

Alguém pode dar uma ajuda?  :wallbash:

Share this post


Link to post
Share on other sites
kareka

Que tipo de validação queres fazer e a que campos ?


<?php include("assinatura.txt"); ?>

Share this post


Link to post
Share on other sites
mjamado

A seguir a um header location tens que fazer exit();, senão a aplicação segue em frente até ao final.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
tobias

Boas,

eu aconselho a fazeres as validações em javascrit, eu acho muito mais simples.

quando a isso não funcionar, ele insere na base de dados na mesma?

está no inicio da pagina? esse if?

e esse código pertence a pagina ListNews.php? se sim convem fazeres como exit(), como na resposta do mjamado, ou com um else a involver o resto do codigo.

Cumps.


Cumprimentos,Tobias Cintrão


"O que se pensa começa no que se ouve"
"Inspiração == Interrupção momentânea da estupidez"

Share this post


Link to post
Share on other sites
t0ze

Apenas quero verificar antes de fazer o insert que os campos;

title, description, body  não estão vazios. São campos de texto.

@mjamado faltava o exit() Obg

Agora posso enviar uma mensagem de erro ao utilizador assim?

E fazer um if caso seja erro=""title" mostra uma label

if ($_POST["title"]=="") {header("Location: AddNews.php?Erro=Title");
											Exit();}

@tobias este código está na página AddNews.php, o if está no inicio do ficheiro. Espero que funcione, ou seja faço os três if's para os três campos caso um esteja vazio sai fora e não insere. Vou inteirar-me de como é feita a verificação em javascript também. Obg.

Share this post


Link to post
Share on other sites
tobias

Boas,

Pois foi exactamente por quereres uma massagem de erro a alertar o utilizador que sugeri javascript, é simples fazer uma validação dessas. vou tentar explicar te.

algo do genero, no formulario tens que usar a função onsubmit, ou seja

  <form name="pagina" action="" method="post" onsubmit="return valida();"> 

depois no inicio na pagina em vez de teres esses if em php terias algo do genero:

function valida()
{
if(document.form1.nomedocampo.value == '')
	{
		alert("Falta preencher o campo X");
		return false;
	}
}

espero ter ajudado :)

Cumps.


Cumprimentos,Tobias Cintrão


"O que se pensa começa no que se ouve"
"Inspiração == Interrupção momentânea da estupidez"

Share this post


Link to post
Share on other sites
filiperainho

Eu também aconselho a fazer as verificações com o JavaScript, alem de ser melhor também se torna mais cómodo e poupa recursos.


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
t0ze

OK, vou seguir o vosso conselho, já estou um bocado baralhado com tanto parametro e if e etc. O exemplo parece-me simples, vou tentar implementar. Já vos dou feedback.

Obg tobias e filiperainho

Share this post


Link to post
Share on other sites
t0ze

Perfeito ! Simples! Eheh Eu fugi ao javascript pq me parece dificil as vezes integrar javascript com php (passagem de valores para usar em php )

Por exemplo, se eu quiser complicar um bocadinho mais, e na vez de ter aquele alert, é possivel por uma label visível a dar essa informação ... por exemplo por cima da textbox do title..

Share this post


Link to post
Share on other sites
tobias

Sim, podes fazer.

Por exemplo ao lado da textbox metes uma label ou até mesmo outra textbox (neste caso com o nome val), e com CSS podes meter a escrever a vermelho.

Dentro dos ifs em vez de alert podes meter assim:

 document.form1.val.value = 'Campo Obrigatório'; 

PS: podes ainda complicar um pouco mais e fazer com o evento onBlur em cada campo que faz com quando retiram o foco de uma textbox fazer aquele código em cima, ou seja, escrever ao lado "campo obrigatório"

:)

Cumprimentos.


Cumprimentos,Tobias Cintrão


"O que se pensa começa no que se ouve"
"Inspiração == Interrupção momentânea da estupidez"

Share this post


Link to post
Share on other sites
pedroserra

...

eu aconselho a fazeres as validações em javascrit, eu acho muito mais simples.

...

Eu também aconselho a fazer as verificações com o JavaScript, alem de ser melhor também se torna mais cómodo e poupa recursos.

Atenção que as verificações feitas só em javascript não garantem nada. Basta o javascript estar desactivado ou o utilizador ser um pouco mais "fuço" para se lhes passar por cima.

Para haver segurança, devem ser feitas sempre do lado do servidor (neste caso, no php) e se houver tempo/interesse/etc, então sim também no lado do cliente (javascript).


Ah e tal não sei quê...

Share this post


Link to post
Share on other sites
t0ze

pedroserra  🤔

Opá já estava todo entusiasmado lol :)

Compreendo e obr pela chamada de atenção é bom não esquecer e ter essa consciência. (Já estava esquecido desse pormenor)

Uma solução tb pode passar por verificar se o javascript está activo, caso contrario não permite fazer nada. (Acho eu).

Cumprimentos.

Share this post


Link to post
Share on other sites
tobias

Boa, já arranjaste um interesse para aprofundar conhecimentos.  :)

Em relação ao que o Pedroserra disse, tens razão, realmente não pensei nisso. Mas deserta forma, quando o programa não é para ficar "online", quando digo isto, não acessível por qualquer utilizador, achas que tem problema?

PS: isto já é offtopic e uma "duvida/observação" minha.

Cumps.


Cumprimentos,Tobias Cintrão


"O que se pensa começa no que se ouve"
"Inspiração == Interrupção momentânea da estupidez"

Share this post


Link to post
Share on other sites
pedroserra

Uma solução tb pode passar por verificar se o javascript está activo, caso contrario não permite fazer nada. (Acho eu).

Ou não. Ninguém te garante que do outro lado esteja realmente um browser.

Regra geral, é sempre má política aceitar cegamente aquilo que nos enviam. Sejam pedidos para o servidor ou pacotes suspeitos nos correios :thumbsup:

Em relação a ser algo que não estará disponível on-line, usar de boas práticas de segurança parece-me sempre preferível, nem que seja para criar hábito. Mas sou eu que sou paranóico.  :)


Ah e tal não sei quê...

Share this post


Link to post
Share on other sites
tobias

Claro que, segurança é sempre boa prática  :thumbsup:

Mas se formos ver em termos de desempenho pode não compensar, digo eu...

Mas concordo contigo, que se deve ser paranóico, quando se trata a segurança na web ou noutro sitio qualquer! :)


Cumprimentos,Tobias Cintrão


"O que se pensa começa no que se ouve"
"Inspiração == Interrupção momentânea da estupidez"

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.