繁体   English   中英

html get方法发送错误的URL

[英]html get Method sending wrong url

使用html get方法时,我的网址应显示为http://10.1.18.155/log_table_view.php?year=2017&frommonth=3&fromdate=3&tomonth=3&todate=3&query=ip&filter=like&search_text=10.1.17.20&subquery=&subfilter=&sub_search_text=

但它显示为

http://10.1.18.155/log_table_view.php?year=2017&frommonth=3&fromdate=3&tomonth=3&todate=3&query=ip&filter=like&search_text+=10.1.17.20&subquery=&subfilter=&sub_search_text=

在query = ip&filter = like&search_text + = 10.1.17.20之间有一个加号

这在获取数据时产生了问题

我的html表单代码就像

<form method="get" action="log_table_view.php" onsubmit="return       submit_query_form_check();" enctype="multipart/form-data">
                <label>Log for Year</label>
                <select id="year" name="year">
                    <option value="">Select Year</option>
                    <option value="2017">2017</option>
                    <option value="2016">2016</option>
                </select>
                <br>
                <label>From</label>
                <select id="frommonth" name="frommonth">
                    <option value="">Select Month</option>
                </select>
                <select id="fromdate" name="fromdate">
                    <option value="">Select Date</option>
                </select>
                <label>To</label>
                <select id="tomonth" name="tomonth">
                    <option value="">Select Month</option>
                </select>
                <select id="todate" name="todate">
                    <option value="">Select Date</option>
                </select>
                <br>
                <label>Query</label>
                <select name="query" id="query">
                    <option value="">Select</option>
                    <option value="time">Time</option>
                    <option value="ip">Server IP</option>
                    <option value="username">Username</option>
                    <option value="nasip">Nas IP</option>
                    <option value="groupname">Group name</option>
                    <option value="cmd">CMD</option>
                    <option value="callerid">Caller ID</option>
                    <option value="realname">Real Name</option>
                    <option value="network_device_group">Network Device Group</option>
                </select>
                <select name="filter" id="filter">
                    <option value="">filter</option>
                    <option value="like">%</option>
                    <option value="equal">=</option>
                </select>
                <input type="text" placeholder="Search Text" name="search_text" id="search_text">
                <label>AND</label>
                <label>Sub-Query</label>
                <select name="subquery" id="subquery">
                    <option value="">Select</option>
                    <option value="time">Time</option>
                    <option value="ip">Server IP</option>
                    <option value="username">Username</option>
                    <option value="nasip">Nas IP</option>
                    <option value="groupname">Group name</option>
                    <option value="cmd">CMD</option>
                    <option value="callerid">Caller ID</option>
                    <option value="realname">Real Name</option>
                    <option value="network_device_group">Network Device Group</option>
                </select>
                <select name="subfilter" id="subfilter">
                    <option value="">filter</option>
                    <option value="like">%</option>
                    <option value="equal">=</option>
                </select>
                <input type="text" placeholder="Search Text" name="sub_search_text" id="sub_search_text">
                <button type="submit" class="search">Search</button>
            </form>

function submit_query_form_check() {
    var year = $("#year").val();
    var frommonth = $('#frommonth').val();
    var fromdate = $('#fromdate').val();
    var tomonth = $('#tomonth').val();
    var todate = $('#todate').val();
    var query = $('#query').val();
    var subquery = $('#subquery').val();

    if (year == "") {
        alert("Year Not Selected");
        $("#year").focus();
        return false;
    }
    if (frommonth == "") {
        alert("From Month Not Selected");
        $("#frommonth").focus();
        return false;
    }
    if (fromdate == "") {
        alert("From date Not Selected");
        $("#fromdate").focus();
        return false;
    }
    if (tomonth == "") {
        alert("To Month Not Selected");
        $("#tomonth").focus();
        return false;
    }
    if (todate == "") {
        alert("To date Not Selected");
        $("#todate").focus();
        return false;
    }
    if (query != "") {
        var filter = $('#filter').val();
        var search_text = $('#search_text').val();
        if (filter == "") {
            alert("You have not selected any filter for query");
            $('#filter').focus();
            return false;
        } else if (search_text == "") {
            alert("You have not input any search text for query");
            $('#search_text').focus();
            return false;
        } else if (query == "groupname") {
            if (filter != "like") {
                alert("With Group Name Query You Can Only Use Like Filter");
                $('#filter').focus();
                return false;
            }
        }
    }
    if (subquery != "") {
        var subfilter = $('#subfilter').val();
        var sub_search_text = $('#sub_search_text').val();
        if (query == "") {
            alert("You have not selected any for query before using sub query");
            $('#query').focus();
            return false;
        }
        if (subfilter == "") {
            alert("You have not selected any sub filter for query");
            $('#subfilter').focus();
            return false;
        } else if (search_text == "") {
            alert("You have not input any sub search text for query");
            $('#sub_search_text').focus();
            return false;
        } else if (subquery == "groupname") {
            if (subfilter != "like") {
                alert("With Group Name Query You Can Only Use Like Filter");
                $('#subfilter').focus();
                return false;
            }
        }
    }

    return true;
}

在您实际将要调用的字符串传递给端点之前,只需使用str_replace方法将“ +”从URL中删除即可。

<?
$badUrl = "http://10.1.18.155/log_table_view.php?year=2017&frommonth=3&fromdate=3&tomonth=3&todate=3&query=ip&filter=like&search_text+=10.1.17.20&subquery=&subfilter=&sub_search_text=";
$goodUrl = str_replace('?/', '?', $badUrl);

然后您只需传递goodUrl来发出GET请求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM