【问题标题】:PHP file opens in browser instead of running [duplicate]PHP文件在浏览器中打开而不是运行[重复]
【发布时间】:2015-03-09 05:15:37
【问题描述】:

我在为学校项目构建的网站中需要一点 PHP。我需要它来上传 .swf 文件。但是当我按下“上传”按钮时,它会在浏览器中打开 php 文件而不是运行它,或者如果有错误则显示错误。

这是我的 HTML 代码:

<!DOCTYPE html>
<html>
<head>
<title>New Smallcut</title>
</head>
<body>
<font face="verdana" size="2">
<div style="text-align:center">
This is a webpage<br>
But no matter what, I am King
<p><a href=http://www.kiaye.org/>KIAYEorg</a></p>
    <br>
    <img src=KingSn0w.png width="100" height="100" alt=“King Sn0wCh1ld’s logo”>


    <form action="upload.php" method="post" enctype="multipart/form-data">
        Select game to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Image" name="submit">
    </form>
</div>
</font>

它应该在图像和表单上方放置一些文本,在其他普通网页上。

接下来是我从 W3Schools 获得的 PHP。

<?php
$target_dir = "uploads";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
} else {
    echo "File is not an image.";
    $uploadOk = 0;
}
}

// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "swf") {
echo "Sorry, only .swf files are allowed.";
$uploadOk = 0;
}
?>

我完全不知道为什么它不起作用,我在 5 年不使用它后才重新回到 HTML 中(我上次使用它时是 9 岁),我真的需要一点 PHP(我确实需要不明白,记录),工作。稍后我将需要更多的 PHP 来进行站点范围的搜索,我假设搜索结果和内容,如果我能让它工作,那将是令人欣慰的。

提前致谢!

【问题讨论】:

  • 如果你不理解代码,是什么让你认为你需要让它工作?
  • 无论如何,这是一个服务器配置问题。这里不完全是 OT。
  • 嗯,你安装了 PHP 和服务器吗?如果不是,那是你的问题。对于新手来说,最简单的方法是安装一个服务器包。 XAMPP 在我的经验中一直运行良好,但有others out there

标签: php html web


【解决方案1】:

你是通过file://访问文件的,不管你有没有安装webserver,如果你在浏览器中打开了php文件本身,web服务器什么都没有做它;您正在直接打开文件,无需网络服务器的干预。

您的网络服务器配置为运行本地网站,我假设可以通过您的本地 IP 地址127.0.0.1 访问。

在浏览器中输入它并检查它是否有效。

【讨论】:

    【解决方案2】:

    尝试将此添加到您的 PHP 文件所在的 .htaccess 文件中

    AddHandler application/x-httpd-php .php
    

    如果它不起作用,则意味着您的 apache 服务器上没有安装 PHP。请联系您的托管服务提供商。

    编辑:

    您需要安装带有 PHP 模块的 apache 服务器才能运行 PHP 文件。

    你可以安装一个像 XAMPP 这样的包,然后你就可以运行 php 文件了。你可以在这里阅读更多:https://www.apachefriends.org/index.html

    【讨论】:

    • 我在我的电脑上运行它,通过 file://
    • 你不能像这样运行 php 文件。要执行 PHP 文件,您需要安装和配置 PHP 的 apache 服务器。
    • JustMe,在我看来,您确实需要阅读有关在网络上运行 PHP(或任何其他语言)的知识。如果你想“运行”你的 PHP,你的浏览器只提供静态文件,例如。在浏览器中获取脚本的输出,您必须在两者之间放置一个解释器,这可以通过 Web 服务器(Apache、NginX 等)来完成。
    • 另外,我该如何命名 .htaccess 文件?重要吗?
    • 要使用.htaccess文件,你需要通过apache服务器运行网站,你可以在网上阅读如何安装和配置一个。
    【解决方案3】:

    您需要一个像 Nginx、Apache 或 PHP 服务器本身这样的网络服务器,如果您不这样做,那么当您尝试通过浏览器 (file://) 访问文件时,浏览器将假定它是纯文本。

    推荐使用 XAMPP 和 WAMP 堆栈,并且非常易于安装,它们还附带 MySQL(以及用于 XAMPP 的 Perl)

    当然,如果您对所有好东西都不感兴趣,您可以只安装独立的 Web 服务器,here 是一些安装 Nginx 和设置 PHP 的说明,here 是 Apache 的说明。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 2021-11-07
      • 2012-08-10
      • 2011-11-08
      • 2019-03-08
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      相关资源
      最近更新 更多