2

これが私のフォームです

<form action="test.php" method="post" name="myform"> 
<table width="500" border="0">
  <tr>
    <td width="369" colspan="3">Admin's Area </td>
    <td width="121"><?php echo $_SESSION['name'];?></td>
  </tr>
  <tr>
    <td colspan="3">sponseres list </td>
    <td><a href="admin.php#sponserForm">+Add new Sponser</a></td>
  </tr>
  <tr>
    <td colspan="3"><?php echo $sponsere_list; ?></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center" colspan="4"> <a name="sponserForm" id="sponserForm"></a> Add New Sponser Form</td>
  </tr>
  <tr>
    <td align="left">Sponser name</td>
    <td align="left"><input type="text" name="spname" id="spname" tabindex="1" /></td>
    <td colspan="2" align="center">&nbsp;</td>
    </tr>
  <tr>
    <td align="left">Image</td>
    <td align="left"><input type="file" name="fileToUpload" /></td>
    <td colspan="2" align="center">&nbsp;</td>
    </tr>
  <tr>
    <td align="left">Add this</td>
    <td align="left"><input type="submit" name="sumit" id="sumit" value="Submit" tabindex="3" /></td>
    <td colspan="2" align="center">&nbsp;</td>
    </tr>
  <tr>
    <td align="center" colspan="4">&nbsp;</td>
  </tr>
</table>
</form>

これはそれを取得するためのphpコードです

<?php 
if(isset($_POST['spname'])){
    $spname=mysql_real_escape_string($_POST['spname']);
    $user_query = "INSERT INTO `sponsers` (`spname`)
                                    VALUES ('{$spname}')
                                    ";
    $sql=mysql_query($user_query)or die (mysql_error());
    $spic= mysql_insert_id();
    $newname="$spic.jpg";
    move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],"../sponsers/$newname")or die (mysql_error());
    }
?>

画像をアップロードしようとすると、この警告メッセージが表示されます Notice: Undefined index: fileToUpload in J:\xampp\htdocs\srimag\admin\test.php on line 3

$_POST['fileToUpload'] を使用して fileToUpload の値をエコーし​​ようとしましたが、エラーなしで値が表示されるため、エラーを特定できません。

これについて私を助けてください:-( ありがとう。

4

4 に答える 4

4

あなたの主な問題はenctype、フォームに適切な属性がないことです

<form ... enctype="multipart/form-data">

マニュアルのこのセクションを注意深く読んでください - http://php.net/manual/en/features.file-upload.php

あなたの問題は最初のページに記載されています

ノート:

ファイル アップロード フォームに属性があることを確認してくださいenctype="multipart/form-data"。そうしないと、ファイルのアップロードが機能しません。

于 2012-05-07T05:35:33.207 に答える
2

enctype="multipart/form-data"フォームで画像をアップロードする必要があります。また、ユーザーが画像をアップロードしているかどうかを確認することをお勧めします。また、ファイルの名前付けの詳細.jpgが機能しない場合、画像は、JPEG でない場合、出力時に破損しているものとして扱われます。 php ファイルのアップロード。

また、有効性について他のチェックを行う必要があります。アップロードのセキュリティは見落とされるべきものではありません。さもなければ、すべてのスクリプトにコードを挿入する、ひどい電話ホーム/ボットネット マルウェア スクリプトの 1 つが存在します。

<?php 
if(isset($_POST['spname'])){
    $spname=mysql_real_escape_string($_POST['spname']);
    $user_query = "INSERT INTO `sponsers` (`spname`)
                                    VALUES ('{$spname}')";
    $sql=mysql_query($user_query)or die (mysql_error());
    $spic= mysql_insert_id();



    if(isset($_FILES["fileToUpload"]["tmp_name"]) && $_FILES["fileToUpload"]["error"] ==0){
        $name    = basename($_FILES["fileToUpload"]['name']);
        $ext     = end(explode('.', $name));
        $newname = $spic.".".$ext;
        $info    = getimagesize($_FILES["fileToUpload"]['tmp_name']);

        $allowed = array('image/png','image/jpg','image/gif');
        if($info[0]>0 && $info[1] > 0 && in_array($info['mime'],$allowed)){
            move_uploaded_file($_FILES["fileToUpload"]['tmp_name'], "../sponsers/$newname");
            //done upload
        }else{
            //Not allowed, perhap notify user
        }
    }

}
?>
于 2012-05-07T05:46:58.290 に答える
1

これをフォームタグに含める

enctype="multipart/form-data"
于 2012-05-07T05:36:01.627 に答える
1

これをフォームに追加する必要があります

<form action="test.php" method="post" name="myform" enctype="multipart/form-data"> 
于 2012-05-07T05:36:53.140 に答える