2012-05-06 13 views
0

「キャンセル」ボタンがあります。ユーザーがクリックすると、ソースがリセットされ、iframeが削除され、ファイルがファイルにアップロードされません。ユーザーが「キャンセル」ボタンをクリックした後、これはうまくいきます。キャンセルボタンをクリックしたときにデータベース行が削除されない

しかし、私が持っている問題は、ユーザーが「キャンセル」ボタンをクリックした後でも、データベースに行を挿入したくないということです。しかし、私は、ファイルがアップロードされている場合、ファイル名を表示している行をデータベースに挿入してから、「キャンセル」ボタンをクリックすると、「キャンセル」 .php "ページで行を削除します。技術的には行が挿入され、「キャンセル」ボタンがクリックされると削除されます。

問題は、行を削除していないということです。行を挿入するだけです。データベースの行を削除するにはどうすればよいですか?以下は

function startImageUpload(imageuploadform){ 

$(".imageCancel").on("click", function(event) { 

       $("iframe[name='upload_target']").attr("src", "javascript:'<html></html>'"); 
      return stopImageUpload(); 

    jQuery.ajax("cancelimage.php") 

});  
     return true; 
} 

は、それが挿入され、アップロードスクリプト(imageupload.php)を含むコードである:それはアップロードを開始し、キャンセルボタンの機能が紹介されている場所の下

はstartImageUpload()関数ですデータベースに行:最終的には、以下の

<?php 

session_start(); 


$username="xxx"; 
$password="xxx"; 
$database="xxx"; 

mysql_connect('localhost',$username,$password); 

mysql_select_db($database) or die("Unable to select database"); 

$result = 0; 

     move_uploaded_file($_FILES["fileImage"]["tmp_name"], 
     "ImageFiles/" . $_FILES["fileImage"]["name"]); 
     $result = 1; 

     $imagesql = "INSERT INTO Image (ImageFile) 
     VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')"; 

mysql_query($imagesql); 

     } 

     mysql_close(); 

?> 

は、データベースから行を削除すると仮定されcancelimage.phpページです:

<?php 

$username="xxx"; 
$password="xxx"; 
$database="xxx"; 

mysql_connect('localhost',$username,$password); 

mysql_select_db($database) or die("Unable to select database"); 

    echo "File Upload was Canceled"; 

     $imagecancelsql = "DELETE FROM Image 
     WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($_FILES['fileImage']['name'])."'"; 

    mysql_query($imagecancelsql); 

    mysql_close(); 


?> 

答えて

2

cancelimage.phpを呼び出すと、$_FILES['fileImage']['name']には名前が含まれなくなります。アップロードされるページにはファイル名のみが含まれています。クッキー、セッションなどに名前を格納する必要があります。


編集:

これまでクライアントからの入力を信用しない:

move_uploaded_file($_FILES["fileImage"]["tmp_name"], "ImageFiles/" . $_FILES["fileImage"]["name"]);

を私は、ファイル名 '../imageupload.php' で何かをアップロードした場合。あなたのサイトは壊れています;)さらに悪いことに、あらゆる種類の不快なコードを注入することができます。

+0

またはPOST/GET経由で渡す –

0

return stopImageUpload();

停止イメージが処理され、実行が戻ってくるようなステートメントが読み込まれます。次の文jQuery.ajax("cancelimage.php")は呼び出されません。

関連する問題