2016-09-15 6 views
0

ファイルとデータをキャプチャしてPHPファイルにアップロードしようとしています。誰かが多分私が間違ってやっていることを見ることができるなら、私は何が間違っているのか分かりません。それは何の問題ファイル/画像をアップロードしていないだろうが、私は、テキスト入力を追加するとき、私はhtmlファイルとテキストデータをPHPに送信

<iframe name="my_iframe" src="" id="my_iframe"></iframe> 
<form action="http://www.********/upload11.php" method="post" enctype="multipart/form-data" target="my_iframe"> 
<input type="file" input id="input" name="image" /> 
<input type="text" name="Description" value="Image of Time"/> 
<div> 
<input type="submit" value="Send"> 
</div> 
</form> 

upload11.php裁判にテンプレートとして使用されているかどうか、それはここでは、動作しませんされて投稿する

<?php 
$upload_image = $_FILES["image"][ "name" ]; 
$folder = "images/"; 
move_uploaded_file($_FILES["image"]["tmp_name"], "$folder".$_FILES["image"]["name"]);; 
$file = 'images/'.$_FILES["image"]["name"]; 
$uploadimage = $folder.$_FILES["image"]["name"]; 
$newname = $_FILES["image"]["name"]; 

$resize_image = $folder.$newname; 
list($width,$height) = getimagesize($uploadimage); 
$newwidth = 550; 
$newheight = 350; 
$thumb = imagecreatetruecolor($newwidth, $newheight); 
$source = imagecreatefromjpeg($resize_image); 
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
imagejpeg($thumb, $resize_image, 100); 
$out_image=addslashes(file_get_contents($resize_image)); 
$msg = ''; 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
$a = ('" alt="" />'); 
$b = ("'<img src=\"\https://www.******/images/".$_FILES['image']['name']."$a'"); 
$Description = $_POST['Description']; 
$image = $_FILES['image']['tmp_name']; 
$img = file_get_contents($image); 
$con = mysqli_connect('***','******','******','********'); 
$sql = "INSERT INTO links (hyper_links, link) VALUES ($b, $Description)"; 

$stmt = mysqli_prepare($con,$sql); 

mysqli_stmt_bind_param($stmt, "s",$img); 
mysqli_stmt_execute($stmt); 

$check = mysqli_stmt_affected_rows($stmt); 
if($check==1){ 
    $msg = 'Successfullly UPloaded'; 
}else{ 
    $msg = 'Could not upload'; 
} 
mysqli_close($con); 
} 
?> 
<?php 
echo $msg; 
?> 
+0

** error_reporting(E_ALL); **を追加して、画像のアップロード中にエラーを確認してください。 – Sunny

+0

私は私のPHPファイルに追加しましたが、投稿すると私はちょうどアップロードすることができませんでした – INOH

+0

私はここでこの質問への私の答えを見てお勧めします:[完全な安全な画像のアップロードスクリプト](http://stackoverflow.com/questions/38509334/full-secure-image-upload-script/38712921#38712921)これは、アップロードスクリプトとセキュリティについて多くのことを教え、最後に完全に動作するスクリプトを提供します。フォームにテキストフィールドを簡単に追加して、PHPでそれを処理することができます。これはまったく問題ではありません。 – icecub

答えて

1

私は半分のスクリプトがすべてのエラーとunnessesary変数を取り除くために書き換えてきました。これはそれを動作させるはずです。そうでない場合、それは、少なくとも何が起こっているかについての便利な情報を与える必要があります:

<?php 

if(!empty($_FILES["image"])){ 
    $imgName = $_FILES["image"]["name"]; 
    $imgTmpName = $_FILES['image']['tmp_name']; 
    $upload_dir = "images/"; 

    if(move_uploaded_file($imgTmpName, $folder . basename($imgName))){ 
     $imgPath = $upload_dir . $imgName; 

     list($imgWidth, $imgHeight) = getimagesize($imgPath); 

     $newImgWidth = 550; 
     $newImgHeight = 350; 

     $thumbnailImg = imagecreatetruecolor($newImgWidth, $newImgHeight); 
     $originalImg = imagecreatefromjpeg($imgPath); 
     imagecopyresized($thumbnailImg, $originalImg, 0, 0, 0, 0, $newImgWidth, $newImgHeight, $imgWidth, $imgHeight); 

     imagejpeg($thumbnailImg, $imgPath, 100); 

     $mysqli = new mysqli("localhost", "user", "password", "database"); 

     if ($mysqli->connect_errno) { 
      echo "Failed to connect to MySQL: " . $mysqli->connect_error; 
     } 

     if($stmt = $mysqli->prepare("INSERT INTO links (hyper_links, link) VALUES (?, ?)")){ 
      if($stmt->bind_param("ss", $html, $descryption)){ 

       $html = "<img src=\"https://www.******/". $imgPath ."\">"; 
       $descryption = $_POST['Description']; 

       if($stmt->execute()){ 
        if($stmt->affected_rows > 0){ 
         echo "Successfully Uploaded"; 

         $stmt->close(); 
         $mysqli->close(); 
        } else { 
         echo "Could not upload"; 
        } 
       } else { 
        die("Execute() failed: " . htmlspecialchars($stmt->error)); 
       } 
      } else { 
       die("Bind_param() failed: " . htmlspecialchars($stmt->error)); 
      } 
     } else { 
      die("Prepare() failed: " . htmlspecialchars($stmt->error)); 
     } 
    } else { 
     die("Unable to move uploaded file to upload folder."); 
    } 
} else { 
    die("You did not select a file to upload."); 
} 

?> 

をあなたが今持っているもののバックアップを作成し、これをテストします。それがどうなったか教えてください。

+0

あなたのコードを実行しようとしましたが、「致命的なエラー:/ data/9/3/62/77/3714077/user/4129685/htdocs/mysqli_stmt :: affected_rows() upload01.php on line 35' – INOH

+0

これが問題なのかどうかわかりませんが、私はsqli以外のmysqlを使っています – INOH

+1

@INOH小さな間違いをしました。そのエラーは今修正する必要があります。あなたの質問に:いいえそれは問題ではありません。 – icecub

1

「」$ bと$説明で

$sql = "INSERT INTO links (hyper_links, link) VALUES ($b, $Description)"; 

をあなたはを追加するのを忘れて、あなたのコードを参照してください。それは、この

ようにする必要があります
$sql = "INSERT INTO links (hyper_links, link) VALUES ('$b', '$Description')"; 

これは動作します希望:)

+1

それはできません。彼はセレクタを一切使わずにクエリを準備しています。そして、彼は、まったく意味のないパラメータをバインドしようとしています。それ以外は、スクリプト全体がエラーでいっぱいです。ファイルを移動するときに 'basename()'を使用しないのと同じように..ダブル ';;'行などで。 – icecub

+1

Btw:クエリを作成するときに引用符を使用しないのは、実際には良いことです:P – icecub

+0

いいえ!私はこの@icecubに同意しなかった。クエリを準備中に引用符を追加するのを忘れたとき、私のPHPファイルも動作しません。 – Sunny

関連する問題