我希望也许有人可以对我很难决定如何解决的问题提供一些见解。
我有一个相当简单的 Flash 应用程序,用户可以在连接时快速创建一个用户名,并且该用户名是在 Flash swf 内创建的。
现在,我有一个 cron 作业,每十分钟删除一次不活动的用户名(在我的 mysql 数据库上,这些用户名都存储在网上,并由其他人访问),这很好。但如果一群人同时退出,它仍然会变得混乱,在 cron 作业清除他们之前仍然有 10 分钟的时间窗口。
用户可以选择在 Flash 应用程序中单击“注销”,这很好,而且效果很好。但当然,许多人选择不单击“注销”,他们只是单击浏览器 x。
我已经研究过 onbeforeunload 和 jquery 的 .unload 但我仍然需要一种方法来获取 Flash 中的用户名变量到 HTML 中,然后使用 php 脚本运行删除用户名 mysql 查询。
有更简单的解决方案吗?
如果没有,关于如何在用户创建用户名后将用户名变量传递给 html 以保留它,以便它可以参与运行 php 脚本的 .unload 函数,有什么见解吗?
编辑::::: 也许有一种方法可以用 php 创建一个唯一的数字字符串,然后将该 var 传递给 flash 以包含在 mysql 行中,因为我已经有了该 var,因为它是在 html 端创建的,就这样卸载时,是否删除具有该唯一 id 的行?
如果有人认为这个想法将是最好的方法,如果我使用类似 md5(uniqid(microtime()) . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']) 的东西来制作随机 iD 我怎么能将结果存储在一个 var 中,我可以将其放入 flash vars 参数中,然后再次放入 jquery unload 或 javascript onbeforeunload 中(如果这样会更好)。我只是更熟悉jquery
实际上,您可以调用ExternalInterface 命令来填充来自SWF 组件的HTML 中的隐藏字段。
if (ExternalInterface.available)
{
var js:String = "yourJavaScriptFunction";
var valToPass:String;
ExternalInterface.call(js(valToPass));
}
在 HTML 页面中,编写一个 javascript 函数:
<script language="javascript" type="text/javascript">
function yourJavaScriptFunction(valToPass)
{
document.getElementById('yourHiddenField').value = valToPass;
}
从页面触发的卸载事件中,您可以访问从 SWF 传递的值。
请注意,一旦获得用户的登录凭据,您就可以从 SWF 调用 javascript 函数。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)