Php错误 - 只显示文本格式的代码
我使用的代码在不同的计算机上工作正常,我现在正在输出文本格式的代码,就像它是一个.txt文档。Php错误 - 只显示文本格式的代码
这里是一些受影响的页面。
connect.php
<?php
$con=mysqli_connect("hr-computing","student","codd","brodie");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
events.php
<?php
$deets = $_POST['deets'];
$deets = preg_replace('#[^0-9/]#i', '', $deets);
include ("connect.php");
$events = '';
$query = mysql_query('SELECT description FROM events WHERE evdate ="'.$deets.'"');
$num_rows= mysql_num_rows($query);
if ($num_rows > 0) {
$events.= '<div id="eventsControl"><button onMouseDown="overlay()">Close</button><br /><b> ' . $deets . '</b><br /><br /></div>';
while($row= mysql_fetch_array($query)) {
$desc = $row['description'];
$events .='<div id="eventsBody">'.$desc .'<br /><hr><br /></div>';
}
}
echo $events;
?>
calendar_start.php
<?php
$showmonth = $_POST['showmonth'];
$showyear = $_POST['showyear'];
$showmonth= preg_replace('#[^0-9]#i', '', $showmonth);
$showyear= preg_replace('#[^0-9]#i', '', $showyear);
$day_count = cal_days_in_month(CAL_GREGORIAN, $showmonth, $showyear);
$pre_days = date('w', mktime(0,0,0, $showmonth, 1, $showyear));
$post_days = (6-(date('w', mktime(0,0,0, $showmonth, $day_count, $showyear))));
echo '<div id="calendar_wrap">';
echo '<div class="title_bar">';
echo '<div class="previous_month"><input name="button" type="submit" value="Previous Month" onClick="javascript:last_month();"></div>';
echo '<div class="show_month">' . date('F', mktime(0, 0, 0, $showmonth)) . ' ' . $showyear . '</div>';
echo '<div class="next_month"><input name="button" type="submit" value="Next Month" onClick="javascript:next_month();"></div>';
echo '</div>';
echo '<div class="week_days">';
echo '<div class="days_of_the_week">Sun</div>';
echo '<div class="days_of_the_week">Mon</div>';
echo '<div class="days_of_the_week">Tues</div>';
echo '<div class="days_of_the_week">Wed</div>';
echo '<div class="days_of_the_week">Thur</div>';
echo '<div class="days_of_the_week">Fri</div>';
echo '<div class="days_of_the_week">Sat</div>';
echo '<div class="clear"></div>';
echo '</div>';
if ($pre_days != 0) {
for($i=1; $i<=$pre_days; $i++) {
echo '<div class="non_cal_day"></div>';
}
}
include ("connect.php");
for ($i=1; $i<= $day_count; $i++) {
$date = $i.'/'.$showmonth.'/'.$showyear;
$query = "Select id FROM events WHERE evDate = '$date'";
$num_rows = 0;
if($result = mysql_query($query)) {
$num_rows = mysql_num_rows($result);
}
if($num_rows > 0) {
$event = "<input name='$date' type='submit' value='Details' id='$date'
onClick='javascript:show_details(this);'>";
}
echo '<div class="cal_day">';
echo '<div class="day_heading">' . $i . '</div>';
if($num_rows != 0) { echo "<div class='openings'><br/>" . $event . "</div>";}
echo '</div>';
}
if ($post_days !=0) {
for($i=1; $i<=$post_days; $i++) {
echo '<div class="non_cal_day"></div>';
}
}
echo '</div>';
?>
工作PHP文件
<html>
<body>
<style>
body
{
background-color:#CD0074;
}
</style>
<form action="http://hr-computing/public/Brodie Evans/project/login.php" method="post">
FirstName: <input type="text" name="firstname" /><br />
Surname: <input type="text" name="surname" /><br />
Email: <input type="text" name="email" /><br />
Password: <input type="password" name="p" id="password"/><br />
<input type="submit" value="Submit"/>
</form>
<?php
$con=mysqli_connect("*****","*******","****","*******");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO Details (FirstName, surname, email)
VALUES('$_POST[firstname]','$_POST[surname]','$_POST[email]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
</body>
</html>
我相信你没有在Apache中安装PHP,所以Apache不能将PHP扩展的文件解释为正确的脚本。请检查您的Apache服务器是否已安装,是否以正确的方式进行了配置,并且还安装了PHP模块。
我希望你试图通过http://localhost/.../calendar_start.php
来调用你的脚本,而不是file://C:/www/.../calendar_start.php
?
这就是为什么在你的“不同的计算机”PHP没有运行。当你没有在你的web服务器上运行或安装PHP(并已配置)时,Apache将按照原样输出代码。
如果没有安装PHP,PHP代码就无法解析。
我可以运行其他的php文件 – user3181157
apache是否配置为将带有后缀“.php”的文件解释为PHP文件?检查你的apache的mod_php配置。它应该包含这样的东西。
位置取决于您运行的服务器类型。此示例在Windows上显示xampp。请参阅/apache/conf/extra/httpd-xampp.conf
#
# PHP-Module setup
#
LoadFile "<path to php installation>/php5ts.dll"
LoadModule php5_module "<path to php installation>/php5apache2_2.dll"
<FilesMatch "\.php[5]*$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
另一个用于Debian的示例。请参阅/etc/apache2/mods-available/php5.conf
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|p5?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
</IfModule>
任何反馈?它有用吗? – ToBe
您正在使用哪种环境和编辑器? –
erm ..记事本++和本地主机? – user3181157
是在您的机器上运行加载和配置的PHP的网络服务器吗? –