0

我正在构建的数据库系统遇到了一个非常烦人的问题。这很难解释,但我会尝试。该系统用于记录车间维修。它使用 PHP、MySQL、Javascript 和 Jquery 构建。在带有 DSM 5.1 的 Synology DS212+ 上运行我有 3 个文件有问题:

vr_edit.php
vr_edit_save.php
vr_edit_cancel.php

开始报告时,此文件正在生成新记录:

vr_edit.php?edit=new
    $sth = $conn->prepare($sql_str);
    $sth->execute($dataArr);
    $vrnr = $conn->lastInsertId();
    header("Location: ".$goto);

并将浏览器重定向到:

vr_edit.php?edit=45000

然后 vr_edit 读取记录并显示用于编辑它的表单。这是发送到显然保存数据的 vr_edit_save 。

在编辑表单中,您可以取消报告:

<button style="width: 165px; margin-top: 8px;" type="button" id="anullerknap" onclick="location.href=('vr_edit_cancel.php?vrnr=46008&setid=46008&cancelReturn=%2FVR3000-TEST%2Findex.php'); return false;"><u>A</u>nullér</button>

vr_edit_cancel.php:

    $sql_str = "DELETE FROM `v_rapporter` WHERE vrnr = ".$vrnr." AND status = 'oprettet' LIMIT 1";
    $sth = $conn->prepare($sql_str);
    $sth->execute();
    $sql_str = "ALTER TABLE `v_rapporter` AUTO_INCREMENT = 1;";
    $sth = $conn->prepare($sql_str);
    $sth->execute();
    unset($sth);
    unset($sql_str);
    unset($conn);
    header("Location: ".$goTo);//This points to old location before creating new record

所有这一切都很好,但现在问题开始了。当我在删除一个报告后创建一个新报告时。它得到与被删除的相同的 id (vrnr),这很好,它应该是。但突然它再次删除记录而没有调用任何脚本。它就像是完全随机的。有时它会在几秒钟内完成,有时会在一分钟后完成,有时根本不会。

我一直在努力寻找解决方案,但没有结果。我做了一个日志系统,一个基于文件的和一个基于数据库的。但是当我打开日志系统时,错误神奇地消失了。

我迷路了,有人可以帮助我吗?

4

1 回答 1

0

对此的解决方案是使用 POST 而不是 GET,正如@jeroen 在评论中建议的那样。

于 2015-04-15T10:22:21.457 回答