0

このアップロード スクリプトを取得しましたが、実行しようとするとページが空白になります。何か問題がありますが、エラーの場所と修正方法がわかりません。誰かがこのスクリプトを機能させるのを手伝ってくれたら幸いです! どうもありがとう !

<?php
    $allowedExts = array("jpg", "jpeg", "gif", "png");
    $extension = end(explode(".", $_FILES["file"]["name"]));
    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/png")
    || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 20000)
    && in_array($extension, $allowedExts))
      {
      if ($_FILES["file"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
        }
      else
        {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

        if (file_exists("upload/" . $_FILES["file"]["name"]))
          {
          echo $_FILES["file"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
            include 'db.php';
            mysql_query("INSERT INTO `members`(img) VALUES ('$_FILES["file"]["name"]')");
            include 'succes.php';
            }
        }
      }
    else
      {
      echo "Invalid file";
      }
    ?>
4

2 に答える 2

2

この行にエラーがありました

mysql_query("INSERT INTO `members`(img) VALUES ('$_FILES["file"]["name"]')");

その行をに変更します

mysql_query("INSERT INTO `members`(img) VALUES ('{$_FILES["file"]["name"]}')");

アップデート:

エラーはParse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 30

注:関数は使用しないでくださいmysql_*。間もなく廃止される予定です。代わりに、PDOまたはmysqli関数を使用してください。データベースにデータを挿入する前に、常にデータを検証し、SQLインジェクションに注意してください。

于 2012-12-06T14:42:12.723 に答える
1

mysql_*新しいコードで関数を使用しないでください。それらはもはや維持されておらず、非推奨プロセスが開始されています。赤いボックスがか?代わりにプリペアドステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを決定するのに役立ちます。PDOを選択した場合は、ここに優れたチュートリアルがあります。

ただし、upload/フォルダにread and write権限があることを確認し、次の作業コードを使用してください。

mysql_query("INSERT INTO `members`(img) VALUES ('" . $_FILES["file"]["name"] . "');");

そのコードを使用するとSQLインジェクションの脆弱性があることを確認してください。を介して、クエリを準備することをお勧めしますPDO

既存のレコードを更新する必要がある場合は、次を使用します。

mysql_query("UPDATE `members` SET img = '" . $_FILES["file"]["name"] . "' WHERE member_id = '" . $member_id . "';");

既存のメンバーに新しい画像を追加する必要がある場合は、次のことを試すことができます。

mysql_query("INSERT INTO `members` (img, member_id) VALUES ('" . $_FILES["file"]["name"] . "', '" . $member_id . "');");
于 2012-12-06T14:43:50.840 に答える