Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
bioshock

Restrições {Resolvido}

Recommended Posts

bioshock

<?php 
$to = "epnhteste@sapo.pt";
$subject = "Jobs Formulário";
$email = $_POST['textfield6'];
$telefone = $_POST['textfield5'];
$contacto = $_POST['textfield4'];
$nome = $_POST['textfield10'];
$empresa = $_POST['textfield3'];
$message = ($_POST['textarea']." Nome: ".$_POST['textfield10']." Empresa: ".$_POST['textfield3']." Contacto: ".$_POST['textfield4']." Email: ".$_POST['textfield6']." Telefone: ".$_POST['textfield5']);
$headers = "From: $email";
ini_set('SMTP', 'mail.netcabo.pt');
ini_set('sendmail_from', 'epnhteste@sapo.pt');
if(@mail($to, $subject, $message, $headers, $email)) {
echo "Success!";
}else {echo "error babe!";}
{
if (!$_POST['textfield10'] | !$_POST['textfield4'] | !$_POST['textarea'] | !$_POST['textfield5'] | !$_POST['textfield6']) {
echo "<script>alert('Por favor, preencha todos os campos obrigatórios (*).'); window.location=\"jobs.php\"</script>";
}
}
?>

Este código não funciona pois esta-me sempre abrir constantes janelas a dizer "por favor, preencha..".

Eu ao inicio pensei que o código tivesse que estar no submit do buttão, mas não dava e pus no topo de tudo e continua igual. Sugestões? Obrigado.

Share this post


Link to post
Share on other sites
jcfr

tenta assim:

<?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") {	
$to = "epnhteste@sapo.pt";
$subject = "Jobs Formulário";
$email = $_POST['textfield6'];
$telefone = $_POST['textfield5'];
$contacto = $_POST['textfield4'];
$nome = $_POST['textfield10'];
$empresa = $_POST['textfield3'];
$message = ($_POST['textarea']." Nome: ".$_POST['textfield10']." Empresa: ".$_POST['textfield3']." Contacto: ".$_POST['textfield4']." Email: ".$_POST['textfield6']." Telefone: ".$_POST['textfield5']);
$headers = "From: $email";
ini_set('SMTP', 'mail.netcabo.pt');
ini_set('sendmail_from', 'epnhteste@sapo.pt');
        if(@mail($to, $subject, $message, $headers, $email)) {
        echo "Success!";
        }else {echo "error babe!";}

        if (!$_POST['textfield10'] || !$_POST['textfield4'] || !$_POST['textarea'] || !$_POST['textfield5'] || !$_POST['textfield6']) {
        echo "<script>alert('Por favor, preencha todos os campos obrigatórios (*).'); window.location=\"jobs.php\"</script>";
}

}
?>



Share this post


Link to post
Share on other sites
bioshock

Olá, já está a funcionar! Obrigado

Mas podes me explicar para que serve esta linha de código (que faz toda a diferença):

if ($_SERVER['REQUEST_METHOD'] == "POST") 

Share this post


Link to post
Share on other sites
jcfr

nao foi so isso que alterei... tb retirei as {} de:

{
        if (!$_POST['textfield10'] | !$_POST['textfield4'] | !$_POST['textarea'] | !$_POST['textfield5'] | !$_POST['textfield6']) {
        echo "<script>alert('Por favor, preencha todos os campos obrigatórios (*).'); window.location=\"jobs.php\"</script>";
}

nao estavam la a fazer nada...

essa linha de código serve para verificar se estão a ser enviadas variáveis para a página através do metodo post...

como as tuas variaveis so sao enviadas ao submeteres o formulário deves estar a usar o metodo post esse codio só é executado ao submeteres o formulário... ao abrires a página normalmente nao o executa porque não estás a enviar nada e o metodo post não está activo...

é uma explicação muito simples que pode conter alguns erros... mas básicamente é isso que faz verifica se o formulário foi submetido...

não sou nenhum especialista em teoria só sei apenas como funciona... explicar é mais complicado desculpa se não fui suficientemente explicito.

Share this post


Link to post
Share on other sites
jcfr

outra coisa, no teu lugar faria uma alteração ao teu código:

não tem logica verificares se os campos estão preenchidos depois de tentares enviar o email...

devias ter algo do genero:

<?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (!$_POST['textfield10'] || !$_POST['textfield4'] || !$_POST['textarea'] || !$_POST['textfield5'] || !$_POST['textfield6']) {
  echo "<script>alert('Por favor, preencha todos os campos obrigatórios (*).'); window.location=\"jobs.php\"</script>";
}else{
$to = "epnhteste@sapo.pt";
$subject = "Jobs Formulário";
$email = $_POST['textfield6'];
$telefone = $_POST['textfield5'];
$contacto = $_POST['textfield4'];
$nome = $_POST['textfield10'];
$empresa = $_POST['textfield3'];
$message = ($_POST['textarea']." Nome: ".$_POST['textfield10']." Empresa: ".$_POST['textfield3']." Contacto: ".$_POST['textfield4']." Email: ".$_POST['textfield6']." Telefone: ".$_POST['textfield5']);
$headers = "From: $email";
ini_set('SMTP', 'mail.netcabo.pt');
ini_set('sendmail_from', 'epnhteste@sapo.pt');
        if(@mail($to, $subject, $message, $headers, $email)) {
		$msg = "Email enviado com sucesso!";
		echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>";
        }else {
		$msg = "ERRO: Falha no envio do email, por favor tente mais tarde!";
		echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>";
	}     
}

}
?>

