领域以联系方式

时间:2014-10-26 14:20:28

标签: php forms contact

我是PHP的新手并且遇到以下联系表单的问题: 变量:$ empresa = $ _POST [' empresa'];没有用......而且我不明白问题出在哪里。当我尝试在发送的电子邮件中使用它时,它只是没有显示出来。

$received_subject = 'Has sido contactado desde www.company.com por ' . $name . '. Empresa' . $empresa . '.' ;

**这是我使用的PHP:** 感谢提前

<?php

if(!$_POST) exit;

function isEmail($email) {
    return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name     = $_POST['name'];
$empresa  = $_POST['empresa'];
$email    = $_POST['email'];
$phone    = $_POST['phone'];
$comments = $_POST['comments'];

if(trim($comments) == '') {
    echo '<div class="error_message">Has olvidado escribir tu mensaje.</div>';
    exit();
} 



if(trim($name) == '') {
    echo '<div class="error_message">Tienes que poner un nombre.</div>';
    exit();
} else if(trim($email) == '') {
    echo '<div class="error_message">Por favor pon tu dirección de e-mail, para poder ponernos en contacto contigo.</div>';
    exit();
} else if(!isEmail($email)) {
    echo '<div class="error_message">Dirección de e-mail inválida, inténtelo nuevamente.</div>';
    exit();
}

$address = "mail@mail.com";


$received_subject = 'Has sido contactado desde www.company.com por ' . $name . '. Empresa' . $empresa . '.' ;

$received_body = "$name te ha contactado desde www.company.com " . PHP_EOL . PHP_EOL;
$received_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$received_reply = "Responder a $name $email o llamar al teléfono: $phone | Empresa: $empresa ";

$message = wordwrap( $received_body . $received_content . $received_reply, 100 );

$header = "From: $email" . PHP_EOL;
$header .= "Reply-To: $email" . PHP_EOL;

if(mail($address, $received_subject, $message, $header)) {

    // Email has sent successfully, echo a success page.

    echo "<h2>E-Mail enviado con éxito</h2>";
    echo "<p>Gracias <strong>$name</strong>, tu mensaje ha sido enviado.</p>";

} else {

    echo 'ERROR!';

}

我的表格在这里:

                            <form method="post" action="contact.php" name="contactform" id="contactform">

                                <fieldset id="contact_form">
                                    <label for="name">
                                        <input type="text" name="name" id="name" placeholder="Nombre *">
                                    </label>

                                    <label for="empresa">
                                        <input type="text" name="empresa" id="empresa" placeholder="Empresa *">
                                    </label>

                                    <label for="email">
                                        <input type="email" name="email" id="email" placeholder="E-Mail *">
                                    </label>

                                    <label for="phone">
                                        <input type="text" name="phone" id="phone" placeholder="Número de teléfono">
                                    </label>

                                    <label for="comments">
                                        <textarea name="comments" id="comments" placeholder="Mensaje *"></textarea>
                                    </label>
                                    <p class="obligatorio"> * = Obligatorio</p>

                                    <input type="submit" class="submit btn btn-default btn-black" id="submit" value="Enviar">
                                </fieldset>

                            </form>

3 个答案:

答案 0 :(得分:0)

如果你的所有其他帖子变量都有效,那么听起来好像$ _POST ['empresa']变量没有进入php页面。要调试脚本,您可以将表单方法切换到GET以查看浏览器URL中的查询字符串,或使用firebug这样的工具,这是firefox的附加功能。当你在html表单上切换到GET方法时,你的php页面会出错。不要担心您只是想通过http Post请求查看empressa变量是否正在发送。

好的,您的变量转储应根据您提供的代码

显示
array
  'name' => string 'Larry' (length=5)
  'empresa' => string 'Lane' (length=4)
  'email' => string 'ok@yahoo.com' (length=12)
  'phone' => string '123' (length=3)
  'comments' => string 'ok' (length=2)

因此,empresa正好让它进入页面。我注意到您的表单没有开头表格标签?您应该使用您的文件名来代替我用于测试的文件名。

<form name="testform" action="testingpostvariables.php" method="POST">

放置echo $ message;在你的php文件中的代码行之后

    $message = wordwrap( $received_body . $received_content . $received_reply, 100 );

    $echo message;

当我这样做时,empresa出现了。

确定将此代码放在单独的php文件中并对其进行测试,以便我们可以找出为什么“empresa”没有显示出来。在测试此文件之前,我还会尝试刷新浏览器,以确保没有错误的缓存结果。

<form method="post" action="contact.php" name="contactform" id="contactform">

                                <fieldset id="contact_form">
                                    <label for="name">
                                        <input type="text" name="name" id="name" placeholder="Nombre *">
                                    </label>

                                    <label for="empresa">
                                        <input type="text" name="empresa" id="empresa" placeholder="Empresa *">
                                    </label>

                                    <label for="email">
                                        <input type="email" name="email" id="email" placeholder="E-Mail *">
                                    </label>

                                    <label for="phone">
                                        <input type="text" name="phone" id="phone" placeholder="Número de teléfono">
                                    </label>

                                    <label for="comments">
                                        <textarea name="comments" id="comments" placeholder="Mensaje *"></textarea>
                                    </label>
                                    <p class="obligatorio"> * = Obligatorio</p>

                                    <input type="submit" class="submit btn btn-default btn-black" id="submit" value="Enviar">
                                </fieldset>

                            </form>



<?php




//debug
echo var_dump($_POST);

//debug
if(!$_POST){

    echo "NO POST";

    //exit;
}
else{

    echo "POSTED";
}

function isEmail($email) {
    return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name     = $_POST['name'];
$empresa  = $_POST['empresa'];

//impress is posting just fine

$email    = $_POST['email'];
$phone    = $_POST['phone'];
$comments = $_POST['comments'];

if(trim($comments) == '') {
    echo '<div class="error_message">Has olvidado escribir tu mensaje.</div>';
    exit();
} 



if(trim($name) == '') {
    echo '<div class="error_message">Tienes que poner un nombre.</div>';
    exit();
} else if(trim($email) == '') {
    echo '<div class="error_message">Por favor pon tu dirección de e-mail, para poder ponernos en contacto contigo.</div>';
    exit();
} else if(!isEmail($email)) {
    echo '<div class="error_message">Dirección de e-mail inválida, inténtelo nuevamente.</div>';
    exit();
}

$address = "mail@mail.com";


$received_subject = 'Has sido contactado desde www.company.com por ' . $name . '. Empresa' . $empresa . '.' ;

//debug
//$empressa is still working fine


$received_body = "$name te ha contactado desde www.company.com " . PHP_EOL . PHP_EOL;
$received_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$received_reply = "Responder a $name $email o llamar al teléfono: $phone | Empresa: $empresa ";



$message = wordwrap( $received_body . $received_content . $received_reply, 100 );

echo $message;

$header = "From: $email" . PHP_EOL;
$header .= "Reply-To: $email" . PHP_EOL;

/*
if(mail($address, $received_subject, $message, $header)) {

    // Email has sent successfully, echo a success page.

    echo "<h2>E-Mail enviado con éxito</h2>";
    echo "<p>Gracias <strong>$name</strong>, tu mensaje ha sido enviado.</p>";

} else {

    echo 'ERROR!';

}
 */

这就是我的结果与最后的empresa值相似(Lane是我在表单中输入的empresa值)。

POSTEDLarry te ha contactado desde www.company.com“这是一个非常长的消息确定让我们看看这个PHP代码是什么,它不发送empresa变量”响应者a Larry mail@mail.com o llamaraltelà ©fono:12345678 | Empresa:Lane

答案 1 :(得分:0)

好的,你的&#34; custom.js&#34;文件你有以下代码行,可能会导致一些问题。

  $.post(action, {
                name: $('#name').val(),
                empresa: $('#empresa').val(),
                email: $('#email').val(),
                phone: $('#phone').val(),
                comments: $('#comments').val(), //remove this comma

在最后一个属性值尝试删除后,应该没有逗号,以查看是否从jquery代码中获取了empresa的值。试试吧,让我知道我

答案 2 :(得分:0)

我通过用其他东西改变单词empresa来解决这个问题。 我认为使用这个词有某种冲突。

非常感谢你的帮助!