HTML: ID do Form / PHP

Aphex

Power Member
Boas pessoal,

Estou a criar um form, enviando emails e comentarios para o host.

Envia tudo bem quando o meu form não tem o "ID" mas quando tem o "ID" e o "name" ele não envia.

Criei o código em HTML e CSS de forma a quando o visitante do site tenha de preencher da forma correcta o form, pelo que é essencial ter o "ID" e o "NAME"


Meu form em HTML

<form id="contact-form" method="post" name="contact-form" action="contacto.php" class="contact-form row">
<div class="inputs col-md-6 col-sm-6 col-xs-6">
<input name="name" id="name" type="text" placeholder="NAME">
</div>
<div class="inputs col-md-6 col-sm-6 col-xs-6">
<input name="email" id="email" type="text" placeholder="EMAIL">
</div>
<div class="inputs col-md-12 col-sm-12 col-xs-12">
<input type="text" id="subject" name="subject" placeholder="SUBJECT">
</div>
<div class="inputs col-md-12 col-sm-12 col-xs-12">
<label for="message">Message</label>
<textarea name="message" id="message" cols="50" rows="6"></textarea>
</div>
<div class="inputs contact-submit"><input name="submit" id="form-submit" id="form-submit" value="ENVIAR MENSAGEM" type="submit"></div>
</form>

Meu código PHP:

if ( isset($_POST['submit'], $_POST['name'], $_POST['email'], $_POST['subject'], $_POST['message'])) {

$mail['host'] = 'localhost';
$mail['port'] = '25';
$mail['auth'] = true;
$mail['username'] = '(EMAIL)';
$mail['password'] = '(PASSWORD);


$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];


require_once "Mail.php";



$body.= "\n";
$body = "de: ".$name;
$body.= "\n";
$body = "nome: ".$name;
$body.= "\n";
$body.= "\n";
$body.= nl2br($message);

$headers = array ('From' => $email,
'To' => $mail["username"],
'Subject' => $subject);

$mail_object = Mail::factory('smtp', $mail);

$mail = $mail_object->send($mail["username"], $headers, $body);

if ( PEAR::isError($mail) ) {
echo $mail->getMessage();
} else {
echo '<b>O seu comentario foi enviado com sucesso.</b>';
}

}
header('Location: ing.php');
?>
 
Última edição:
Boas pessoal,

Envia tudo bem quando o meu form não tem o "ID" mas quando tem o "ID" e o "name" ele não envia.

pelo que é essencial ter o "ID" e o "NAME"
?>

Olá!
Não percebi bem o problema. queres que só seja enviado email quando todos os campos estão preenchidos?
Se o que dizes de NAME é
Código:
<input name="name" id="name" type="text" placeholder="NAME">
, o que é o ID?

Abraço
 
Boas,

Quando ponho no meu servidor os ficheiros, ele só envia o comentario do contact form, se o meu contact form não tiver o "ID" e o "NAME"

Assim ele não envia: <form id="contact-form" method="post" name="contact-form" action="contact.php" class="contact-form row">

Eu gostava de saber porque razão isto acontece? e se há alguma forma de no meu código PHP de declarar o meu contact form e fazer com ele consiga comunicar com o meu Form.
 
Claro que não envia.
No código php estás a perguntar se
PHP:
$_POST['name']
está definido.
Deverias ter
PHP:
$_POST['contact-form']
.

Isto se percebi o que queres.
 
@MotionTramp O código dele está correto, pelo menos nessa parte. 'contact-form' é o nome do form, 'name' é o nome de um dos inputs do formulário. Além do mais, ele diz que funciona quando o id não está definido no form.

@Aphex Podes ligar as ferramentas de desenvolvimento do browser e ver se há diferenças no POST com e sem id no form? Há outros formulários na página? Se fizeres só um echo das variáveis do POST, sem tentar mandar o e-mail, isso funciona?

Já agora, acho que não percebeste o que o HLopes quis dizer. O teu código está quase ilegível, pelo menos para quem usa o tema Zwame Day (ficam letras brancas em fundo claro).
 
Tens outro formulário na mesma página com esse mesmo ID?
Porque o ID de um elemento (FORM neste caso) não devia influenciar nada em termos de PHP pelo que sei.

Estás a usar algum código javascript/jquery para validação dos campos?
 
Back
Topo