2013-03-23 54 views
0

我创建了一个评价网站。人们访问它并将它放置在数据库中的评论。用html格式的用户输入替换预定义的代码

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

但是,我必须从每个用户的数据库中提取他们的评论信息的代码不起作用。我需要替换“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>"; 
} 

?> 

这里是HTML表单(很简单,并没有大量的工作完成了吗。)

<form action="myReviews.php" method="post"> 

<label>Please enter your email:</label> 

<input type="email" id="email" name="email" placeholder="email"> 

<input type="submit" value="submit"> 

</form> 

我已经试了又试,使用“回声”,一切都在摸不着头脑之间!请帮助我。谷歌搜索它,并去教程网站没有任何好处!一旦找到答案,我会更新问题。

基于从各位用户帮助更新下

我编辑的PHP脚本恰好如下:点击提交在后

<?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 
+0

难道你不能把它改成'WHERE email ='email @ example.com'吗? – Mike 2013-03-23 06:31:34

+0

那么,这将工作,但你必须能够从形式拉电子邮件。那有意义吗?真的不知道该怎么做。 – user2109152 2013-03-23 06:32:56

+0

如果这是您的表单使用的方法,则所有变量均可在'$ _POST'中使用。试试'$ _POST ['email']'。另外,请确保使用'mysqli_real_escape_string()'或更好的方式转义它,使用预准备语句。 – Mike 2013-03-23 06:34:32

回答

0

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

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

我将代码更改为您的代码,结果如下:警告:mysqli_fetch_array()期望参数1为mysqli_result,在/home/content/38/10473938/html/review-pratt/business_profiles/myReviews.php中给出的布尔值在线第107行如下:while($ row = mysqli_fetch_array($ result)) – user2109152 2013-03-23 20:13:10