【问题标题】:php jquery straight urlphp jquery 直接网址
【发布时间】:2012-09-16 01:55:18
【问题描述】:

您好,我有一些关于如何保护此脚本免受直接 url 影响的问题?

会员可以去'pages/map/hospital.php?status=healed' 瞧,他们不需要任何等待时间。我该如何解决这个问题?!

<?php
$status = $_GET['status'];

if(isset($status)){
 session_start();
 include('../../includes/core/member.php');
 include('../../includes/core/config.php');
 $member_id = $_SESSION['member_id'];
  if($status == 'healed'){
   mysql_query("UPDATE `members` SET `now_health` = '".$m_max_health."' WHERE `member_id` = '".$member_id."'");
  }

}else{
 include('includes/core/member.php');
}

$health = $m_max_health - $m_now_health;
$wait_time = $health * 5;
?>

<p id='health'>Healing (<?=$wait_time?>)</p>

<script>
$('#health').one('click', function() {
  var count = <?=$wait_time?>;
  countdown = setInterval(function(){
    $("p#health").html(count + " seconds remaining!");
    if (count == 0) {
      $.ajax({
       url: 'pages/map/hospital.php?status=healed',
       success: function(data) {
        clearInterval(countdown);
        $("p#health").html('you have healed');
       }
      });
    }
    count--;
  }, 1000);
});
</script>

【问题讨论】:

  • 如果我错了,请纠正我,但 session_start(); 不应该总是在代码中排在第一位吗?
  • @max:没有。它只需要放在任何产生输出和/或需要使用会话变量的东西之前。
  • 我用 post 代替了 ajax,一切都很好,谢谢你的帮助。

标签: php jquery ajax url


【解决方案1】:

需要服务器端验证。

我看到您的变量中已经有了初始的 $wait_time。因此,您可能希望利用这一点并使用 datetime 函数执行一些基本数学运算,以确保计数

【讨论】:

  • 我有一些其他的想法 if($_POST['heal']){ //make mysql udpate } 我需要 jquery 代码来发帖,抱歉我不懂 jquery 语言。
猜你喜欢
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 2011-07-17
  • 2021-08-16
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多