2012-12-10 73 views
0

我想創建一個腳本,獲取在瀏覽器URL p中varible和querys的colums playername對任何符合varible p但它仍然不工作的人知道我在做什麼錯我不停的擺弄這個幾個小時..

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Admin Panel</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 
    <link href="http://example.com/assets/css/bootstrap.css" rel="stylesheet"> 
    <link href="http://example.com/assets/css/docs.css" rel="stylesheet"> 
    <link href="http://example.com/assets/js/google-code-prettify/prettify.css" rel="stylesheet"> 

<center> 

<?php 

$con = mysql_connect("","",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("log", $con); 

$plyr=$_GET["p"]; 

$result = mysql_query('SELECT * FROM logs_chat WHERE playername="$plyr"'); 

echo ' 
      <table class="table"> 
       <thead> 
       <tr> 
        <th>Time</th> 
        <th>Player</th> 
        <th>Message</th> 
       </tr> 
       </thead> 
       <tbody> 
'; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['time'] . "</td>"; 
    echo "<td>" . $row['playername'] . "</td>"; 
    echo "<td>" . $row['text'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 

</center> 
    <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 
    <script src="http://example.com/assets/js/jquery.js"></script> 
    <script src="http://example.com/assets/js/google-code-prettify/prettify.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-transition.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-alert.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-modal.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-dropdown.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-scrollspy.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-tab.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-tooltip.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-popover.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-button.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-collapse.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-carousel.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-typeahead.js"></script> 
    <script src="http://example.com/assets/js/bootstrap-affix.js"></script> 
    <script src="http://example.com/assets/js/application.js"></script> 
</body> 
</html> 
+0

**注意!** PHP的未來版本是*自嘲和刪除*了'mysql_'系列函數。看起來你仍然在學習PHP,這意味着現在對於[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net)是一個很棒的時間。 /book.mysqli)。 – Charles

+0

請學習使用參數化查詢。你現在擁有的是SQL注入。 http://bobby-tables.com/php.html有例子。 –

+0

正常情況下,您沒有關閉** head **標籤並且不打開** body **標籤? – Dim13i

回答

1

問題是出在這裏,

$result = mysql_query('SELECT * FROM logs_chat WHERE playername="$plyr"'); 

$plyr被視爲字符串不可變,PHP不會解析什麼是單引號' '。你需要連接變量。

將其更改爲,

$result = mysql_query('SELECT * FROM logs_chat WHERE playername="'.$plyr.'"'); 

更新:

不要使用mysql_*功能,他們不久將被取消。使用PDO或mysqli連接數據庫。謹防SQL注入,$_GET["p"]未經驗證,您的代碼可能存在缺陷。嘗試準備好的語句或mysqli_real_escape_string或PDO :: quote。

+0

另外,這裏沒有檢查SQL注入 – cegfault

+0

那麼我還可以使用那個函數呢? – user8161812

+0

@cegfault我正在更新。現在檢查。 –

1

你有沒有試圖把周圍的表的名稱單引號?

形式:$result = mysql_query('SELECT * FROM logs_chat WHERE playername="$plyr"');

到:$result = mysql_query("SELECT * FROM logs_chat WHERE playername='$plyr'");

也不要忘記讓$_GET變量時使用mysql_real_escape_string