我发现的主要问题是,只有在 html 嵌入代码中有 allowScriptAccess 的情况下,对外部信息的控制才能存在,像这样:
<param name="allowScriptAccess" value="always">
和
allowScriptAccess="always"
在标签中。
这对我来说有点晚了,因为我不能告诉嵌入我的播放器的每个人将这些行添加到他们的网站,但是从现在开始......无论如何,想要隐藏的人可以轻松地删除这些行。所以我重命名了 SWF 文件……现在进行远程嵌入的每个人都必须检查并获取新代码。
这是有效的 AS2 代码:
function geturlhttp() {
//urlPath = ExternalInterface.call("window.location.href.toString");
urlPath = ExternalInterface.call("eval","document.location.href");
//both work, try which one is bet
}
geturlhttp();
var lv:LoadVars = new LoadVars();
lv.var1 = urlPath;
lv.var2 = title; //an internal variable, the name of the file
lv.sendAndLoad("http://www.somesite.test/tracker.php",lv,"POST");
因此,跟踪仅适用于我自己的站点,而不是在 sql 中为空或“null”的外部远程嵌入站点。
这是我用 SQL 编写的 PHP 代码。我只是为插入做了一些东西,稍后我将进行展示和选择......
<?php
//POST needs to be secured, this is just a test :)
$url = $_POST['var1'];
$title = $_POST['var2'];
$dbhost = "127.0.0.1"; // almost always localhost.
$dbname = "x"; // Database Name, In our case, its news
$dbuser = "x"; // Database Username
$dbpass = "x"; // Databse Password
$connect = mysql_connect("$dbhost","$dbuser","$dbpass");// Connecting to Database
mysql_select_db($dbname) or die (mysql_error()); // Selecting Database
$sql= "INSERT INTO tablename (urlrow, titlerow) VALUES ('$url','$title')";
$result = mysql_query($sql);
?>