0

ファンタジー フットボール サイト用に取り組んでいるアプリケーションがあります。ここに行く場合:

http://digitaldemo.net/kickass/a-results.php

管理者がプレイヤーを表示/編集するときに表示される内容を確認できます。

アップデート - - - - - - - - - - - - - - - - - - -

これは、データをレンダリングし、qb-edit.php のフォームにデータを渡す必要がある a-results.php の関連コードです。

<table cellspacing="0" cellpadding="5" border="1" width="560">
<tr style="text-align:center">
<td style="text-align:left ; width:175px">Player Name</td>
<td>Team</td>
<td>Pass Yds</td>
<td>Pass TDs</td>
<td>Int Thrown</td>
<td>Rush Yds</td>
<td>Rush TDs</td>
<td>Overall Pts</td>
<td>TFP</td>
</tr>
<?php
$result = mysql_query("SELECT ID, Player, Team, Pass_Yds, Pass_TDs, Int_Thrown, Rush_Yds, Rush_TDs, Overall_Pts, Total_Fantasy_Pts FROM ff_projections WHERE Position = 'QB' ORDER BY Pass_Yds DESC;");

while($row = mysql_fetch_array($result))
{
echo "<tr style=\"text-align:center\"><td style=\"text-align:left\">{$row['Player']}</td>";
echo "<td>{$row['Team']}</td>";
echo "<td>{$row['Pass_Yds']}</td>";
echo "<td>{$row['Pass_TDs']}</td>";
echo "<td>{$row['Int_Thrown']}</td>";
echo "<td>{$row['Rush_Yds']}</td>";
echo "<td>{$row['Rush_TDs']}</td>";
echo "<td>{$row['Overall_Pts']}</td>";
echo "<td>{$row['Total_Fantasy_Pts']}</td>";
echo "<td><form action=\"qb-edit.php\" method=\"post\"><input type=\"hidden\" name=\"ID\" value=\"". $row['ID'] ."\"><input type=\"submit\" name=\"submit\" value=\"Edit\"></form></td></tr>";
}
?>
</table>

これは qb-edit.php の内容です:

<?php
$posted_id = $_POST['ID'];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
body    { font-family:Arial, Helvetica, sans-serif ;
font-size:14px ;
}

.form   { width:350px ;
margin-auto ;
}

label   { clear:both ;
display:block ;
float:left ;
padding-right:8px ;
line-height:26px ;
}

input[type=text]    { float:right ;
width:163px ;
height:18px ;
margin:3px 0px ;
} 

input[type=text].short  { width:30px ;
margin-right:132px ;
}

input[type=submit]  { clear:both ;
float:left ;
margin-top:20px ;
margin-bottom:20px ;
}

select  { float:right ;
margin-right:118px ;
}
</style>
</head>

<body>

<div class="form">            
<?php 

echo $posted_id;

$result = mysql_query($connect, "SELECT * FROM ff_projections where ID='" . $posted_id . "'") or die ("Error in query");
if ($row = mysql_fetch_array($result)) {

echo "<form method='post' action='add_player.php'>";
echo "<label for='Player'>Player Name:</label> <input type='text' name='Player' value='" . $row['Player'] . "' />";
echo "<label for='Pass_Yds'>Pass Yds:</label> <input class='short' type='text' name='Pass_Yds' value='" . $row['Pass_Yds'] . "' />";
echo "<label for='Pass_TDs'>Pass TDs:</label> <input class='short' type='text' name='Pass_TDs' value='" . $row['Pass_TDs'] . "' />";
echo "<label for='Int_Thrown'>Int Thrown:</label> <input class='short' type='text' name='Int_Thrown' value='" . $row['Int_Thrown'] . "' />";
echo "<label for='Rush_Yds'>Rush Yds:</label> <input class='short' type='text' name='Rush_Yds' value='" . $row['Rush_Yds'] . "' />";
echo "<label for='Rush_TDs'>Rush TDs:</label> <input class='short' type='text' name='Rush_TDs' value='" . $row['Rush_TDs'] . "' />";
echo "<label for='Overall_Pts'>Overall Pts:</label> <input class='short' type='text' name='Overall_Pts' value='" . $row['Overall_Pts'] . "' />";
echo "<input type='submit' name='submit' value='Update Player' />";
echo "<input type='hidden' name='id' value='" . $row['ID'] . "' />";
echo "</form>";
}
?>
</div>


</body>
</html>

次のようなエラーが表示されます。

PHP Warning:  mysql_query() expects parameter 2 to be resource, string given in C:\\xampp\\htdocs\\kickass\\qb-edit.php on line 55, referer: http://localhost/kickass/a-results.php

これは qb-edit.php の 55 行目です。

$result = mysql_query($connect, "SELECT * FROM ff_projections where ID='" . $posted_id . "'") or die ("Error in query");

私はこれを機能させようとして気が狂います...

4

3 に答える 3

1

データベース レコードの ID をパラメーターとして、おそらく隠しフィールドとして渡し、それを使用して次のページでデータベースからレコードを取得します。

于 2012-05-24T18:42:34.560 に答える
1

アイデアは、プレーヤーのIDを渡すことです(GETまたはPOSTメソッドとして可能です)。IDをURLに渡すことができるため、POSTが最善の方法だと思います

例えば:

player_id = 1 Vince Youngこのページへのリンクを作成するとhttp://digitaldemo.net/kickass/edit_player.php?id=1編集ページが表示されます

player_id = 2 Ryan Tannehillこのページへのリンクを作成するとhttp://digitaldemo.net/kickass/edit_player.php?id=2編集ページが表示されます

などなど

もちろん、いくつかのことを考慮する必要があります。

  1. edit_player と呼ばれる php ファイルとその関数を作成する必要があります。
  2. SESSION['user'] がプレーヤーを編集する権限を持っていることを確認する必要があります。誰かがブラウザーを開いて次のようなリンクをコピーして貼り付けられることを確認しない場合:http://digitaldemo.net/kickass/edit_player .php?id=1 で、投稿を編集できるようになります。
  3. ある種の md5 アルゴリズムを使用してユーザー ID を送信すると、侵入者が制限されます。

このセキュリティ ガイドをご覧ください。サイトを保護するのに役立ちます。

http://phpsec.org/projects/guide/

于 2012-05-24T19:10:17.473 に答える
1

あなたのエラーはここで引き起こされたと私は信じています

"SELECT * FROM ff_projections where ID='" . $posted_id . 「」

SELECT の前に二重引用符を開始しましたが、これは良いことですが、ID= に到達したときに、その一連の引用符を終了しました 二重引用符を削除します

つまり言い換えれば

"SELECT * FROM ff_projections WHERE ID = '$posted_id'"

それ以外の

 "SELECT * FROM ff_projections where ID='" . $posted_id . "'"
于 2012-05-24T22:57:30.023 に答える