Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

Restrições {Resolvido}

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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>";
}

}
?>



Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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") 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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>";
	}     
}

}
?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.