ユーザーがデータベースにURLを挿入し、データベースの内容を表示できるようにする作業コードがあります。
ajaxを使用してデータベースに追加するときに発生する問題は、URLに「&」という文字が含まれている場合、その文字の直前でURLが切り取られることです。
1. http://www.arisroyo.com/wp-content/uploads/2012/07/php.png
2. http://www.arisroyo.com/wp-content/uploads/2012/07/test&123.png
データベースにURL1を追加する場合は問題ありませんが、データベースにURL 2を追加する場合は、これをデータベースに追加します。
http://www.arisroyo.com/wp-content/uploads/2012/07/test
「&」記号の後はすべて無視されます。問題は、すべてのURLが「&」記号を使用することです。
これは、ウェブサイトからユーザーからURLを取得するためにAJAXで使用しているコードです。
var nocache = 0;
function insert() {
// Optional: Show a waiting message in the layer with ID login_response
document.getElementById('insert_response').innerHTML = "Just a second..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var site_url= encodeURI(document.getElementById('site_url').value);
// Set te random number to add to URL request
nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'insert.php?site_url='+site_url+'&nocache = '+nocache);
http.onreadystatechange = insertReply;
http.send(null);
}
function insertReply() {
if(http.readyState == 4){
var response = http.responseText;
// else if login is ok show a message: "Site added+ site URL".
document.getElementById('insert_response').innerHTML = 'Site added:'+response;
}
}
私はajaxなしでアドインmySQLを使用してきましたが、URLと「&」記号に問題はありませんでした。この問題の原因を知りたいのですが。