因此,在最终汇集了将从paypal表单代码中删除按钮ID的代码之后,我现在面临着将该信息存储在数据库中的困难。
PayPal代码当然是这样的:
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="A58F6B5HVXEBU">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_cart_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
使用以下代码,从上述所有内容中删除值A58F6B5HVXEBU:
<?php
$string = '';
$res = preg_replace('~(.+)(name="hosted_button_id"\s+value=")([^"]+)(["].+)~s', '$3', $string);
?>
我知道上面的代码需要进入处理表单信息的action.php文件并将其添加到数据库中,但我不知道如何安排它。我似乎无法以任何方式让它工作。我相信表单上的名称必须与数据库行不同,因此textarea中的内容可以通过preg_replace代码处理,然后发送到数据库但我仍然坚持这个臭,因为我很确定它很简单洛尔
表单和处理文件的设置如下所示:
<form action="action.php" method="post" name="addclass">
<table>
<tr>
<td><strong>Paypal Code: </strong></td> <td><textarea name="paypal" rows="4" cols="50"></textarea></td>
</tr>
</table>
<input type="submit" name="submit" value="Submit">
</form>
action.php添加到数据库:
<?php
$con=mysqli_connect("root","username","pass","dbname");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO tester (paypal)
VALUES
('$_POST[paypal]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "<center><h1>1 Class Added</h1>";
echo "<br /><br /><a href=view.php><font size=18>Back To List</font></a>";
mysqli_close($con);
?>
我一直绞尽脑汁尝试将不同的方法将preg_replace代码实现到action.php文件中,只将13个字符的值字符串保存到数据库中,并且我每次都这样做,表单处理并说记录有已添加,但只创建一个空白记录,并且不会将任何内容存储到数据库中。
答案 0 :(得分:0)
您在查询中错过了对帖子变量的键名称的引用。你也没有清理任何数据,而且你没有使用预备语句,所以你的脚本,尽管使用mysqli仍然是不安全的。对包含$ variables或其他输入的任何查询使用mysqli_stmt_prepare()
。将mysqli_query()
用于不需要任何用户提交的数据或脚本变量的查询。
$sql="INSERT INTO tester (paypal)
VALUES
('".$_POST['paypal']."')";