为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种方法可以在 PHP 中通过按钮单击传递变量?

有没有一种方法可以在 PHP 中通过按钮单击传递变量?

PHP
千万里不及你 2023-04-21 14:57:03
我在将变量传递给 PHP 函数时遇到问题。所以我在 html 或实际上是 PHP 中做的,但我用 PHP 制作了我的 HTML 代码的一部分是这样的:<form action=\"\" method=\"post\">    <textarea name=\"textarea\" rows=\"8\" cols=\"40\"></textarea>    <button type=\"button\" class=\"button\" name=\"enterText\" value=\"".$row['Wagon_ID']."\">        Enter    </button></form>现在,只要行数组中有更多 Wagon_ID,就会在 while 循环中发生。我想具体做的是在单击此按钮时调用一个函数,但我必须能够传递 Wagon_ID。我可以通过使用<input type="submit"...并使值成为 Wagon_ID 来轻松做到这一点,但我的问题是因为值是 Wagon_ID,按钮上的文本也将成为 Wagon_ID,并且文本需要保持输入状态。所以我尝试的是使用按钮类型并将值设置为 Wagon_ID,但现在甚至没有调用 PHP 函数。有谁知道我可以使用这种类型的按钮的技巧,或者在我以前使用的按钮类型上维护我的“输入”文本?提前致谢!这就是我在 PHP 中调用 buttonclick 的方式:if (isset($_POST['enterText']))     {        $text= $_POST['textarea'];        $wagon=$_POST['enterText'];        mysqli_query($_SESSION['conn'], "INSERT INTO description (Wagon_ID, textdescription) VALUES ('$wagon','$text')");    }
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

我认为你的问题的关键部分在这里:


我可以通过使用<input type="submit"... 并将值设置为 Wagon_ID 来轻松做到这一点,但我的问题是因为该值是 Wagon_ID,按钮上的文本也将变为 Wagon_ID 并且文本需要保持输入状态。


这种情况就是隐藏域的用武之地。不要将实际的表单数据包装在像按钮这样的 UI 元素中。像这样尝试:


echo '<form action="" method="post">

    <textarea name="textarea" rows="8" cols="40"></textarea>

    <input type="hidden" name="wagonID" value="'.$row['Wagon_ID'].'"/>

    <input type="submit" class="button" name="enterText" value="Enter text" />

</form>';

并在 PHP 更改中


$wagon=$_POST['enterText'];


$wagon = $_POST['wagonID'];


PS 正如您所看到的,您可以通过在单引号内回显来自 PHP 的字符串来摆脱双引号的所有混乱转义,并且它更具可读性并且更不容易出错。


聚苯硫醚


警告:您的代码容易受到 SQL 注入攻击。您应该使用参数化查询和准备好的语句来帮助防止攻击者通过使用恶意输入值来破坏您的数据库。http://bobby-tables.com给出了风险的解释,以及一些如何使用 PHP / mysqli 安全地编写查询的示例。永远不要将未经处理的数据直接插入到您的 SQL 中。按照您现在编写代码的方式,有人可以轻松窃取、错误更改甚至删除您的数据。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信