显示为纯文本和isset($\u POST)的PHP代码不起作用
我一直在尝试使用PHP连接到MySQL并显示一些数据。我对这个完全陌生。我主要从w3schools和谷歌上的其他几个网站上读到了这个主题。 然而,我有两个问题:第一,PHP代码开始之后显示为纯文本和isset($\u POST)的PHP代码不起作用,php,isset,Php,Isset,我一直在尝试使用PHP连接到MySQL并显示一些数据。我对这个完全陌生。我主要从w3schools和谷歌上的其他几个网站上读到了这个主题。 然而,我有两个问题:第一,PHP代码开始之后 $result = mysql_query("SELECT * FROM Passengers_On_Flight"); 正在以纯文本显示 另一个问题是,即使表单未提交,也会发生这种情况,这使我相信表单的如果(isset($\u POST['submit'])未正确评估,则会有某种原因。我还发现了其他一些问题,
$result = mysql_query("SELECT * FROM Passengers_On_Flight");
正在以纯文本显示
另一个问题是,即使表单未提交,也会发生这种情况,这使我相信表单的如果(isset($\u POST['submit'])
未正确评估,则会有某种原因。我还发现了其他一些问题,人们有这样一个问题,那就是它永远不会评估为真,但也不是它总是评估为真
我在服务器上安装了PHP-v以确保安装了php5,我也这样做了:
两者都表明PHP实际上已经安装并运行。我已经找过了,但似乎找不出问题所在
以下是我的PHP HTML:
<!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>
眼镜蛇
眼镜蛇航空公司
航向
航班号:
版权所有©Cobra Air,2012年
以下是更新后的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>
眼镜蛇
眼镜蛇航空公司
航向
航班号:
版权所有©Cobra Air,2012年
问题是它们是html文件,而不是phpviewFlights.html
和x37.html
不会作为php解析,除非您的服务器被告知。html应该这样做
将其文件名更改为.php
,即viewFlights.php
和x37.php
(并将表单操作更新为viewFlights.php)
您应该将if($\u POST['submit'])
更改为if(isset($\u 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>";
你说的纯文本是什么意思?如果你试图拉记录,除非它是一个密码等。。。难道不是很好吗 通过
$\u POST
ing提交值,您只需将其推到任何位置即可
您应该$\u POST
输入航班号,如:if($\u POST['Flight'))
您也缺少了一大块用于提取记录的编程
我建议您在编写代码之前规划流程
此外,mysql连接的结构很差,请在外部目录中保留一个持久连接,直到您准备关闭它为止,它使用的资源更少
(../Connections/config.php)
$pcon=mysql\u pconnect(“”,“”)
mysql\u选择\u数据库('''$pcon)
别忘了将页面更改为.php扩展名而不是.html action=“viewFlights.html”您是否将html解析为PHP?此外,mysql\uuu现在正在逐步淘汰,您应该改用mysqli。action=“viewFlights.html”不在PHP标记中,我相信这与PHP标记无关。你的页面是.html,除非你明确告诉你的服务器这样做,否则它们不会被解析为php。但是现在我得到了:HTTP错误500(内部服务器错误):在服务器尝试完成请求时遇到了意外情况。这是因为我的php代码有问题吗?您将有一个未定义的索引“submit”,因为您没有检查它,但这不会导致500。测试页面有效吗?但是500已经消失了吗?如果没有,请编辑您的问题并将新代码发布在旧的.php下,而不是将xtension添加到.php并将action=“viewFlights.html”编辑到action=“viewFlights.php”没有任何更改。你还想让我发布密码吗?我还删除了我的php代码,所以它只包含am echo,它工作了,然后我添加了if($\u POST['submit'])作为echo的条件。它又出现了一个500错误,所以我想问题出在那一行。好的,你已经将while(){}改为while():endwhile,把它放回大括号或在条件后添加冒号,例如while(条件):我的意思是纯文本,而不是数据库中的记录($row=mysql\u fetch\u array($result)){echo“”;echo“$row['FlightNum'”;echo“$row['execution\u Date'”;echo“$row['First\u Name'”;echo“$row['Last\u Name'”;echo“$row['PassengerNum'”;echo“;}echo”;mysql_close($con);
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($row = mysql_fetch_array($result)):