0

私は、ブラウザの URL p で変数を取得し、変数 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>
4

2 に答える 2

1

テーブルの名前を一重引用符で囲みましたか?

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

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

また、変数を取得するときにmysql_real_escape_stringを使用することを忘れないでください$_GET

于 2012-12-10T03:45:06.850 に答える
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 INJECTIONS$_GET["p"]は検証されておらず、コードに脆弱性がある可能性があることに注意してください。準備済みステートメントまたは mysqli_real_escape_string または PDO::quote を試してください。

于 2012-12-10T02:52:54.867 に答える