Php 在数据库中记录用户ID而不是IP地址
目前,我有一个明星评级系统的代码,该系统将信息发送到数据库,然后通过JS/Ajax在前端显示平均值。它当前记录用户的IP地址,然后一段javascript阻止用户再次投票。我正在尝试调整它,这样它就不会记录IP地址,而是记录当时登录的用户的ID,到目前为止还没有运气。我还需要记录用户对哪篇文章投了票,显示在URL的末尾 HTML:Php 在数据库中记录用户ID而不是IP地址,php,jquery,mysql,Php,Jquery,Mysql,目前,我有一个明星评级系统的代码,该系统将信息发送到数据库,然后通过JS/Ajax在前端显示平均值。它当前记录用户的IP地址,然后一段javascript阻止用户再次投票。我正在尝试调整它,这样它就不会记录IP地址,而是记录当时登录的用户的ID,到目前为止还没有运气。我还需要记录用户对哪篇文章投了票,显示在URL的末尾 HTML: <fieldset id=demo1 class="rating"> <input class="stars" type="radio" i
<fieldset id=demo1 class="rating">
<input class="stars" type="radio" id="star5" name="rating" value="5" />
<label class = "full" for="star5" title="5 stars"></label>
<input class="stars" type="radio" id="star4" name="rating" value="4" />
<label class = "full" for="star4" title="4 stars"></label>
<input class="stars" type="radio" id="star3" name="rating" value="3" />
<label class = "full" for="star3" title="3 stars"></label>
<input class="stars" type="radio" id="star2" name="rating" value="2" />
<label class = "full" for="star2" title="2 stars"></label>
<input class="stars" type="radio" id="star1" name="rating" value="1" />
<label class = "full" for="star1" title="1 star"></label>
</fieldset>
PHP:
$user_id = (isset ($_SESSION['user_id'])) ? $_SESSION['user_id'] : 0;
$servername = "localhost"; // Server details
$username = "root";
$password = "root";
$dbname = "test_db";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Unable to connect Server: " . $conn->connect_error);
}
if (isset($_POST['rate']) && !empty($_POST['rate'])) {
$rate = $conn->real_escape_string($_POST['rate']);
// check if user has already rated
$sql = "SELECT `id` FROM `tbl_rating` WHERE `user_id`='" . $user_id . "'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if ($result->num_rows > 0) {
echo $row['id'];
} else {
$sql = "INSERT INTO `tbl_rating` ( `rate`, `user_id`) VALUES ('" . $rate . "', '" . $user_id . "'); ";
if (mysqli_query($conn, $sql)) {
echo "0";
}
}
}
$conn->close();
您需要在AJAX请求中包含文章ID。您可以通过直接将其放入请求或将其放入字段集中,然后通过JavaScript/jQuery访问属性来实现 例如:
var article_id = '<?php echo $_GET['article'] ?>';
$.post(
'http://kb.lorol.ispwebhost.com/includes/rating.php',
{
article_id: article_id,
rate: $(this).val()
},
function (d) {
// ...
}
);
此外,我建议与您合作。另见:
jQuery:/
/
PHP:/
GET变量的名称是什么,存储项目ID的位置是什么?另外,您是否仍希望未经授权的用户能够对其进行评分?如果是这样,您想存储IP而不是用户ID吗?URL的结尾如本文所示。我不确定如何从url中获取117并将其添加到数据库中
var article_id = '<?php echo $_GET['article'] ?>';
$.post(
'http://kb.lorol.ispwebhost.com/includes/rating.php',
{
article_id: article_id,
rate: $(this).val()
},
function (d) {
// ...
}
);
$article_id = isset($_POST['article_id']) && is_numeric($_POST['article_id'])
? $_POST['article_id']
: 0;