php包括不会在php文件中显示我的内容

时间:2012-03-28 21:05:23

标签: php file include

所以,我在php文件中有这个表单,我希望它在这个滑动div中显示,但它不会显示任何包含我的include文件的php文件。有什么建议吗?

我想我试图错误地包含php文件

这是doc:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script src="js/jquery-1.7.1.js" type="text/javascript"></script>
        <style type="text/css">
            #wrap {

            }
            #box1 {
                background: red;
                width: 800px;
                height: 100px;
            }
            #box2 {
                background: blue;
                width: 800px;
                height: 200px;
                display: none;
            }
            #box3 {
                background: green;
                width: 800px;
                height: 100px;
            }
            .expand {

            }

        </style>
        <script type="text/javascript">
            $(function() {

                $("#wrap a.expand").click(function() {
                    $('#box2').slideToggle('900');

                });
            });

        </script>
    </head>

    <body>
        <div id="wrap">
            <p>
                <a href="#" class="expand">Expanding/Collapse</a>
            </p>
            <p>
                <a href="www.google.com">Google</a>
            </p>

            <div id="box1" alt="box"></div>
            <div id="box2" alt="box">
                <?php include("test.php"); ?>
            </div>
            <div id="box3" alt="box"></div>
        </div>
    </body>
</html>

这是php文件

<?php 
if ($_POST["email"]<>'') { 
    $ToEmail = 'email@email.site'; 
    $EmailSubject = 'Portfolio Contact .com'; 
    $mailheader = "From: ".$_POST["email"]."\r\n"; 
    $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
    $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $MESSAGE_BODY = "Name: ".$_POST["name"].""; 
    $MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
    $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
    mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 
Your message was sent
<?php 
} else { 
?> 
<form action="test.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="29%" class="bodytext">Your name:</td>
<td width="71%"><input name="name" type="text" id="name" size="32"></td>
</tr>
<tr>
<td class="bodytext">Email address:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext">Comment:</td>
<td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"></textarea></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form> 
<?php 
}; 
?>

3 个答案:

答案 0 :(得分:1)

为了轻松消除找不到test.php文件的可能性,请替换require()的include()。它完全相同,略有不同,没有找到文件导致PHP抛出致命的E_COMPILE错误,从而明显出现问题。

为了帮助修复错误,请将以下两行添加到PHP脚本的最顶层(主文件):

ini_set('display_errors', 1);
error_reporting(E_ALL);

这将使它在页面上显示所有错误和通知,立即显示哪个文件在哪一行出错。确保您只在开发中使用它,但您不希望用户看到有关您的后端代码的详细错误消息。

答案 1 :(得分:1)

enter image description here删除包含文件并使用此jQuery Load,因此您的表单将在div id box2中加载

<script type="text/javascript">
            $(function() {
                $("#wrap a.expand").click(function() {
                    $('#box2').slideToggle('900').load("test.php");

                });
            });

</script>

并将此更改为@$_POST["email"]<>'',带有at符号,您的错误将隐藏

答案 2 :(得分:0)

尝试查看页面源,看看它是否包含在那里。你的php文件包含在#box2中,它在css中的显示设置为none,所以即使它被包含在内也不会呈现。