Php Jquery导致在cake中意外创建数据库行

Php Jquery导致在cake中意外创建数据库行,php,jquery,mysql,cakephp,Php,Jquery,Mysql,Cakephp,我在视图中有这个jquery代码,与我的uploads controller相关: function screenshot(){ var dataUrl = renderer.domElement.toDataURL("image/png"); $.post("picturepicker", {dataUrl: dataUrl, uploadnumber: 2 } } 它成功地将数据发送到此函数: public function picturepicker(){ ..

我在视图中有这个jquery代码,与我的uploads controller相关:

function screenshot(){

var dataUrl = renderer.domElement.toDataURL("image/png");
$.post("picturepicker", {dataUrl: dataUrl, uploadnumber: 2


 }

}
它成功地将数据发送到此函数:

public function picturepicker(){
        ...

if($this->request->is('post')){
        define('UPLOAD_DIR', WWW_ROOT . 'img/');  // increase validation
        $img = $_POST['dataUrl'];  // Tried $this->request['dataURL'], retrieved 'dataURL' just fine
        $upload = $_POST['uploadnumber']; // tried $this->request['uploadnumber'], did not retrieve 'uploadnumber' 
        $img = str_replace('data:image/png;base64,', '', $img);
        $img = str_replace(' ', '+', $img);
        $data = base64_decode($img);
        $file = UPLOAD_DIR . $upload . '.png';  // UPLOAD_DIR . uniqid() . '.png';
        $success = file_put_contents($file, $data);

        print $success ? $file : 'Unable to save the file.';
这很好,只是每次运行javascript时,都会创建一个新的数据库行。由于我没有create函数,我认为jquery无意中调用了这个函数:

public function upload(){

        if ($this->request->is('post')) {

        //var_dump($this->request->data);
        $this->Upload->create(); 
        ....
但是,我怀疑这一点,因为即使删除了对create函数的所有引用,行仍然会被添加


那么为什么会发生这种情况,我应该如何解决?我怀疑jquery代码不知何故调用了我的所有函数,我需要在获取post数据的任何其他函数周围放置一个if块。有人告诉我,情况不应该如此,也许蛋糕的路线是罪魁祸首。或者,我可能遗漏了cake文档中的某些内容—可能cake是为了为每个post请求创建一个新的DB行而设置的,我需要告诉它不要这样做

您应该注意,
$this->Upload->create()
不会创建DB行,它只是一个准备干净数据以保存到DB的函数。像
保存
设置
更新
等功能都是为了向数据库中添加行,但是
创建
在任何情况下都不会这样做,因此您需要重新检查可能向数据库中插入数据的操作,因为您在此处共享的代码没有任何保存数据的参考。啊,没错。无论如何,我是在删除整个攻击性函数——在本例中是我的全部编辑和上载函数。共享
PicturePickEpicker
的所有代码,如果您对
routes.php
进行了修改,那么在此处添加它可能也很有用。Cake不会调用所有函数,因此这不是错误。在任何情况下,也不设置新的DB行,除非你专门保存新的数据,所以它不是一个Out-Outlook特性,你不应该把它看作是错误的可能原因。我发现错误:它是一个错误的保存,这是我jQuery调用的两次。很高兴你发现它:)你能回答这个问题并接受它吗?还是完全删除?让别人知道你已经找到了解决办法