Windows 10 上的 XAMPP 未运行 php



项目结构如下

C:xampphtdocsmyProjectDocumentation
C:xampphtdocsmyProjectHTMLcss
C:xampphtdocsmyProjectHTMLimages
C:xampphtdocsmyProjectHTMLjs
C:xampphtdocsmyProjectHTMLvideos
C:xampphtdocsmyProjectHTML404.html
C:xampphtdocsmyProjectHTMLcontact.php
C:xampphtdocsmyProjectHTMLindex.html
C:xampphtdocsmyProjectPSD 

我在索引中有一个联系表单.html它由一个javascript文件控制。此代码停止默认表单提交,执行错误检查,然后使用 ajax 向 contact.php 发出发布请求。javascript 代码运行,它检测到 php(请参阅下面代码中的警报,就在 axjax 功能调用之后。d 的值是警报中的 php 脚本,但 php 代码中的任何调试行都不会被调用,并且它永远不会返回"成功"。

这是表格

<form class="form-horizontal" id="phpcontactform">
<div class="control-group">
<input class="input-block-level" type="text" placeholder="Full Name" name="name" id="name">
</div>
<div class="control-group">
<input class="input-block-level" type="email" placeholder="Email ID" name="email" id="email">
</div>
<div class="control-group">
<input class="input-block-level" type="text" placeholder="Mobile Number" name="mobile" id="mobile">
</div>
<div class="control-group">
<textarea class="input-block-level" rows="10" name="message" placeholder="Your Message" id="message"></textarea>
</div>
<div class="control-group">
<p>
<input class="btn btn-danger btn-large" type="submit" value="Send Message">
</p>
<span class="loading"></span> </div>
</form>

这是JavaScript

// JavaScript Document
$(document).ready(function() {
$("#phpcontactform").submit(function(e) {
e.preventDefault();
var name = $("#name");
var email = $("#email");
var mobile = $("#mobile");
var msg = $("#message");
var flag = false;
if (name.val() == "") {
name.closest(".control-group").addClass("error");
name.focus();
flag = false;
return false;
} else {
name.closest(".control-group").removeClass("error").addClass("success");
} if (email.val() == "") {
email.closest(".control-group").addClass("error");
email.focus();
flag = false;
return false;
} else {
email.closest(".control-group").removeClass("error").addClass("success");
} if (msg.val() == "") {
msg.closest(".control-group").addClass("error");
msg.focus();
flag = false;
return false;
} else {
msg.closest(".control-group").removeClass("error").addClass("success");
flag = true;
}
var dataString = "name=" + name.val() + "&email=" + email.val() + "&mobile=" + mobile.val() + "&msg=" + msg.val();
$(".loading").fadeIn("slow").html("Loading...");
$.ajax({
type: "POST",
data: dataString,
url: "http://localhost/myProject/HTML/contact.php",
cache: false,
success: function (d) {
alert("d: "+d);
$(".control-group").removeClass("success");
if(d == 'success') // Message Sent? Show the 'Thank You' message and hide the form
$('.loading').fadeIn('slow').html('<font color="green">Mail sent Successfully.</font>').delay(3000).fadeOut('slow');
else
$('.loading').fadeIn('slow').html('<font color="red">Mail not sent.</font>').delay(3000).fadeOut('slow');
}
});
return false;
});
$("#reset").click(function () {
$(".control-group").removeClass("success").removeClass("error");
});
})

最后是 php

<?php
echo "<script>console.log('Debug Objects:' );</script>";
$name  = $_REQUEST["name"];
$email = $_REQUEST["email"];
$mobile   = $_REQUEST["mobile"];
$msg   = $_REQUEST["msg"];
echo "<script>";
echo "alert('this also works');";
echo "</script>";
$to    = "myemail@gmail.com";
if (isset($email) && isset($name) && isset($msg)) {
$subject = $name."sent you a message via Raaga";
$headers = "MIME-Version: 1.0" . "rn";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "rn";
$headers .= "From: ".$name." <".$email.">rn"."Reply-To: ".$email."rn" ;
$msg   = "From: ".$name."<br/> Email: ".$email ."<br/> Mobile: ".$mobile." <br/>Message: ".$msg;
echo "<script>alert('this maybe works');</script>";
$mail =  mail($to, $subject, $msg, $headers);
if($mail)
{
echo 'success';
}
else
{
echo "<script>alert('name:'+$name);</script>";
echo 'failed';
}
}
echo "<script>alert('this finally works');</script>";
?>

我尝试将联系人.php移动到htdocs根目录,但这不起作用。关闭了所有防病毒软件和防火墙,但这也不起作用。我不知所措。认为 php 应该与 xampp 一起开箱即用?

好的,感谢 Adyson 的帮助。问题不在于 php 没有运行,而在于邮件服务器配置不正确。

最新更新