0

本当に迷惑なエラーが発生しました。>私のスクリプトが終了した後。

<html>
<body>
    <h1>Upload file to see previous upload!</h1>
    <form action="index.php" method="post" enctype="multipart/form-data">
        <label for="file">Filename:</label>
        <input type="file" name="file" id="file">
    <br>
    <input type="submit" name="submit" value="submit">
    </form>
    <?PHP
            if (isset ($_FILES["file"])) {
                $allowedExts = array("jpeg", "jpg", "png");
                $temp = explode(".", $_FILES["file"]["name"]);
                $extension = end($temp);
                if ((($_FILES["file"]["type"] == "image/jpeg")
                  || ($_FILES["file"]["type"] == "image/jpg")
                  || ($_FILES["file"]["type"] == "image/pjpeg")
                  || ($_FILES["file"]["type"] == "image/x-png")
                  || ($_FILES["file"]["type"] == "image/png"))
                  && ($_FILES["file"]["size"] < 1048576)
                  && in_array($extension, $allowedExts)) {
                    if ($_FILES["file"]["error"] > 0) {
                        echo "Error: Couldn't upload file!";
                    } else {
                        move_uploaded_file($_FILES["file"]["tmp_name"], "files/" . $_FILES["file"]["name"]);
                    }
                } else {
                    echo "Upload a file NAO!";
                }
            }
        ?>
</body>
</html>

だから私のページでこれを読むことができます: " 0) { echo "Error: Couldn't upload file!"; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "files/" . $_FILES["file"]["name"]); } } else { echo "welcome!"; } } ?>"

さて、何を推測します!それは私の意図ではありませんでした.なぜこれが起こっているのか誰かが私に説明できるなら、私は感謝します.

4

2 に答える 2

5

PHP はまったく処理されていません。.phpページがページであり、PHP サーバー上にあることを確認してください。それ以外の場合は、使用しているファイル拡張子に関係なく、Apache が PHP を処理していることを確認してください。

また、大文字の使用は問題ではないように見えますが、<?phpではなく小文字の PHP を使用する方が一般的であることに注意してください。<?PHP

于 2013-09-04T19:17:09.637 に答える
2

ファイル名が間違っているか、次のコードの代わりにmisspelled start of php codeieが HTML タグの一部と見なされているためです。<?PHP<?php

 <?PHP
        if (isset ($_FILES["file"])) {
            $allowedExts = array("jpeg", "jpg", "png");
            $temp = explode(".", $_FILES["file"]["name"]);
            $extension = end($temp);
            if ((($_FILES["file"]["type"] == "image/jpeg")
            || ($_FILES["file"]["type"] == "image/jpg")
            || ($_FILES["file"]["type"] == "image/pjpeg")
            || ($_FILES["file"]["type"] == "image/x-png")
            || ($_FILES["file"]["type"] == "image/png"))
            && ($_FILES["file"]["size"] < 1048576)
            && in_array($extension, $allowedExts))
            {

            if ($_FILES["file"]["error"] >

注記開始<.... 終了>

残りはブラウザに表示されるものですverbatim

拡張子を付けてファイルの名前を変更します.php

そして、できれば PHP コードを次のように変更します。

<?php
// PHP code here
?>

編集:すべてのコメントに感謝します。表示される<?PHP<?php、両方が機能します。

編集 2:チェックするもう 1 つのことは、次のような行の Apache 構成です。

AddType application/x-httpd-php .php

これは基本的に、すべての.phpファイルを PHP スクリプトとして扱うように Apache に指示します。

于 2013-09-04T19:17:02.640 に答える