2014-06-10 70 views
-1

我有一个插件在我的wordpress网站上,它允许自定义PHP。 我创建了一个EMail表单,但是当涉及到发送时,它的错误。 当我发送表单完全空,它的工作原理,但只要我填写1个字段,它给了我一个404错误...我试了POST和GET,但都是相同的结果。 这是我的代码:(请不要介意,荷兰文XD)WordPress的PHP POST/GET方法

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

$ip = $_SERVER['REMOTE_ADDR']; 

$issent = $_POST['issent']; 

if(!$name) {$errorcount++; $error['name'] = "<text style='color:red;'>Voer je naam in A.U.B.</text><br>";} 
if(!$email) {$errorcount++; $error['email'] = "<text style='color:red;'>Voer een E-Mail in A.U.B.</text><br>";} 
if(!$age)  {$errorcount++; $error['age']  = "<text style='color:red;'>Voer je leeftijd in A.U.B.</text><br>";} 
if(!$subject) {$errorcount++; $error['subject'] = "<text style='color:red;'>Voer een onderwerp in A.U.B.</text><br>";} 
if(!$message) {$errorcount++; $error['message'] = "<text style='color:red;'>Voer een bericht in A.U.B.</text><br>";} 

if($errorcount > 0 || !isset($issent)){ 
//Error display 
if(isset($issent)){ 
    echo $error['name']; 
    echo $error['email']; 
    echo $error['age']; 
    echo $error['subject']; 
    echo $error['message']; 
} 

?> 

<form method="POST" action=""> 
<label>Naam: </label><input type="text" name="name" value="<?php echo$name; ?>"><br> 
<label>E-Mail: </label><input type="email" name="email" value="<?php echo$email; ?>"><br> 
<label>Leeftijd: </label><input type="text" name="age" value="<?php echo$age; ?>"><br> 
<label>Onderwerp: </label><input type="text" name="subject" value="<?php echo$subject; ?>"><br> 
<label>Bericht: </label><br> 
<textarea rows="15" cols="40" name="message"><?php echo$message; ?></textarea><br> 
<input type="hidden" value="1" name="issent"> 
<input type="submit"> 
</form> 

<?php 
} else { 
$to  = "Myemail"; 
$headers = 'From: [email protected]' . "\r\n"; 
$headers .= 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'Return-Path: Myemail' . "\r\n"; 
$headers .= 'Reply-To: ' . $email . "\r\n"; 
$headers .= 'X-Mailer: PHP/' . phpversion();; 

$finalmsg = "<h1>".$subject."</h1><br><br>"; 
$finalmsg .= "Naam:  ".$name."<br>"; 
$finalmsg .= "E-Mail: ".$email."<br>"; 
$finalmsg .= "Leeftijd: ".$age."<br>"; 
$finalmsg .= "Onderwerp: ".$subject."<br>"; 
$finalmsg .= "IP: ".$ip."<br>"; 

$finalmsg .= "Bericht: <br>".$message."<br>"; 


mail($to,"JKC Mail Form: ".$subject,$finalmsg,$headers); 
echo "E-Mail verstuurd! <br>Wij nemen Z.S.M. contact met u op!"; 
} 

我似乎没有得到它的工作... 有人可以帮我,我已经一派闪人,但我没有能够修复它。

+0

WordPress的寄存器,捕获和行为。您的字段名称很常见,可能会与其中的一个或多个相冲突。我会用一些独特的名称空间为所有变量加前缀,例如:'$ _POST ['so24138113_name'']' – cpilko

回答

1

你还没有定义和初始化$errorcount

$errorcount = 0; 

检查,没有工作

实际发行与表单的第一个字段的“名”,即“名称:

就在你的代码的起点添加以下代码”。

你不能在wordpress中使用“name”作为“name”键的值。 WordPress的内部用于不同的目的。

将“name”键的值更改为别的,它会正常工作。

此问题也出现在u使用下列任一值的“姓名”后一些`$ _POST`或`$ _GET`变量关键

name,date, year, month, day, hour, minute 
+0

谢谢,但没有工作,仍然是一样的。见本页:http://jkctech.nl/contact/ – user3186204

+0

哇感谢人!这真的帮助我!,我不能upvote,但我标记为答案! – user3186204

+0

好,没有问题:)。很高兴它解决了。 –

0

而不是插件的PHP标签,你不能使用这个模板。将此代码添加到该模板并将该模板分配到此页面。

+0

我该怎么做,我相当一个WordPress的noob,也请大家,请不要downvote,这只是唯一的选择我已经离开 – user3186204