Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mySQL preg_替换字符串和存储结果_Php_Mysql_Database_Preg Replace - Fatal编程技术网

PHP mySQL preg_替换字符串和存储结果

PHP mySQL preg_替换字符串和存储结果,php,mysql,database,preg-replace,Php,Mysql,Database,Preg Replace,因此,在最终整合了将从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="h

因此,在最终整合了将从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>
<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>
使用以下代码,值A58F6B5HVXEBU将从上述所有代码中删除:

<?php
$string = '';
$res = preg_replace('~(.+)(name="hosted_button_id"\s+value=")([^"]+)(["].+)~s', '$3', $string);
?>
我知道上面的代码需要进入action.php文件,该文件处理表单信息并将其添加到数据库中,但我不确定如何安排它。我似乎无法以任何方式让它发挥作用。我相信表单上的名称必须与数据库行不同,因此文本区域中的内容可以通过preg_replace代码进行处理,然后发送到数据库,但我坚持使用这个名称,因为我确信它很简单,哈哈

表单和处理文件的设置如下所示:

<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>
<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个字符的值字符串保存到数据库中,每一种方法都是如此,表单处理并表示记录已添加,但只创建一条空白记录,不会将任何内容存储到数据库中。

您在查询中遗漏了post变量键名的引号。此外,您没有清理任何数据,也没有使用准备好的语句,因此尽管使用mysqli,您的脚本仍然不安全。使用mysqli_stmt_准备任何包含$variables或其他输入的查询。对于不需要任何用户提交的数据或脚本变量的查询,请使用mysqli_查询

$sql="INSERT INTO tester (paypal)
VALUES
('".$_POST['paypal']."')";

看看您的SQL语句