2013-03-23 27 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