qualquer duvida é so perguntares se eu souber responder...

PS: o código que tens não verifica se as variáveis estão vazias... como tens vai tentar enviar email de qualquer forma e mesmo que tenhas os campos vazios não vai detectar...

devias ter algo do genero:

<?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (empty($_POST['textfield10']) || empty($_POST['textfield4']) || empty($_POST['textarea']) || empty($_POST['textfield5']) || empty($_POST['textfield6'])) {
  echo "<script>alert('Por favor, preencha todos os campos obrigatórios (*).'); window.location=\"jobs.php\"</script>";
}else{
$to = "epnhteste@sapo.pt";
$subject = "Jobs Formulário";
$email = $_POST['textfield6'];
$telefone = $_POST['textfield5'];
$contacto = $_POST['textfield4'];
$nome = $_POST['textfield10'];
$empresa = $_POST['textfield3'];
$message = ($_POST['textarea']." Nome: ".$_POST['textfield10']." Empresa: ".$_POST['textfield3']." Contacto: ".$_POST['textfield4']." Email: ".$_POST['textfield6']." Telefone: ".$_POST['textfield5']);
$headers = "From: $email";
ini_set('SMTP', 'mail.netcabo.pt');
ini_set('sendmail_from', 'epnhteste@sapo.pt');
        if(@mail($to, $subject, $message, $headers, $email)) {
		$msg = "Email enviado com sucesso!";
		echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>";
        }else {
		$msg = "ERRO: Falha no envio do email, por favor tente mais tarde!";
		echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>";
	}     
}

}
?>

Share this post


Link to post
Share on other sites
bioshock

Eu por acaso já tinha pensado nisso, e tinha-me lembrado de uma função, que cheguei a ver no google que tu colaste aí em cima: "empty". Vou testar e já te digo algo obrigado.

Share this post


Link to post
Share on other sites
bioshock

<input type="submit" name="button3" id="button3" value="   enviar candidatura  " class="form" <?php 
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (empty($_POST['textfield10']) || empty($_POST['textfield4']) || empty($_POST['textarea']) || empty($_POST['textfield5']) || empty($_POST['textfield6'])) {
  echo "<script>alert('Por favor, preencha todos os campos obrigatórios (*).'); window.location=\"jobs.php\"</script>";
}else{
$to = "epnhteste@sapo.pt";
$subject = "Jobs Formulário";
$email = $_POST['textfield6'];
$telefone = $_POST['textfield5'];
$contacto = $_POST['textfield4'];
$nome = $_POST['textfield10'];
$empresa = $_POST['textfield3'];
$message = ("Mensagem: ".$_POST['textarea']."\r\n\r\nNome: ".$_POST['textfield10']."\r\nEmpresa: ".$_POST['textfield3']."\r\nContacto: ".$_POST['textfield4']."\r\nTelefone: ".$_POST['textfield5']);
$headers = "From: $email";
ini_set('SMTP', 'mail.netcabo.pt');
ini_set('sendmail_from', 'epnhteste@sapo.pt');
        if(@mail($to, $subject, $message, $headers, $email)) {
                        $msg = "Email enviado com sucesso! - Verifique o seu email.";
                        echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>";
					$to1 = $_POST['textfield6'];
					$subject1 = "Email de confirmação!";
					$email1 = "epnhteste@sapo.pt";
					$telefone1 = $_POST['textfield5'];
					$contacto = $_POST['textfield4'];
					$nome1 = $_POST['textfield10'];
					$empresa1 = $_POST['textfield3'];
					$message1 = ("A sua mensagem: ".$_POST['textarea']."\r\n\r\nNome: ".$_POST['textfield10']."\r\nEmpresa: ".$_POST['textfield3']."\r\nContacto: ".$_POST['textfield4']."\r\nTelefone: ".$_POST['textfield5']);
					$headers1 = "From: $email1";

					ini_set('SMTP', 'mail.netcabo.pt');
					ini_set('sendmail_from', 'epnhteste@sapo.pt');
					mail($to1, $subject1, $message1, $headers1, $email1);
        }else {
                        $msg = "ERRO: Falha no envio do email, por favor tente mais tarde!";
                        echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>";
                }     
}

}
?>>

Código final. Obrigado jcfr.

Share this post


Link to post
Share on other sites
jcfr

pelo que percebi colocast o código dentro do botão certo?

isso não é necessário... pode ficar fora...

eu geralmente coloco sempre ou no inicio ou no final da página...

prefiro manter sempre tudo separado até para poder mais fácilmente reutilizar o código...

Share this post


Link to post
Share on other sites
bioshock

Não foi esse o caso, eu sei que posso por fora do botão pois ele faz o submit post, mas acrescentei o facto de: Quando nos registamos é-nos enviada uma mensagem para o nosso email como email de confirmação dos nossos dados de formulário.

Share this post


Link to post
Share on other sites
bioshock

Sim eu sei, crio a função isset($_Post['submit']) ou algo assim do género. Obrigado.

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
Sign in to follow this  

×

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.