簡體   English   中英

聯絡表格中的欄位

[英]Field in contact form

我是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>

如果您所有其他post變量都在工作,那么聽起來$ _POST ['empresa']變量沒有進入php頁面。 要調試腳本,您可以將表單方法切換為GET以在瀏覽器URL中查看查詢字符串,也可以使用firebug之類的工具firebug附加。 當您切換到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變量”。 12345678 | 女企業家:車道

好的,在您的“ custom.js”文件中,您具有下面的代碼行,可能會引起一些問題。

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

最后一個屬性值后不應包含逗號,請嘗試刪除該屬性以查看是否從jquery代碼中獲得了empresa的值。 試試看,讓我知道

我已經解決了這個問題,方法是將empresa改為其他名稱。 我覺得這個詞有點沖突。

非常感謝你的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM