PHP表格处理器不工作

问题描述:

我刚刚开始学习php,不久前,我正在构建一个“联系我们”表单,它将用户输入发送到我的电子邮件。我多年来一直在想这件事,但我没有得到它。我还希望能够在我的电子邮件中收到用户的输入,并且还能够检测到用户的IP地址。当我提交表单时,我收到了除IP地址以外的其他所有输入,但我使用了“localhost”。PHP表格处理器不工作

我尝试了<input type="hidden" name="message" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">,但我在线阅读,最好不要使用<input type="hidden">,而只是在表单处理器脚本中处理所有内容。请善意帮助我。

<?php 
$emailError = ""; 


$messageError = ""; 




function getUserIp(){ 

    $client = $_SERVER['HTTP_CLIENT_IP']; 

    $forward = $_SERVER['HTTP_X_FORWARD_FOR']; 

    $remote = $_SERVER['REMOTE_ADDR']; 


    if(filter_var($client, FILTER_VALIDATE_IP)) { 

     $ip = $client; 

    }elseif(filter_var($forward, FILTER_VALIDATE_IP)) { 

     $ip = $client; 

    }else{ 

     $ip = $remote; 

    } 

return $ip; 

} 





if(isset($_POST['submit'])){ 

    //declares variable 
    $email = $_POST["email"]; 

    $subject = $_POST["subject"]; 

    $message = $_POST["message"]; 

    if(empty($_POST['email'])){ 

    $emailError = "Please enter your email"; 

    } 

    if(empty($_POST['subject'])){ 

    $subjectError = "Please enter a subject?"; 

    } 
} 






if(!empty($_POST['email']) && !empty($_POST['subject'])){ 

    // Send the email 
    $to = "[email protected]"; 

    $email = "From: $email"; 

    $subject = "Subject: $subject"; 

    $message = "$message" . "\n\n\n==- Sent from the website with IP Address: " . $ip . " -==";; 

    $headers = "From: $email,"; 

    $send_contact=mail($to,$email,$subject,$message,$headers); 

    header("Location: domain"); 
} 


?> 
+0

交码或该问题将被关闭 – 2015-06-22 02:58:12

+1

[阅读教程(https://bootstrapbay.com/blog/working-bootstrap-contact-/ – adeneo

+2

缺少'$ ip = getUserIp();'目前你永远不会调用你的函数,$ ip只存在于函数内部,不能用于外部。另外 - IP不像有些人认为的那样有用 – 2015-06-22 03:03:10

变化下面部分 -

if(!empty($_POST['email']) && !empty($_POST['subject'])){ 

     // Send the email 
     $to = "[email protected]"; 
     $ip =getUserIp(); 

     $email = "From: $email"; 

     $subject = "Subject: $subject"; 

     $message = "$message" . "\n\n\n==- Sent from the website with IP Address: " . $ip . " -==";; 

     $headers = "From: $email,"; 

     $send_contact=mail($to,$email,$subject,$message,$headers); 

     header("Location: domain"); 
    }