0

フォームを使用して複数の画像を mysql データベースに追加したいと考えています。ユーザーがそのフォームを送信するたびに、すべてのデータがキャプチャされ、mysql データベースに保存されます。(それは正しい方法ですが、必要です)

私のデータベーステーブルは次のようになっています。

CREATE TABLE `Owner_detail` (
  `id` int(10) NOT NULL auto_increment,
  `fullname` varchar(30) NOT NULL,
  `List1` varchar(20) NOT NULL,
  `List2` varchar(20) NOT NULL,
  `List3` varchar(20) NOT NULL,
  `area` varchar(30) NOT NULL,
  `ownermobile` varchar(20) NOT NULL,
  `email` varchar(20) NOT NULL,
  `image_one` blob NOT NULL,
  `image_two` blob NOT NULL,
  `image_three` blob NOT NULL,
  `otherdetail` varchar(300) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=49 ;

私のhtmlフォームは次のようになっています。

<table width="60%"><form action="process.php" method="post" enctype="multipart/form-data" name="tripleplay" onsubmit="MM_validateForm('fullname','','R','area','','R','ownermobile','','RisNum','email','','RisEmail','otherdetail','','R');return document.MM_returnValue">
  <tr>
    <td width="44%">Full Name : </td>
    <td width="56%"><input size="25" type="text" name="fullname" id="fullname" /></td>
  </tr>
  <tr>
    <td valign="top">Rental Type:</td>


    <td>

    <select name='List1' id="List1"     onchange="fillSelect(this.value,this.form['List2'])">
<option selected>Make a Selection</option>
</select>
<br /><br />
<select name='List2' id="List2" onchange="fillSelect(this.value,this.form['List3'])">
  <option selected>Make a Selection</option>
</select><br /><br />
<select name='List3' id="List3" onchange="getValue(this.value,     this.form['List2'].value, 
this.form['List1'].value)">
      <option selected>Make a Selection</option>
    </select>
</td>
  </tr>
  <tr>
    <td>Area : </td>
    <td><input size="25" type="text" name="area" id="area" />
  sq.ft.</td>
    </tr>
  <tr>
    <td>Owner Mobile / Landline</td>
    <td><input size="25" type="text" name="ownermobile" id="ownermobile" /></td>
  </tr>
  <tr>
    <td><p>E-mail</p></td>
    <td><input size="25" type="text" name="email" id="email" /></td>
  </tr>
  <tr>
    <td valign="top">Pictures of Property</td>
     <td>

       <input type="file" name="image_one" id="image_one" />


        <input type="file" name="image_two" id="image_two" />


        <input type="file" name="image_three" id="image_three" />
    </td>
  </tr>


  <tr>
    <td valign="top">Other details you would like to share about your property:</td>
    <td><textarea size="25" name="otherdetail" id="otherdetail" cols="45" rows="5">    </textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" id="submit" value="Submit" /></td>
  </tr>
</form>
</table>

PHPでの私の処理フォームは次のようになります

<?
if( $_POST )
{
  $con =     mysql_connect("","","");

  if (!$con)
  {
    die('Could not connect: ' . mysql_error());
  }

  mysql_select_db("vkrental", $con);

  $users_fullname = $_POST['fullname'];
  $users_area = $_POST['area'];
  $users_List1 = $_POST['List1'];
  $users_List2 = $_POST['List2'];
  $users_List3 = $_POST['List3'];
  $users_ownermobile = $_POST['ownermobile'];
  $users_email = $_POST['email'];
  $users_image_one = $_POST['image_one'];
  $users_image_two = $_POST['image_two'];
  $users_image_three = $_POST['image_three'];
  $users_otherdetail = $_POST['otherdetail'];


  $users_fullname = htmlspecialchars($users_fullname);
  $users_area = htmlspecialchars($users_area);
  $users_List1 = htmlspecialchars($users_List1);
  $users_List2 = htmlspecialchars($users_List2);
  $users_List3 = htmlspecialchars($users_List3);
  $users_ownermobile = htmlspecialchars($users_ownermobile);
  $users_email = htmlspecialchars($users_email);
  $users_image_one = htmlspecialchars($users_image_one);
  $users_image_two = htmlspecialchars($users_image_two);
  $users_image_three = htmlspecialchars($users_image_three);
  $users_otherdetail = htmlspecialchars($users_otherdetail);




  $query = "
  INSERT INTO `vkrental`.`Owner_detail` (

`fullname` ,
`area` ,
`List1` ,
`List2` ,
`List3` ,

`ownermobile` ,
`email` ,
`image_one` ,
`image_two` ,
`image_three` ,
`otherdetail`
)
VALUES ( '$users_fullname',
        '$users_area', '$users_List1','$users_List2','$users_List3',     '$users_ownermobile', '$users_email',     '$users_image_one','$users_image_two','$users_image_three', '$users_otherdetail'
        );";

  mysql_query($query);

  echo "<h2>Success.</h2>";

   mysql_close($con);
}
 ?>

私の問題は、正常に保存されたmysqlデータベースから画像を挿入するときです。しかし、HTMLフォームからそれを行っているとき、画像は保存されていません。データ(テキスト)のみを保存しています。

フォームの実際のエラーが何であるかわかりません。

4

2 に答える 2

0

htmlspecialchars()バイナリデータに使用するとどうなるのだろうか。

$users_image_one = htmlspecialchars($users_image_one);
$users_image_two = htmlspecialchars($users_image_two);

[編集:]

htmlspecialchars()テキスト データの特殊文字を保持するために使用されます。ただし、バイナリデータに使用すると、すべてが台無しになります。

自分でトラブルシューティングします。

最初に画像のみをアップロードするだけで、問題を見つけることができます。

このリンクもご覧ください:POSTメソッドを使用したファイルのアップロード

于 2013-06-15T10:49:58.610 に答える
-1

エラーがあるようには聞こえません。. . .

実際の画像をデータベースに保存するのではなく、名前または画像への参照のみを保存します

例: product_one.jpg

次に、それを表示したいときは、次のようにします

<img src=" <?php $echo \images\$users_image_one ?> ">
于 2013-06-15T10:46:16.760 に答える