Masalah formulir kontak - Saya menerima pesan, tetapi tidak ada isinya (halaman kosong)

Saya memiliki formulir kontak di situs yang dulunya berfungsi, namun sejak beberapa bulan terakhir tidak lagi berfungsi dengan baik. Ini mungkin disebabkan oleh beberapa kesalahan pengkodean yang tidak dapat saya pahami. Yang terjadi adalah saya menerima pesan yang dikirimkan, namun kosong sama sekali, tidak ada isinya sama sekali. Apa masalahnya?

Saya melampirkan halaman front-end terlebih dahulu, dan kemudian back-end.

Contoh contact.php kode front-end: -

<div id="content">
     <h2 class="newitemsxl">Contact Us</h2>

<div id="contactcontent">
        <form method="post" action="contactus.php">
Name:<br />
<input type="text" name="Name" /><br />
Email:<br />
<input type="text" name="replyemail" /><br />
Your message:<br />
<textarea name="comments" cols="40" rows="4"></textarea><br /><br />

<?php require("ClassMathGuard.php"); MathGuard::insertQuestion(); ?><br /> 
  <input type="submit" name="submit" value="Send" />
* Refresh browser for a different question. :-)

</form>
</div>

</div>

Contoh contactus.php (kode backend):-

<?php

/* first we need to require our MathGuard class */
require ("ClassMathGuard.php");
/* this condition checks the user input. Don't change the condition, just the body within the curly braces */
if (MathGuard :: checkResult($_REQUEST['mathguard_answer'], $_REQUEST['mathguard_code'])) {
    $mailto="[email protected]";
$pcount=0;
$gcount=0;
$subject = "A Stylish Goods Enquiry";
$from="[email protected]";
echo ("Great, you're message has been sent !"); //insert your code that will be executed when user enters the correct answer
} else {
    echo ("Sorry, wrong answer, please go back and try again !"); //insert your code which tells the user he is spamming your website
}


while (list($key,$val)=each($HTTP_POST_VARS))
{
$pstr = $pstr."$key : $val \n ";
++$pcount;
}
while (list($key,$val)=each($HTTP_GET_VARS))
{
$gstr = $gstr."$key : $val \n ";
++$gcount;
}
if ($pcount > $gcount)
{
$comments=$pstr;
mail($mailto,$subject,$comments,"From:".$from);
}
else
{
$comments=$gstr;
mail($mailto,$subject,$comments,"From:".$from);
}
?>

person nitbuntu    schedule 28.01.2010    source sumber


Jawaban (2)


Mungkin ada peningkatan PHP di server dan $HTTP_POST_VARS sudah tidak digunakan lagi. Gunakan $_POST dan $_GET untuk itu.

person Pentium10    schedule 28.01.2010
comment
Jadi dimanapun tertulis:- '$HTTP_POST_VARS' harus saya ganti dengan '$_POST' dan dimanapun tertulis '$HTTP_GET_VARS' harus saya ganti dengan '$_GET'? - person nitbuntu; 28.01.2010

apakah mungkin versi php anda berubah? Di php5 array HTTP_POST_VARS tidak lagi tersedia.

Anda dapat mencoba yang berikut ini untuk mendapatkan nilai Anda sebelum memulai perulangan while:

$HTTP_POST_VARS   = !empty($HTTP_POST_VARS)   ? $HTTP_POST_VARS   : $_POST;
person opHASnoNAME    schedule 28.01.2010
comment
Baris yang Anda sebutkan ini, haruskah saya menambahkannya tepat di atas loop while? - person nitbuntu; 28.01.2010
comment
ya, atau ganti $HTTP_POST_VARS dengan $_POST di kode sumber Anda - person opHASnoNAME; 28.01.2010