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

标签 javascript php jquery mysql json

我需要一些关于我的大学作业的明智建议。 我的工作是使用 Phonegap 制作年鉴,这是我第一次使用 AJAX、JSON 和 JQuery Mobile。

我尝试从我的 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 注入(inject)攻击(或多或少)

  • 您使用的是哪个 PHP 版本?在非常旧的版本中,例如 5.4 及之前的版本,有一个开关可以在 get/post/cookie 数据中的“邪恶”字符之前神奇地添加反斜杠。请参阅magic quotes configuration了解更多信息

关于javascript - 无法使用 JSON 和 PHP 将 URL 链接存储到 MySQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993885/

相关文章:

javascript - 使用 angular 从指令中的 API 调用更新组件数据

jquery - Knockout Js - ko.utils.arrayFirst 不起作用

javascript - 使用 Firefox 控制台检查文本是否已添加到元素

PHP检查Incoming Request是否为JSON类型

php - Symfony 路由组件不路由 url

javascript - 如何修复无限滚动表?

javascript - 如何检查文本溢出:ellipsis is supported in browser

javascript - DOM 元素.最近的 child

javascript - 第一级后内容导航中断

php - Ajax .done(function(feedback) 不考虑 "feedback"部分