PHP代码显示而不是被处理?

时间:2011-08-02 00:10:37

标签: php

我有以下HTML / PHP / CSS / JavaScript页面:

<html>
<head>
    <title>Test Guestbook</title>
    <style type="text/css">
        #titles {
            font-family: "Comic Sans MS";
            font-size: 15px;
        }
        #charremain {
            font-family: "Comic Sans MS";
            font-size: 12px;
        }
        .tb {
            border-top: #000000 1px solid;
            border-bottom: #000000 1px solid;
            border-left: #000000 1px solid;
            border-right: #000000 1px solid;
            background-color: "#000000";
            font-family: "Comic Sans MS";
            resize: none;
        }
        .submit {
            background-color: #FFCC99;
            font-family: "Comic Sans MS";
        }
        table {
            text-align: center;
            width: 100%;
        }
    </style>
    <script type="text/javascript">
        function count(x){
            if(x <= 100) {
                document.getElementById('remain').innerHTML = 100 - x;
            }
        }
    </script>
    <script type="text/javascript">
        function validate(form){
            if(form.post.value == "" || form.name.value == ""){
                alert("Please fill in all fields");
                return false;
            } else {
                return true;
            }
        }
    </script>
</head>
<body bgcolor='#FFFCC'>
    <div id='titles' align='center'>
        <form action='test.php' method='POST' onSubmit='return validate(this);'>
        Submit a post: <br \>
        <textarea id='post' class='tb' cols='25' rows='3' name='post' maxLength='100' onKeyUp="count(this.value.length)"></textarea>
        <p id='charremain'>Characters Remaining: <span id='remain'>100</span></p>
        Your name: <input class='tb' type='text' name='name' id='name'><br \>
        <input class='submit' type='submit' value='Submit'><br \>
        </form>
        <br \><br \>
        <H2>Current Posts:</H2>
    </div>
    <?php
        $con = mysql_connect('localhost','root','') or die("Could not connect to localhost, check connection!");
        mysql_select_db('test') or die("Could not find database");

        $sql = mysql_query("SELECT * FROM `posts`");
        $sqlCnt = mysql_num_rows($sql);

        if($sqlCnt != 0) {
            echo "<table align='center'>
                  <tr><td><u><H4>Message</H4></u></td>
                  <td><u><H4>Poster</H4></u></td></tr>";
            while($row = mysql_fetch_array($sql)) {
                echo "<tr><td>";
                echo $row['message'];
                echo "</td><td>";
                echo $row['poster']
                echo "</td></tr>";
            }
        } else {
            echo "<div align='center'>Sorry, no posts found!</div>";
        }
    ?>
    </table>
</body>

网页显示在应该处理它之后的所有内容,而不是继续进行while()循环。有什么想法吗?

更新的 我添加了丢失的分号,但没有运气。它是一个HTML文件,这是我看到的截图:

http://img846.imageshack.us/img846/9867/phpx.png

更新2: else语句的if()部分正在运行,但未处理$sqlCount != 0代码时。从第一个</tr>语句的第3行开始echo语句之后的所有内容都会从右括号开始回显。

4 个答案:

答案 0 :(得分:2)

确保您的文件名以对PHP脚本有效的扩展名结尾(例如:.php)。

还要确保您的网络服务器(Apache等)正在加载PHP模块。

答案 1 :(得分:2)

我想我找到了它:

echo $row['poster']

缺少最后一个分号。

答案 2 :(得分:2)

如果您是Apache,请务必检查您的php.ini是否有错误报告并添加:

ini_set('display_errors', 1); 
ini_set('log_errors', 1); 
ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
error_reporting(E_ALL);
  • display_errors(我们希望它是On或1)
  • display_startup_errors(我们希望它为On或1)
  • log_errors(我们希望它为On或1)
  • error_log(它应该是未定义的任何内容)
  • error_reporting(应该是2047或更大)

这将使调试变得更容易!

答案 3 :(得分:2)

当我通过AS3中的相对路径请求localhost php文件时,发生了这种情况,然后我使用了完整的URL路径并且它有效。