Php 将会话变量设置为on<;a>;点击

Php 将会话变量设置为on<;a>;点击,php,mysql,Php,Mysql,我试图创建一个链接,在下一页触发PHP代码。我已经尝试使用$\u GET variables来执行此操作,但问题是我还想在之后删除该变量,因为我会自动使用header()链接回重定向页面。似乎没有任何可行的方法可以在不将用户重定向到一个页面的情况下做到这一点,但问题是他们应该被重定向到以前所在的页面。保留$\u GET变量会导致无休止的重定向循环 一般来说,我希望避免使用$\u GET,因为它可能在我使用它的上下文中被滥用。不过,任何其他解决办法都将不胜感激。基本上,我只是尝试使用链接从MySQ

我试图创建一个
链接,在下一页触发PHP代码。我已经尝试使用$\u GET variables来执行此操作,但问题是我还想在之后删除该变量,因为我会自动使用
header()
链接回重定向页面。似乎没有任何可行的方法可以在不将用户重定向到一个页面的情况下做到这一点,但问题是他们应该被重定向到以前所在的页面。保留$\u GET变量会导致无休止的重定向循环

一般来说,我希望避免使用$\u GET,因为它可能在我使用它的上下文中被滥用。不过,任何其他解决办法都将不胜感激。基本上,我只是尝试使用
链接从MySQL数据库中删除一个条目

下面是处理变量的PHP

if (isset($_GET['rm'])) # 'rm' contains the uuid of the entry to be deleted.
{
    $uuid = $_GET['rm'];
    unset($_GET['rm']); # Didn't expect this to work, of course it didn't remove the variable from the URL.
    $query = "DELETE FROM posts WHERE uuid = '$uuid'";
    $result = $mysqli->query($query);
    header("Location: " . $_SERVER['REQUEST_URI']);
    exit();
}
编辑:我现在意识到我已经把我的解释复杂化了。主要目标是通过一个特定于点击链接的变量,使点击链接触发PHP代码。(每个链接都是帖子上的删除按钮,每个帖子都有一个UUID)


如果有一种方法可以替代触发javascript代码,那也会非常有帮助,因为我也希望在这里使用这种方法。我可能会制作一个单独的线程询问这个问题。

如果您的目标是重定向到当前页面,但删除查询字符串,则可以重定向到
标题(“位置:?”基本上就是这样。(从技术上讲,您将重定向到一个没有值的新查询字符串,这与没有查询字符串不同,但php只会显示一个空数组,用于
$\u GET
,这基本上是相同的)


我打算提到一些附加选项,如
$\u SERVER
中的变量,但其中许多选项都有各种安全性或与之相关的其他问题。我之所以提到这一点,是因为除非必要,否则我不会建议使用。此外,它确实没有变得比上面更容易。

例如,您可以使用$\u SESSION在之后删除变量

    if (isset($_SESSION['rm'])) # 'rm' contains the uuid of the entry to be deleted.
{
    $uuid = $_SESSION['rm'];
    unset($_SESSION['rm']); # Didn't expect this to work, of course it didn't remove the variable from the URL.
    $query = "DELETE FROM posts WHERE uuid = '$uuid'";
    $result = $mysqli->query($query);
    header("Location: " . $_SERVER['REQUEST_URI']);
    exit();
}
假设您已注册下一个形状的值

$_SESSION['rm'] = "My value";

我对你的问题有些困惑,但我认为会话变量可能会使这变得容易。你可以只编辑你在标题中使用的url字符串,你不可以只设置一个cookie为ha doe this吗?@smith我不能在单击链接时触发会话变量的设置。根据这里的其他线程,在页面更改之前,php无法足够快地响应。@MrGlass不确定我如何才能做到这一点:/我不明白为什么您不能继续使用会话,但如果您更喜欢打开$\u服务器['REQUEST\u URI'?以第一部分为例,这将是不带查询字符串的url。
Location
标题必须是完整的url。虽然相对路径在大多数浏览器中都有效,但它们不符合规范。@Brad虽然不符合规范,但它在所有主要浏览器中都有效,并且永远有效(这意味着对较旧浏览器的良好支持)。甚至重定向的MDN页面也显示了相对URL的示例,并且没有提到“完整URL”。@Brad,请看,根据当前规范,相对URI是允许的,并且非常好。这里的问题是,我单击了一个链接,它将我带到执行此代码的页面。我没有办法将数据实际插入会话。您可以将任何数据添加到$\u会话,或者不需要您创建会话,您可以在之后注册$\u会话,就像您遇到的问题一样,我如何将特定数据添加到$\u会话中。在这个场景中单击的每个链接都特定于一个特定的$uuid,如果有意义的话,我不确定如何使上一页上的链接位置影响$\u会话。