我正试图将一个变量转移到disable.php,它将更新数据库中的一行,所有这些都在我正在构建的wordpress插件中。我不明白为什么这行不通。
这是我的表格
<form method='post' action='".plugins_url()."/myremovalsquote/inc/disable.php''>
<input type='submit' name='".$_SESSION['id'] = $active_partner->partner_id."' class='button-primary' id='disable' value='Disable'/>
</form>
这是我的/disable.php
global $wpdb;
$id = $_SESSION["id"];
$wpdb->query("UPDATE partners SET active='no' WHERE partner_id='".$id."'");
header("Location: http://www.website.com/wp-admin/admin.php?page=my-plugin-settings");
这是我得到的错误,似乎会话中的变量没有被转移到disable.php。
除了我的注释之外,您还可以使用隐藏的输入字段,或者将要在会话中读取和发送的值一起存储。对于第一个解决方案:
<form method='post' action='/myremovalsquote/inc/disable.php'>
<input type="hidden" name="id_to_be_disabled" value="<?= $active_partner->partner_id; ?>">
<input type='submit' class='button-primary' id='disable' value='Disable'/>
</form>
对于第二个解决方案,只需使用session_start();
调用会话并将值存储在其中。无需篡改提交按钮名称。
表单中的名称和值有一些错误。试试这个:
<form method='post' action='".plugins_url()."/myremovalsquote/inc/disable.php"'>
<input type='submit' name='id' value='" . $active_partner->partner_id."' class='button-primary' id='disable' value='Disable'/>
</form>
我也更喜欢这里隐藏的领域。
将session_start()放在您的/disable.php 上