2017-12-27 269 views
0

我需要一些關於我的大學作業的明智建議。 我的工作是使用Phonegap製作年鑑,這是我第一次使用AJAX,JSON和JQuery Mobile。無法使用JSON和PHP將URL鏈接存儲到MySQL中

將圖片上傳到數據庫後,我嘗試從我的Google雲端硬盤上傳url鏈接。

這裏我javascript代碼:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#insert").click(function() { 
      var nim = $("#NIM").val(); 
      var kesan = $("#kesan").val(); 
      var image = $('#image').val(); 
      var nama = $("#nama").val(); 
      var prodi = $("#prodi option:selected").text(); 
      var angkatan = $("#angkatan").val(); 
      var dataString = "nim=" + nim + "&nama=" + nama + "&prodi=" + prodi + "&angkatan=" + angkatan +"&kesan=" + kesan + "&image=" + image + "&insert="; 
      if ($.trim(nim).length > 0 & $.trim(kesan).length > 0 & $.trim(nama).length > 0 & $.trim(prodi).length > 0 & $.trim(angkatan).length > 0& $.trim(image).length > 0) { 
       $.ajax({ 
        type: "POST", 
        url: "http://localhost/perpusub/daftar.php", 
        data: dataString, 
        crossDomain: true, 
        cache: false, 
        beforeSend: function() { 
         $("#insert").val('Memasukkan...'); 
        }, 
        success: function(data) { 
         if (data == "success") { 
          alert("upload buku tahunan berhasil"); 
          location="index.html"; 
          $("#insert").val('submit'); 
         } else { 
          alert("Mohon maaf tampaknya anda sudah pernah mengupload buku tahunan sebelumnya.\n Silahkan hubungi admin web ini."); 
         } 
        } 
       }); 
      } 
      return false; 
     }); 
    }); 
    </script> 

這是我的形式上傳的圖片,並存儲每個學生的任何信息:

<body> 
    <div id="head1"> 
     Buat Halaman <br>Buku Tahunan Baru<br> 
     <a href="index.html" class="button button-clear" id=head>Keluar</a> 
    </div> 
    <br/> 
    <br/> 
    <div class="list"> 
     <input type="hidden" id="id" value="" /> 
     <div class="item"> 
      <label>NIM</label> 
      <input type="text" id="NIM" value="" /> 
     </div> 
     <div class="item"> 
      <label>Nama</label> 
      <input type="text" id="nama" value="" /> 
     </div> 
     <div class="item"> 
      <label>Prodi</label> 
        <select id="prodi"> 
         <option value="TIF" selected>TEKNIK INFORMATIKA</option> 
         <option value="SI">SISTEM INFORMASI</option> 
         <option value="TKOM">TEKNIK KOMPUTER</option> 
         <option value="PTI">PENDIDIKAN TEKNOLOGI INFORMASI</option> 
         <option value="TI">TEKNIK INFORMASI</option> 
        </select> 
     </div> 
     <div class="item"> 
      <label>Angkatan</label> 
      <input type="text" id="angkatan" value="" /> 
     </div> 
       <div class="item"> 
      <label>Kesan Pesan</label> 
      <input type="text" id="kesan" value="" /> 
     </div> 
     <div class="item"> 
     <label>Link File Foto<br></label> 
      <input type="text" id="image" value="" /> 
     </div> 
     <div class="item"> 
      <input type="submit" id="insert" class="button button-block" value="DAFTAR" /> 
     </div> 

    </div> 
</body> 

</html> 

這是PHP代碼,將其存儲到數據庫。

<?php 
include "db.php"; 
if(isset($_POST['insert'])) 
{ 
$nim=$_POST['nim']; 
$kesan=$_POST['kesan']; 
$nama=$_POST['nama']; 
$prodi=$_POST['prodi']; 
$angkatan=$_POST['angkatan']; 
$image = $_POST['image']; 

    $qa=mysqli_query($con, "INSERT INTO `anggota`(`NIM`, `nama`, `prodi`, `angkatan`, `kesanPesan`, `photo`) VALUES ('$nim','$nama','$prodi','$angkatan','$kesan','$foto')"); 
if($qa){ 
     echo "success"; 
} 

else{ 
    echo "error"; 
} 
} 


} 
?> 

,這是JSON解碼器年鑑頁:

<script type="text/javascript"> 
$(document).ready(function() { 
    var url = "http://localhost/php-code/json.php"; 
    $.getJSON(url, function(result) { 
     console.log(result); 
     $.each(result, function(i, field) { 
      var id = field.id; 
      var title = field.title; 
      var duration = field.duration; 
      var price = field.price; 
      $("#listview").append("<a class='item' href='form.html?id=" + id + "&title=" + title + "&duration=" + duration + "&price=" + price + "'><span class='item-note'>$" + price + "</span><h2>" + title + " </h2><p>" + duration + "</p></a>"); 
     }); 
    }); 
}); 
</script> 

但是,當我解碼JSON來顯示它到列表中,只顯示損壞的圖像圖標。我認爲將鏈接存儲到數據庫並將其解碼時存在問題。

我需要幫助,因爲我的任務必須在兩天內完成。謝謝。

+0

更新:我得到了新的證據,爲什麼我的圖片不能正常工作,因爲JSON不能只解碼URL。當有反斜槓(/)時,它會變成像這樣(\ /)。有誰知道如何解決它? –

回答

0

有許多可能的誤差源的位置:

  • 你是不是將它們插入到數據庫之前轉義特殊字符。使用mysqli_prepare(http://php.net/manual/en/mysqli.prepare.php)。此外,這可以爲您節省SQL注入攻擊(或多或少)

  • 您正在使用哪個PHP版本?在真正的舊版本中,比如5.4和之前的版本,在get/post/cookie數據中的「邪惡」字符之前,有一個奇蹟般地添加反斜槓的開關。見magic quotes configuration更多信息

+0

我決定不使用準備語法故意分配截止日期。我的PHP版本是最新的。 –