1

数日後、画像をフォルダにアップロードしてMySQLにリンクする際のエラーをクリアしようとしています。私はすでに問題を投稿しましたが、いくつかのコードを変更したので、もう一度投稿したいと思います。スパムの場合は申し訳ありません。

これは私のコード「adresse-bearbeiten.php」です

<?php 
require_once ('konfiguration.php');
$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);

    function sanitize( $input ){
    return mysql_real_escape_string( htmlspecialchars( stripslashes( trim( $input ) ) ) ); 
    }

    if(isset($_POST['title']))
        {

            $title          = sanitize($_POST['title']);
            $description    = sanitize($_POST['description']);
            $applepart      = sanitize($_POST['applepart']);
            $partnumber     = sanitize($_POST['partnumber']);
            $productcode    = sanitize($_POST['productcode']);
            $compatibility  = sanitize($_POST['compatibility']);
            $image          = sanitize($_FILES['photo']['name']);
            $price          = sanitize($_POST['price']);
            $insert         = mysql_query("INSERT INTO `adressbuch` (`title`,`description`,`applepart`,`partnumber`,`productcode`,`compatibility`,`photo`,`price`) VALUES ('$title','$description','$applepart','$partnumber','$productcode','$compatibility','$image','$price')");


            if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
            {

            echo "The file ". basename( $_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory";
            }
            else {

            echo "Sorry, there was a problem uploading your file.";
            }

            if (!$insert)
            {
              die('Not saved: ' . mysql_error());
        }
    }
?>

        <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
          <span>Neuer Eintrag:</span> <br />
          <span>Title</span><input type="text" name="title" /> <br />
          <span>Description</span><textarea cols="16" rows="5"  name="description"></textarea> <br />
          <span>Apple Part</span><input type="text" name="applepart" /> <br />
          <span>Part Number</span><input type="text" name="partnumber" /> <br />
          <span>Product Code</span><input type="text" name="productcode" /> <br />
          <span>Compatibility</span><input type="text" name="compatibility" /> <br />
          <span>Image</span><input type="file" name="photo" /> <br />
          <span>Price</span><input type="text" name="price" /> <br />
          <input type="submit" value="Speichern"/> <br />
        </form>

MySQL

CREATE TABLE IF NOT EXISTS `adressbuch` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` text,
  `description` text,
  `applepart` text,
  `partnumber` text,
  `productcode` text,
  `compatibility` text,
  `photo` text,
  `price` text,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

私が得るエラーは以下のとおりです

  • 注意:未定義のインデックス:11行目の/Users/fatih/Sites/phpform/neu/adresse-bearbeiten.phpの写真
  • 注意:未定義のインデックス:18行目の/Users/fatih/Sites/phpform/neu/adresse-bearbeiten.phpの写真
  • 注意:未定義のインデックス:23行目の/Users/fatih/Sites/phpform/neu/adresse-bearbeiten.phpの写真
  • 申し訳ありませんが、ファイルのアップロードで問題が発生しました。

誰かが私が間違っていることを教えてくれたら幸せですか?よろしく

4

2 に答える 2

3

私は次のことをチェックします:

  1. フォームはにenctype設定されていmultipart/form-dataますか?そのはず。(<form enctype="multipart/form-data">

  2. echo '<pre>';print_r($_FILES);exit;コードのどこかで行うとどうなりますか?アップロードしたファイルに関する情報を出力しますか?そうすべき。

于 2012-07-19T19:20:47.953 に答える
0

apacheエラーログを確認しましたか?ターゲットフォルダに対する権限がありますか?

私は自分が働いている会社で同様のシステムを使用してきましたが、よくあるエラーは次のとおりです。

1)ターゲットフォルダーへのアクセス許可1.1)www-dataにはターゲットフォルダーへのアクセス許可が必要です(Linuxを実行している場合)2)root_dirなどのディレクティブを設定するサイト定義(sites-enabledフォルダー)でのApache構成。このようにして、Apacheはroot_dir内にないフォルダーへのアクセスを制限できます。(例/ var / www)。

Make a print_r($_FILES);

issetでチェックして、何かが来るかどうかを確認します。そうでない場合は、何かを置きます。

例:

 $T3 = isset($_POST['T3']) ? $_POST['T3'] : NULL;

PHPリファレンスでエラーを確認しましたか?写真が設定されていません。これは、この値が表示されておらず、使用しようとしていることを意味します。

于 2012-07-19T19:20:35.577 に答える