Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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 用html表单中的用户输入替换预定义代码_Php_Html_Mysql - Fatal编程技术网

Php 用html表单中的用户输入替换预定义代码

Php 用html表单中的用户输入替换预定义代码,php,html,mysql,Php,Html,Mysql,我已经创建了一个评论网站。人们访问它并在上面放置评论,然后将评论放在数据库中 我在网站上创建了一个简单的表单和区域,让他们能够编辑和删除他们的评论 然而,我必须从数据库中提取每个用户的评论信息的代码不起作用。我需要替换“WHERE FirstName='peter'”允许脚本获取并显示用户在表单上键入的电子邮件中提交的评论 <?php $con=mysqli_connect("example.com","peter","abc123","my_db"); // Check

我已经创建了一个评论网站。人们访问它并在上面放置评论,然后将评论放在数据库中

我在网站上创建了一个简单的表单和区域,让他们能够编辑和删除他们的评论

然而,我必须从数据库中提取每个用户的评论信息的代码不起作用。我需要替换“WHERE FirstName='peter'”允许脚本获取并显示用户在表单上键入的电子邮件中提交的评论

<?php
    $con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

    $result = mysqli_query($con,"SELECT * FROM Persons
    **WHERE FirstName='Peter'");**

    while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'] . " " . $row['LastName'];
    echo "<br>";
}

?>

我认为你的代码有问题。试试这个:

<?php
$result = mysqli_query($con,sprintf("SELECT * FROM Persons WHERE email = '%s'",mysqli_real_escape_string($con,$_POST['email'])));

你就不能把它改成
WHERE-email='1'吗email@example.com“
?好吧,那可以,但你必须能够从表单中提取电子邮件。这有意义吗?我真的不知道该怎么说。如果您在表单中使用的是
$\u POST
方法,那么所有变量都可以在
$\u POST中找到。试试
$\u POST['email']
。另外,请确保使用
mysqli\u real\u escape\u string()
对其进行转义,或者更好的方法是使用预先准备好的语句。对于php,我不是天才,所以我应该将mysqli\u real\u escape\u string()放在哪里?来自用户的任何内容都需要“消毒”然后才能在数据库查询中安全地使用它,以防止SQL注入。到目前为止,防止这种情况发生的最好办法是事先准备好声明。下一个最好的方法是使用mysqli\u real\u escape\u string(),在将变量放入查询之前必须使用它。所以类似于
$email=mysqli\u real\u escape\u string($\u POST['email'])
然后您可以在查询中安全地使用
$email
变量。我将代码更改为您的,结果如下:警告:mysqli\u fetch\u array()预期参数1为mysqli\u result,第107行第107行/home/content/38/10473938/html/review pratt/business_profiles/myReviews.php中给出的布尔值如下:while($row=mysqli_fetch_数组($result))
<?php
     $con=mysqli_connect("example.com","peter","abc123","my_db");
     // Check connection
     if (mysqli_connect_errno())
{
     echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

    $result = mysqli_query($con,"SELECT * FROM Persons
    WHERE $email = mysqli_real_escape_string($_POST['email']);");

    while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'] . " " . $row['LastName'];
    echo "<br>";
}

?>
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or         T_VARIABLE or T_NUM_STRING in /home/content/38/10473938/html/review-pratt/business_profiles/myReviews.php on line 106
<?php
$result = mysqli_query($con,sprintf("SELECT * FROM Persons WHERE email = '%s'",mysqli_real_escape_string($con,$_POST['email'])));