结果从Flash更新数据库

时间:2015-12-09 05:37:34

标签: php flash actionscript-2

我想用flash(文本输入)更新数据库

这是我的PHP代码

<?php

    mysql_pconnect ("localhost", "root", "");
    mysql_select_db ("adaptasi");

    $isi = isset($_POST['OutData']);

    $query2 = "UPDATE materi SET isi='$isi' WHERE id = 1";

    $result2=mysql_query($query2) or die("Query Failed : ".mysql_error());

?>

这是我的动作2

function SubmitData() 
{ 
    trace("Sending"); 

    var OutData = new LoadVars(); 
    text_morfologi.text = OutData.OutData; 

    filepath = "http://localhost/adaptasi/";
    OutData.sendAndLoad(filepath + "editmorfologi.php", OutData, "POST");

} 

btnsave.onRelease = function() 
{ 
    SubmitData(); 
    btnedit.visible = true;
    btnsave.visible = false;
}; 

但是数据库中的结果是'1'而不是我在文本字段中输入的文本。 感谢

1 个答案:

答案 0 :(得分:2)

您的代码中存在一些问题:

ActionScript 2:

要使用LoadVars对象发送数据,您必须将其作为其属性附加到该对象,如果您希望从服务器端脚本接收响应,则可以使用LoadVars.sendAndLoad()但如果您只想在不等待任何响应的情况下发送该数据,您可以使用LoadVars.send()

假设您将使用sendAndLoad()函数,因此您的代码可以是这样的:

var url:String = 'http://www.example.com/update.php';

// the LoadVars object that will receive (load) a response from the server
var receiver:LoadVars = new LoadVars();
    receiver.onLoad = function(success:Boolean)
    {
        if (success) {
            trace(receiver.response);    // gives for example : update successful
        } else {
            trace('error');
        }
    }

// the LoadVars object which will send (post) some data to the server
var sender:LoadVars = new LoadVars();
    sender.id = txt_id.text;
    sender.name = txt_name.text;
    sender.sendAndLoad(url, receiver);    // we don't set the method to POST because that's its default value

PHP:

正如许多评论中所提到的,PHP的isset()函数用于验证变量是否已设置且不是NULL并且它返回一个布尔值(TRUE的{​​{1}}),其中是FALSE1提供TRUEFALSE提供``(空字符串)。

在您的情况下,根据您的说法,我认为,因为变量$_POST['OutData']显然已设置,isset($_POST['OutData'])为true,将$isi的值设置为{{1所以你会得到:

1

但是根据你发布的代码,我认为你应该得到:

$query2 = "UPDATE materi SET isi='1' WHERE id = 1";

现在回到我们当前的例子,我们将获得AS2脚本发送的两个POST变量(id和name)来更新数据库,然后在数据成功更新后返回响应:

$query2 = "UPDATE materi SET isi='' WHERE id = 1";

当然,我在这里尝试根据您当前的代码给出一个非常简单的工作代码示例。您应该知道,对于您的PHP方面,PHP 5.5.0中不推荐使用“mysql”扩展,并且已在PHP 7中删除,因此您应该考虑使用casting (converting) to a string"mysqli"扩展,了解更多信息看看"PDO",也不要忘记heresanitizevalidate任何用户的数据,......对于ActionScript方面,也许它就是是时候开始了escape ......

希望可以提供帮助。