2017-03-25 11 views
1

編集: 問題は、貢献者のおかげでエラー/通知のスプラットを引き起こすことはもうありませんが、データはまだMYSQLデータベースに投稿されていません、テーブルは空ですスクリプトはそれがアップロードされていると言っています。ここでPHP/MYSQLIの問題

コードです:

<?php 
if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $ogrod_id = trim(sql_safe($_POST['ogrod_id'])); 
    $doborsadzenieroslin = trim(sql_safe($_POST['doborsadzenieroslin'])); 
    $nawierzchnia = trim(sql_safe($_POST['nawierzchnia'])); 
    $systnawadn = trim(sql_safe($_POST['systnawadn'])); 
    $malaarchitektura = trim(sql_safe($_POST['malaarchitektura'])); 
    $oczkawodne = trim(sql_safe($_POST['oczkawodne'])); 
    $trawniki = trim(sql_safe($_POST['trawniki'])); 
    $oswietlenie = trim(sql_safe($_POST['oswietlenie'])); 
    $tarasy = trim(sql_safe($_POST['tarasy'])); 
    $pielegnacja = trim(sql_safe($_POST['pielegnacja'])); 
    $opis = trim(sql_safe($_POST['opis'])); 

    if ($opis === '') { 
     $opis = '(brak opisu)'; 
    } 

    if ($password !== 'jeeus') { 
      $msg = 'Błąd - błędne hasło wgrywania.'; 
    } else { 
     if (isset($_FILES['image'])) { 
      $image = $_FILES['image']; 
      @list(, , $imtype,) = getimagesize($_FILES['image']['tmp_name']); 

      if ($imtype === 3) 
       $ext="png"; 
      elseif ($imtype === 2) 
       $ext="jpeg"; 
      elseif ($imtype === 1) 
       $ext="gif"; 
      else 
       $msg = 'Błąd - nieznany format pliku.'; 

      if (!isset($msg)) { 
       $data = file_get_contents($_FILES['image']['tmp_name']); 
       $data = mysqli_real_escape_string($con, $data); 

       mysqli_query($con, "INSERT INTO realizacje (ext,opis,image,ogrod_id,doborsadzenierosli,nawierzchnia,systnawadn,malaarchitektura,oczkawodne,trawniki,oswietlenie,tarasy,pielegnacja) VALUES ('$ext','$opis','$data','$ogrod_id','$doborsadzenieroslin','$nawierzchnia','$systnawadn','$malaarchitektura','$oczkawodne','$trawniki','$oswietlenie','$tarasy','$pielegnacja')"); 

       $msg = 'Sukces - obraz został wgrany na serwer.'; 
      } 
     } else if (isset($_GET['ogrod_id'])) { 
      $msg = 'Błąd - plik nie został wgrany.'; 
     } 
    } 
} 
?> 

ここでのnameプロパティと一緒に画像のためのHTMLマークアップです。また

