我根據(jù)本教程創(chuàng)建了一個(gè)簡單的ajax表單,并且一切正常。我唯一的問題是我無法弄清楚如何驗(yàn)證URL字段的數(shù)據(jù)。似乎即使我將字段類型設(shè)置為URL,但如果不是URL,它仍然會處理。有任何想法嗎?example.html<html><head><script>function ajax_post(){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create some variables we need to send to our PHP file var url = "my_parse_file.php"; var dlink = document.getElementById("dirtylink").value; var vars = "dlink="+dlink; hr.open("POST", url, true); // Set content type header information for sending url encoded variables in the request hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // Access the onreadystatechange event for the XMLHttpRequest object hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; document.getElementById("status").innerHTML = return_data; } } // Send the data to PHP now... and wait for response to update the status div hr.send(vars); // Actually execute the request document.getElementById("status").innerHTML = "processing...";}</script></head><body><h2>Ajax Post to PHP and Get Return Data</h2><input id="dlink" name="dlink" class="putfield" type="url" pattern="https?://.+" required name="website"><input name="myBtn" type="submit" value="Submit Data" onclick="ajax_post();"> <br><br><div id="status"></div></body></html>my_parse_file.php<?php echo 'Thank you '. $_POST['firstname'] . ' ' . $_POST['lastname'] . ', says the PHP file';?>
2 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用filter_var
帶有FILTER_VALIDATE_URL
標(biāo)志的方法,如下所示:
var_dump(filter_var($_POST['dlink'], FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
可選FILTER_FLAG_SCHEME_REQUIRED
標(biāo)志用于通過http / https驗(yàn)證輸入
關(guān)于您的代碼的另一條注釋:name
url輸入字段中有2個(gè)屬性。
因此,您可以$dlink
使用以下filter_input
方法設(shè)置var :
$dlink = filter_input(INPUT_POST, 'dlink', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED);
- 2 回答
- 0 關(guān)注
- 164 瀏覽
添加回答
舉報(bào)
0/150
提交
取消