【问题标题】:Php error - only displaying code in text fomatPHP 错误 - 仅以文本格式显示代码
【发布时间】:2014-01-13 10:51:51
【问题描述】:

我正在使用的代码在另一台计算机上运行良好,因为它以文本格式输出代码,就像它是 .txt 文档一样。

这里是一些受影响的页面。

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>

【问题讨论】:

  • 您使用的是哪个环境和编辑器??
  • erm..notepad++ 和本地主机?
  • 您的机器上是否正在运行一个加载并配置了 PHP 的网络服务器?
  • 是的,我已经检查好了

标签: javascript php mysql ajax syntax


【解决方案1】:

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>

【讨论】:

    【解决方案2】:

    我相信您没有在 Apache 中安装 PHP,因此 Apache 无法将带有 php 扩展名的文件解释为正确的脚本。请检查您的 Apache 服务器是否已安装、配置正确以及 PHP 模块是否也已安装。

    我希望您尝试通过 http://localhost/.../calendar_start.php 而不是 file://C:/www/.../calendar_start.php 来调用您的脚本?

    【讨论】:

    • 谢谢 - 没什么特别的。那么工作文件的名称呢?您还可以编辑帖子并为文件添加完整的 url 路径吗?
    【解决方案3】:

    这就是为什么在您的“不同计算机”上 PHP 没有运行的原因。当您的网络服务器上没有运行或安装(和配置)PHP 时,Apache 将按原样输出代码。

    如果没有安装 PHP,则无法解析 PHP 代码。

    【讨论】:

    • 我可以运行其他php文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    相关资源
    最近更新 更多