、フォーム全体のHTML部分:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data"> 
    <div id="filtry"> 
     <div class="realizacjedodaj"> 
      <b>Czy na zdjęciu znajduje/ą się <br>wykonany/e przez firmę:</b><br><br> 
      <label for="doborsadzenieroslin">dobór/sadzenie roślin?</label><br /> 
      <input type="radio" name="doborsadzenieroslin" value="0" checked> Tak 
      <input type="radio" name="doborsadzenieroslin" value="1"> Nie<br><br> 
      <label for="nawierzchnia">nawierzchnia?</label><br /> 
      <input type="radio" name="nawierzchnia" value="0" checked> Tak 
      <input type="radio" name="nawierzchnia" value="1"> Nie<br><br> 
      <label for="systnawadn">system nawadniający?</label><br /> 
      <input type="radio" name="systnawadn" value="0" checked> Tak 
      <input type="radio" name="systnawadn" value="1"> Nie<br><br> 
      <label for="malaarchitektura">mała architektura?</label><br /> 
      <input type="radio" name="malaarchitektura" value="0" checked> Tak 
      <input type="radio" name="malaarchitektura" value="1"> Nie<br><br> 
     </div> 
     <div class="realizacjedodaj"> 
      <label for="oczkawodne">oczko wodne?</label><br /> 
      <input type="radio" name="oczkawodne" value="0" checked> Tak 
      <input type="radio" name="oczkawodne" value="1"> Nie<br><br> 
      <label for="trawniki">trawnik?</label><br /> 
      <input type="radio" name="trawniki" value="0" checked> Tak 
      <input type="radio" name="trawniki" value="1"> Nie<br><br> 
      <label for="oswietlenie">oswietlenie?</label><br /> 
      <input type="radio" name="oswietlenie" value="0" checked> Tak 
      <input type="radio" name="oswietlenie" value="1"> Nie<br><br> 
      <label for="tarasy">taras?</label><br /> 
      <input type="radio" name="tarasy" value="0" checked> Tak 
      <input type="radio" name="tarasy" value="1"> Nie<br><br> 
      <label for="pielegnacja">pielęgnacja ogrodu?</label><br /> 
      <input type="radio" name="pielegnacja" value="0" checked> Tak 
      <input type="radio" name="pielegnacja" value="1"> Nie<br><br> 
     </div> 
    </div> 
    <div id="listaOgrodow"> 
     <div class="realizacjedodaj"> 
      <label for="ogrod_id"><b>Ogród:</b></label><br /> 
      <?php 
      $ogrodysql = "SELECT id_ogrodu, nazwa FROM ogrody"; 
      $result = mysqli_query($con, $ogrodysql); 

      if (mysqli_num_rows($result) > 0) { 
       while ($row = mysqli_fetch_assoc($result)) { 
        echo "#" . $row["id_ogrodu"]. " " . $row["nazwa"]. "<input type='radio' name='ogrod_id' value=" .$row["id_ogrodu"]." <br>"; 
       } 
      } else { 
       echo "0 results"; 
      } 
      ?> 
      <br /><br /><br /> 
     </div> 
    </div> 
    <div id="resztaDanych" class="realizacjedodaj"> 
     <br><br> 
     <label for="image">Zdjęcie realizacji:</label><br /> 
     <input type="file" name="image" id="image"/><br /><br /><br /> 

     <label for="opis">Opis (opcjonalnie):</label><br /> 
     <textarea rows="4" cols="50" name="opis" id="opis"></textarea><br /><br /><br /> 

     <input type="submit" value="Wgraj"/> 
    </div> 
</form> 

答えて

0

あなたがイメージフォームでを名前付き要素(最も可能性の高いファイルアップロード要素)を持っていますか?そうでない場合は追加してください。

+0

更新Qを使用し、また$_FILE

とは異なっている、私もROFL –

+1

ああ、その後、確認してくださいここで失敗した可能性がありますアップロードするアイテムの$ _FILES連想配列内にある場合。ヒント: '$ _FILES [" image "]'。 – Spectarion

+0

いいえ、実際には、それはフォームからすべてのデータを収集するようだが、ファイルアップロードからのイメージです。 JSは、私が言ったように画像以外のすべてを集めるように、doborsadzenieroslin = 0&nawierzchnia = 0&systnawadn = 0&malaarchitektura = 0&oczkawodne = 0&trawniki = 0&oswietlenie = 0&tarasy = 0&pielegnacja = 0&ogrod_id = 1&opis = f4r34。 –

1

あなたのコードで複数の問題を持っているように見える:

第一は、MySQLに挿入する適切な簡単な方法は次のとおりです。

INSERT INTO table_name (field1,field2) VALUES ('$value1','$value2') 

ませ

INSERT INTO {$table} SET ext='$ext', opis='$opis', 

第二、されていますimageという名前の通常のフォームのフィールドを投稿しようとしていますか?

trim(sql_safe($_POST['image'])); 

$_POSTこのフォーム要素、良い予告のHTMLマークアップと

if (isset($_FILE['image'])) { 
    $image= $_FILE['image']; 
} 
+0

これまで、私は、おじいさんのおかげで$ _FILESの問題に気付きました。私はコードを作ることはできませんが、それでもエラーのないコードはmysql DBにデータを入れません、私はちょっと挿入して、それが今私を助けてくれるかどうかを見てみようよ –

+0

unfortunatellyこれはまだmysql dbに投稿されないのはなぜなのでしょうか?不正なアップデートコードを –

+0

[enable error display](http://stackoverflow.com/q/845021/7735285)に追加し、エラーログを提供し、データベースフィールドのデータ型をチェックし、フォームアクションを適切なPHPファイルに投稿します。 – wpcoder

関連する問題