0

このフォームに問題があります。ユーザーが日付ベースのアイテムを編集できるようにしたい。彼らは、1つのページで編集するアイテムを選択し、GETで編集ページに送信されます。GETには、編集する必要のあるアイテムのIDがあります。

編集ページは、(ファイル名を除いて)ユーザーフォームに挿入されたアイテムの詳細とともにロードされ、このフィールドは空白のままになります。ユーザーがファイルを選択したかどうかをチェックするロジックを実行しようとしています。

そうでない場合は、ユーザーがすでにアップロードされているファイルに満足していると思われるため、このフィールドは無視する必要があります。

彼らがファイルを選んだ場合、これは彼らがこれを新しい絵にしたいと思っていることを意味します。その場合にのみ、画像をアップロードしてその名前をデータベースに挿入するロジックを実行します。

次のように言って、POSTの詳細を取得しています。

$clean_pic = $_POST['pic'];

次に、空白の場合は何もしないでアップロードを実行します。

if($clean_pic = ''){}
    else{

動いていない。空白かどうかを確認する方法はありますか?コードを削減します。

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

    // validate 'pic': must consist of alphanumeric characters only.
    $_POST['pic'] = isset($_POST['pic']) ? $_POST['pic'] : '';
    //if(preg_match('/\.(jpg|gif|jpeg)$/i',$_POST['pic']))
        //{
        $clean_pic = $_POST['pic'];
        //}
    //else
        //{$error++; $errmsg .= 'Invalid pic. ';}

}


if (isset($_POST['add']) && ($error==0)) 
{                   


    if (!isset($_POST['pic'])) { echo"test1";}
else {echo"test222";}

    /*tied this too but it didnt work (it will always display result 1):
       if (!isset($_POST['pic'])) { echo"test1";}
   if (isset($_POST['pic']))  {echo"test222";}*/

}

else //output error messages 
{
/////////render form
?>
<form enctype="multipart/form-data" action="" method="post" id="save"><fieldset>
<table id="site-form">
    <tr>
    <td class="one_of_three"><label>Item Name:&nbsp;&nbsp;</label></td>
    <td class="two_of_three"><input type="text" name="fileName" id="fileName" value="<?php echo"$db_name";?>"/></td>
    <td><label class="errors" id="fileNameError">&nbsp;</label></td>
    </tr>
    <tr>
    <td class="one_of_three"><label>Picture:&nbsp;&nbsp;</label></td>
    <td class="two_of_three"><input type="file" name="userfile[]" id="pic"/></td>
    <td><label class="errors" id="picError">&nbsp;</label></td>
    </tr>

    <tr>
        <td class="one_of_three">&nbsp;</td>
        <td class="two_of_three"><input name="add" id="save_button" type="submit" value="Update"/>&nbsp;&nbsp;<a href="../">Cancel</a>.</td>
        <td>&nbsp;</td>
    </tr>
</table>
</fieldset></form>
<?php }?>
4

3 に答える 3

0

「id」属性 (「pic」) を使用してファイルにアクセスすることはできません。「name」属性 (「userfile」) の値を使用する必要があります。ファイルがアップロードされたかどうかは、php で $_FILES 配列を使用して確認できます。

if(isset($_FILES) && isset($_FILES['userfile']) && (trim($_FILES['userfile']['name']) != '') ) {

//アップロードコードはこちら

}

そうしないと

{

//ファイルがアップロードされていません

}

于 2013-02-18T09:31:28.123 に答える
0

どうif (!isset($_POST['pic']))ですか?

于 2013-02-17T19:26:06.967 に答える
0

物事を確認する必要があります: 1 つは $_POST['pic'] で、2 番目は enctype="multipart/form-data" 属性を使用する必要がある形式です。

于 2013-02-18T09:37:46.863 に答える