Ben şu sorun var. Ben LSL kullanarak benim mysql veritabanını güncelleyerek ediyorum. Veritabanındaki bir tablonun olduğunu ve uygun ayarları (html form ve php ile test ettik) orada update.php olduğunu. Problem kayıt ama uygun alanlara herhangi bir değer eklenmiş olmasıdır.
string time;
string address;
string message;
integer num_left;
integer listen_handle;
default
{
state_entry()
{
llSay(0,"Touch to insert messages into DB");
}
touch_start(integer total_number)
{
key owner = llGetOwner();
string name = llKey2Name(owner);
integer strlength = llStringLength(message);
string url = "http://antima.freehostia.com/update.php?";
float timing = llGetTime(); //Instead getting, and then resetting the time, we could use llGetAndReset() to accomplish the same thing.
llResetTime();
//time = (string)timing;
time = "12:23";
address = "here";
message = "This is a test of url";
num_left = 12;
url += time;
url += address;
url += message;
url += "12";
//url += (string)num_left;
llHTTPRequest(url, [HTTP_METHOD, "POST"], "");
}
}
Update
Ben kodu değişti:
time = "12:23";
address = "here";
message = "This is a test of url";
num_left = 12;
url += "id" + id;
url += "&" + time;
url += "&" + address;
url += "&" + message;
url += "&" + "12";
ama ben POST kullanarak veri alma ile ilgili bir sorun var. PHP tarafında ben değerleri almak için bunu kullanın:
$data = $_POST;
$var = explode("&", $data);
$time = $var[1];
$address=$var[2];
$message=$var[3];
$num_left=$var[4];
Ancak hala bir şeyler yanlış (Ben PHP tarafında bu sefer düşünüyorum) ve başka boş kayıt eklenir. Ben sadece yazarak LSL tarafından sağlanan yanıtı test ettik:
$data = "http://antima.freehostia.com/update.php?&12:23&here&This is a test of url&12";
ve işe yaradı.
Nasıl alanların isimlerini belirterek ve $ veri değişkeni saklamak olmadan $ _POST itibaren bütün dize alabilirim? Belki de kolay bir şey, ama hiçbir şey bulamadı. PHP çoğu bazı formu ve form alanlarını kullanır.