无法使用JSON和PHP将URL链接存储到MySQL中

2019年1月29日 55点热度 0条评论 来源: Yosafat Vincent Saragih

我需要一些关于我的大学作业的明智建议。 我的工作是使用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来显示它到列表中,只显示损坏的图像图标。我认为将链接存储到数据库并将其解码时存在问题。

我需要帮助,因为我的任务必须在两天内完成。谢谢。


===========解决方案如下:

有许多可能的误差源的位置:

  • 你是不是将它们插入到数据库之前转义特殊字符。使用mysqli_prepare(http://php.net/manual/en/mysqli.prepare.php)。此外,这可以为您节省SQL注入攻击(或多或少)

  • 您正在使用哪个PHP版本?在真正的旧版本中,比如5.4和之前的版本,在get/post/cookie数据中的“邪恶”字符之前,有一个奇迹般地添加反斜杠的开关。见magic quotes configuration更多信息

    原文作者:Yosafat Vincent Saragih
    原文地址: https://stackoverflow.com/q/47993885
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。