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