我想在点击提交按钮时运行一个php页面,这是我的代码:
echo "<tr><td colspan=3>
<form method='post'><table><tr><td>
<h4>Quantity</h4></td><td><input type=text name='qnt' /></td><td>
<input type='button' value='Add to card' name='buy' /></td></tr></table>
</form>
</td></tr>";
if(isset($_POST['buy'])){
echo "<script type='text/javascript'> alert('successful'); </script>";
include("addtocard.php");
}
答案 0 :(得分:1)
绝对安全,应该有两个变化:
<form method='post'>
应该有一个action属性,指向服务器上文件的位置即。
<form method='post' action="/myfile.php">
还:
<input type='button' value='Add to card' name='buy' />
应该是
<input type='submit' value='Add to card' name='buy' />
答案 1 :(得分:1)
似乎其他几个人已经采取行动来回答这个问题,但我认为他们在这里错过了你的代码的基本问题。 PHP不在客户端运行,只在服务器端运行。您需要(正如其他人所说)将表单实际提交给PHP服务,以检查用户输入表单的值。
您可能希望更多地了解PHP的工作原理,因为它输出HTML会让您感到困惑,但在用户看到的实际网页上根本不存在。来自PHP文档的This link可能会有所帮助。
答案 2 :(得分:0)
变化
<input type='button' value='Add to card' name='buy' />
到
<input type='submit' value='Add to card' name='buy' />
答案 3 :(得分:0)
您可能希望将值从“按钮”更改为“提交”它可能有效。祝你好运,这是一个例子:
<input type="submit" value='Add to card' name="buy" action= "<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"/>
修改强> 下面的用户谈到了这个动作,完全忘了,但是,你的代码似乎将它移植到文件中,因此你可以使用这个例子。祝你好运。
编辑2: PHP_SELF有一个我完全忘记的漏洞利用。我用它更新了代码。代码有什么问题?看起来很好。
答案 4 :(得分:0)
我使用已经提到的一些内容测试了您的代码,包括comment
中的内容,包括在表单输入中输入的数量。
旁注: 不知道addtocard.php
文件中的内容,我使用自己的基本代码来生成(重现)成功的测试。注释包括在下面。
是:强>
<?php
echo "<tr><td colspan=3>
<form method='post'><table><tr><td>
<h4>Quantity</h4></td><td><input type=text name='qnt' /></td><td>
<input type='submit' value='Add to card' name='buy' /></td></tr></table>
</form>
</td></tr>";
if(isset($_POST['buy'])){
echo "<script type='text/javascript'> alert('successful'); </script>";
include("addtocard.php");
}
旁注:您还可以为表单的操作添加action=''
。
即:<form method='post' action=''>
将以“自我”身份提交。
以下addtocard.php
内部我自己进行测试,产生了成功的结果。
<?php
$qnt = $_POST['qnt'];
echo "Quantity: " . $qnt;
并在表单内输入数字100,实际上是回显100
,它确实产生了successful
的弹出警报。
您还可以使用添加的条件语句来检查是否设置了提交按钮,以及是否输入了数量:
<?php
echo "<tr><td colspan=3>
<form method='post'><table><tr><td>
<h4>Quantity</h4></td><td><input type=text name='qnt' /></td><td>
<input type='submit' value='Add to card' name='buy' /></td></tr></table>
</form>
</td></tr>";
if(isset($_POST['buy']) && !empty($_POST['qnt'])){
echo "<script type='text/javascript'> alert('successful'); </script>";
include("addtocard.php");
}
else {
echo "Enter a quantity.";
}