我在这个链接http://jardineselectricos.com/xtatanx/contacto.php中做一个表单,一切都很好,表单只是在填写时发送给我电子邮件,但是,当我收到回声输出时,所有的网站都起来了。我想知道我怎样才能把输出放在我想要的地方。这是我的代码。
HTML:<form method="post" action="contacto.php" id="form">
<label for="nombre">Nombre: </label>
<input type="text" name="nombre" placeholder="Su nombre"/>
<label for="correo">Correo electrónico: </label>
<input type="email" name="email" placeholder="nombre@correo.com"/>
<label for="numero-telefonico">Teléfono móvil: </label>
<input type="text" name="telefono" placeholder="Introducir nº de telf" />
<label for="mensaje">Mensaje: </label>
<textarea name="mensaje" cols="20" rows="6" placeholder="Escriba un mensaje breve..."></textarea>
<input type="submit" id="enviar" name="enviar" value="Enviar">
<span id="respuesta">
<?php
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$numero = $_POST['telefono'];
$mensaje = $_POST['mensaje'];
$from = 'From: UsuarioStrategyResearch';
$to = 'jhonnatanhxc@gmail.com';
$subject = 'Contacto Strategy Research';
$body = "De: $nombren E-Mail: $emailn Movil: $numeron Mensaje:n $mensaje";
if ($_POST['enviar']) {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Tu mensaje ha sido enviado, pronto nos pondrémos en contacto.</p>';
} else {
echo '<p>Ha habido un error y el mensaje no ha podido ser enviado.</p>';
}
}
?>
</span>
</form>
输出总是把它放在网站的中间,它不会改变,如果我使用垃圾邮件或div,或者如果它的位置在页脚或任何地方,它只是在同一个地方回声。我很感激你们的帮助,非常感谢。
页面显示问题
警告:无法修改报头信息-报头已经由(输出开始于/home/jardines/public_html/xtatanx/contactto .php:57)在/home/jardines/public_html/xtatanx/contactto .php第70行发送
这意味着mail
函数需要修改HTTP标头,但是它们已经被发送了,因为你已经开始输出HTML。
您需要确保在输出任何HTML
之前调用mail
<?php
// At the top of the file, before any HTML is output
$successfulMail = mail ($to, $subject, $body, $from);
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$numero = $_POST['telefono'];
$mensaje = $_POST['mensaje'];
$from = 'From: UsuarioStrategyResearch';
$to = 'jhonnatanhxc@gmail.com';
$subject = 'Contacto Strategy Research';
$body = "De: $nombren E-Mail: $emailn Movil: $numeron Mensaje:n $mensaje";
$mailMsg = '';
if ($_POST['enviar']) {
// Here's the trick, can't call mail after HTML has been output
if (mail ($to, $subject, $body, $from)) {
$mailMsg ='<p>Tu mensaje ha sido enviado, pronto nos pondrémos en contacto.</p>';
} else {
$mailMsg ='<p>Ha habido un error y el mensaje no ha podido ser enviado.</p>';
}
}
?>
...
<form method="post" action="contacto.php" id="form">
<label for="nombre">Nombre: </label>
<input type="text" name="nombre" placeholder="Su nombre"/>
<label for="correo">Correo electrónico: </label>
<input type="email" name="email" placeholder="nombre@correo.com"/>
<label for="numero-telefonico">Teléfono móvil: </label>
<input type="text" name="telefono" placeholder="Introducir nº de telf" />
<label for="mensaje">Mensaje: </label>
<textarea name="mensaje" cols="20" rows="6" placeholder="Escriba un mensaje breve..."></textarea>
<input type="submit" id="enviar" name="enviar" value="Enviar">
<span id="respuesta"><?php echo $mailMsg ?> </span>
</form>