PHP代码显示为纯文本和isset($ _ POST)不起作用

时间:2012-11-30 12:54:03

标签: php isset

我一直在尝试使用PHP连接到MySQL并显示一些数据。我对此完全陌生。我主要从w3schools和谷歌上发现的其他一些网站上阅读了这个主题。 但是我有2个问题,第1个,PHP代码在

之后开始
$result = mysql_query("SELECT * FROM Passengers_On_Flight");

显示为纯文本。

另一个问题是,即使没有提交表单也会发生这种情况,这导致我认为if(isset($_POST['submit']))没有被正确评估的原因。我发现了其他问题,人们有问题,从来没有评估过真,但并不总是评估为真。

我在服务器上安装了PHP -v以确保安装了php5,我也这样做了:http://www.gilesorr.com/papers/PHP/x37.html

两者都表明PHP实际上已安装并正常工作。我已经搜索过,但似乎无法弄清楚问题。

这是我的PHP PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
    <link rel="stylesheet" type="text/css" href="cobraStyle.css">
    <HEAD>
    <TITLE>Cobra</TITLE>
    </HEAD>
    <BODY>
    <div id="container">
        <div id="header">
            <h1>
            Cobra Airlines
            </h1>
        </div>
        <div id="navigation">
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="viewFlights.html">Check Flights</a></li>
                <li><a href="#">Administration</a></li>
                <li><a href="#">Contact us</a></li>
            </ul>
        </div>
        <div id="content">
        <h2>
        Flights heading
        </h2>
        <?php
        if($_POST['submit'])
        {
            $con = mysql_connect("localhost","root","qwerty");
        if (!$con)
        {
            die('Could not connect: ' . mysql_error());
        }
        mysql_select_db("Cobra_Airlines", $con);

        $result = mysql_query("SELECT * FROM Passengers_On_Flight");

        echo "<table border='1'>
            <tr>
            <th>Fligh Number</th>
            <th>Departure Date</th>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Passenger Number</th>
            </tr>";

        while($row = mysql_fetch_array($result)){
            echo "<tr>";
            echo "<td>" . $row['FlightNum'] . "</td>";
            echo "<td>" . $row['Departure_Date'] . "</td>";
            echo "<td>" . $row['First_Name'] . "</td>";
            echo "<td>" . $row['Last_Name'] . "</td>";
            echo "<td>" . $row['PassengerNum'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";

        mysql_close($con);
    }
?>
<p>
<form name="input" action="viewFlights.html" method="post">
    Flight Number: <input type="text" name="flight">
    <input type="submit" value="submit" name="submit">
</form>
</p>
</div>
<div id="footer">
    Copyright © Cobra Air, 2012
</div>
</div>
</BODY>
</HTML>

这是更新的PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<link rel="stylesheet" type="text/css" href="cobraStyle.css">
   <HEAD>
      <TITLE>Cobra</TITLE>
   </HEAD>

   <BODY>

    <div id="container">
        <div id="header">
                <h1>
                    Cobra Airlines
                </h1>
            </div>

        <div id="navigation">
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="viewFlights.html">Check Flights</a></li>
                <li><a href="#">Administration</a></li>
                <li><a href="#">Contact us</a></li>
            </ul>
        </div>

        <div id="content">
            <h2>
                Flights heading
            </h2>

            <?php


                    $con = mysql_connect("localhost","root","qwerty");
                    if (!$con)
                    {
                        die('Could not connect: ' . mysql_error());
                    }
                    mysql_select_db("Cobra_Airlines", $con);

                    $result = mysql_query("SELECT * FROM Passengers_On_Flight");

                    echo 
                    "<table border='1'>
                    <tr>
                        <th>Fligh Number</th>
                        <th>Departure Date</th>
                        <th>First Name</th>
                        <th>Last Name</th>
                        <th>Passenger Number</th>
                    </tr>";

                    while($row = mysql_fetch_array($result))

                        echo "<tr>";
                        echo "<td>" . $row['FlightNum'] . "</td>";
                        echo "<td>" . $row['Departure_Date'] . "</td>";
                        echo "<td>" . $row['First_Name'] . "</td>";
                        echo "<td>" . $row['Last_Name'] . "</td>";
                        echo "<td>" . $row['PassengerNum'] . "</td>";
                        echo "</tr>";

                    endwhile;
                    echo "</table>";

                    mysql_close($con);

            ?>

            <p>
                <form name="input" action="viewFlights.php" method="post">
                    Flight Number: <input type="text" name="flight">
                    <input type="submit" value="submit" name="submit">
                </form>
            </p>

        </div>

        <div id="footer">
            Copyright © Cobra Air, 2012
        </div>
</div>

   </BODY>

</HTML>

2 个答案:

答案 0 :(得分:2)

问题是它们是html文件而不是php viewFlights.htmlx37.html不会解析为PHP,除非你的服务器被告知.html应该是。

将文件名更改为.php,即viewFlights.phpx37.php(并将您的表单操作更新为viewFlights.php)。

您应该将if ($_POST['submit'])更改为if (isset($_POST['submit']))以避免和未定义索引错误。

<强>除了...

当你处理这个问题时,我永远无法理解为什么人们会在白色空间不重要的情况下这样做。

echo "<tr>";
echo "<td>" . $row['FlightNum'] . "</td>";
echo "<td>" . $row['Departure_Date'] . "</td>";
echo "<td>" . $row['First_Name'] . "</td>";
echo "<td>" . $row['Last_Name'] . "</td>";
echo "<td>" . $row['PassengerNum'] . "</td>";
echo "</tr>";

echo "<tr>
    <td>" . $row['FlightNum'] . "</td>
    <td>" . $row['Departure_Date'] . "</td>
    <td>" . $row['First_Name'] . "</td>
    <td>" . $row['Last_Name'] . "</td>
    <td>" . $row['PassengerNum'] . "</td>
    </tr>
";

修改

回答第二个问题,而(){}已更改为while():endwhile但缺少冒号。需要

while($row = mysql_fetch_array($result)):

答案 1 :(得分:0)

你的意思是什么?如果你试图提取记录,除非它的密码等...不应该没问题吗?

由你$_POST提交值,你只是推动它在哪里。

您应$_POST使用if($_POST['flight'])

这样的航班号

你错过了一大块编程来拉取记录。

我建议你在编码之前计划这个过程。

另外,你的mysql连接的结构很差,在外部目录中保持一个持久连接,直到你准备关闭它,它使用更少的资源。

(../连接/ config.php中)

$pcon = mysql_pconnect('','','')

mysql_select_db('', $pcon)

别忘了将页面更改为.php扩展名而不是.html !!