PHP中的身份验证系统问题

时间:2019-12-03 05:18:24

标签: php authentication session

我使用PHP创建了一个小项目,大约有50个用户,每个用户都有自己的用户名和密码,而用户的主要功能是撰写帖子。

用户打开表单页面以撰写帖子,并在填写表单后单击添加按钮。

在这种情况下,表单操作将重定向到另一个页面并将其插入数据库,然后重定向到显示由登录用户撰写的帖子的主页。

问题在于,重定向首页时,已登录用户会看到另一位已登录用户的帖子。这种情况有时(并非总是)发生。

另一个有趣的事情是,如果在这种情况下用户单击F5按钮,则再次显示他自己的帖子。我已经尝试解决这个问题近两个月了。但是我找不到问题的原因。

有人可以帮助我吗?

注意:我使用SESSION进行身份验证!

init.php:

session_start();
session_regenerate_id();
require_once("session.php");
define('DELETION_CONFIRM','onclick="return confirm(\'<<<Предупреждение>>> Вы уверены, что хотите удалить этот элемент?\');"');
define('PAYMENT_CONFIRM','onclick="return confirm(\'<<<Предупреждение>>> Вы уверены, что хотите изменить статус платежа?\');"');
define('SITE_NAME','http://'.$_SERVER['SERVER_NAME']);
define('PAGE_NAME','http://'.$_SERVER['SERVER_NAME']);
define('TOKEN','629625615:AAHBtdU7NzCtw92O1uSG7cu5_ydzCyZxaQ0');
define("GO_BACK_BUTTON", "<button type=\"button\" onclick=\"goBack()\" class=\"btn btn-primary\"><i class=\"fa fa-arrow-left fa-fw\"></i> Hазад</button><script>function goBack(){window.history.back();}</script>");
$path_of_current_page=($_SERVER["PHP_SELF"]);
$current_page=basename($path_of_current_page);
$blank_types_list=array("fcc_export"=>"ФСС ташқи", "fcc_local"=>"ФСС ички", "akd"=>"Раскредитовка/АКД", "fumigation"=>"Акт Фумигация");
require_once("db/database.php");
require_once("model/db_object.php");
require_once("model/user.php");
require_once("model/region.php");
require_once("model/country.php");
require_once("model/role.php");
require_once("model/district.php");
require_once("model/certificate_of_disinfestation.php");
require_once("model/fumigator.php");
require_once("model/fumigation_formula.php");
require_once("model/fumigation_insecticide.php");
require_once("model/fumigation_declaration.php");
require_once("model/disinfected_object.php");
require_once("model/insecticide_exchange.php");
require_once("model/blank_exchange.php");
require_once("model/fumigation_chamber.php");
require_once("model/inspector.php");
require_once("model/monthly_remainder_of_insecticide.php");
require_once("functions.php");

home.php

<?php
include("init.php");
$role="";  
if(strpos($_SESSION['role'],"region_fumigator")!==false){     
    $role=$_SESSION['role'];
  }else{     
    $role="";
  }
check_login($role);
$certificate_type=NULL;
$certificates_of_disinfestation_number=count($certificate_of_disinfestation_object->find_by_ids($_SESSION['user_id'],"registrar_id"));
$certificates_of_disinfestation=$certificate_of_disinfestation_object->find_by_ids_with_pagination($_SESSION['user_id'],"registrar_id",$offset,$number_of_records_per_page);
include("header.php");
?>

    <!-- Main content -->
    <section class="content"> 
        <div class="box-body">
        <div class="col-xs-12  col-sm-12 col-md-12 col-lg-12" style="background-color: white;">
          <?php 
            if(!empty($certificates_of_disinfestation)){
          ?>
          <div class="scrolled_table" >
            <table class="js-dynamitable table table-striped" style="min-width:3000px;">
              <thead>
              <tr>
                  <th style="width: 70px;border-bottom: 1px solid #119769;">
                  </th>               
                  <th colspan="2" style="width:210px;">
                    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspАФ &nbsp&nbsp&nbsp&nbsp&nbsp 
                  </th>               
                  <th colspan="2" style="width:500px;">
                    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspТашкилот&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 
                  </th>               
                  <th colspan="3" style="width:400px;">
                    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspМаҳсулот &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 
                  </th>
                  <th style="border-bottom: 1px solid #119769;width:150px;">
                  </th>               
                  <th colspan="4" style="width:650px;">
                    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Фумигант &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 
                  </th>                                 
                  <th colspan="2" style="width:300px;">
                    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspФумигант сумма 
                  </th>                               
                  <th style="border-bottom: 1px solid #119769;"></th>
                  <th style="border-bottom: 1px solid #119769;"></th>
                  <th style="width:110px;border-bottom: 1px solid #119769;"></th>
                  <th style="width:90px;border-bottom: 1px solid #119769;"></th>
                </tr>
                <tr>
                  <th style="width: 70px;border-top:white;">№<?=table_sort_icons();?></th>
                  <th> № <?=table_sort_icons();?></th>  
                  <th>САНАСИ<?=table_sort_icons();?></th>
                  <th>Номи <?=table_sort_icons();?></th>
                  <th>ИНН<?=table_sort_icons();?></th>
                  <th>Номи<?=table_sort_icons();?></th>
                  <th>Miqdori<?=table_sort_icons();?></th>
                  <th>бирлиги<?=table_sort_icons();?></th>
                  <th>Давлат Hоми<?=table_sort_icons();?></th>
                  <th>Formulasi<?=table_sort_icons();?></th>
                  <th>Номи<?=table_sort_icons();?></th>
                  <th>норма(гр/мл) <?=table_sort_icons();?></th>
                  <th>cарфланган(гр/мл)<?=table_sort_icons();?></th>
                  <th>1 m<sup>3</sup>/m<sup>2</sup> <?=table_sort_icons();?></th>
                  <th>жами<?=table_sort_icons();?></th>
                  <th><img src="printer.png" width=25></th>
                  <th><img src="envelope.png" width=25></th>
                  <th>Имп_Экс_Вын</th>
                  <th>АФ №<?=table_sort_icons();?></th>
                </tr>
              </thead>
              <tbody>
                <?php
                  if($page_number<2){
                    $row_number=0;
                  }else{                    
                    $row_number=$number_of_records_per_page*($page_number-1);
                  }
                  $product=NULL;
                  foreach ($certificates_of_disinfestation as $certificate_of_disinfestation){
                    $row_background=NULL;                    
                    if($certificate_of_disinfestation->status=="deleting_process"){
                      $row_background="yellow";
                    }elseif($certificate_of_disinfestation->status=="modified"){
                      $row_background="green";
                    }
                    if($certificate_of_disinfestation->certificate_type=="local"){
                      $certificate_type="Внутренний";
                    }elseif($certificate_of_disinfestation->certificate_type=="import"){
                      $certificate_type="Импорт";
                    }elseif($certificate_of_disinfestation->certificate_type=="export"){
                      $certificate_type="Экспорт";
                    }
                    $payment_button_status="unpaid";
                    if(!empty($certificate_of_disinfestation->payment_type)){
                      $payment_button_status="paid";
                    }
                    $row_number++;
                    $country_ru_name=NULL;
                    if($certificate_of_disinfestation->country_id=="0"){
                      $country_ru_name=NULL;
                    }else{                      
                      $country=$country_object->find_by_id($certificate_of_disinfestation->country_id);
                      $country_ru_name=$country->country_ru_name;
                    }
                    $fumigation_declaration=$fumigation_declaration_object->find_by_id($certificate_of_disinfestation->declaration_id);
                    $fumigation_insecticide=$fumigation_insecticide_object->find_by_id($certificate_of_disinfestation->insecticide_id);
                    $formula=$fumigation_formula_object->find_by_id($fumigation_insecticide->fumigation_formula_id)->formula;
                      echo "<tr style='background-color:".$row_background.";'>";
                      echo "<td>".$row_number."</td>";
                      echo "<td><a>".$certificate_of_disinfestation->certificate_number."</a></td>";
                      echo "<td>".$certificate_of_disinfestation->certificate_given_date."</td>";
                      echo "<td>".$certificate_of_disinfestation->organization_name."</td>";
                      echo "<td>".$certificate_of_disinfestation->organization_inn."</td>";
                      echo "<td>".$certificate_of_disinfestation->disinfected_building_name."</td>";
                      echo "<td>".number_format($certificate_of_disinfestation->disinfected_building_volume,3,"."," ")."</td>";
                      echo "<td>".$certificate_of_disinfestation->disinfected_building_unit."</td>";
                      echo "<td>".$country_ru_name."</td>";
                      echo "<td>".$formula."</td>";
                      echo "<td>".$fumigation_insecticide->name."</td>";
                      echo "<td>".$certificate_of_disinfestation->insecticide_dosage."</td>";
                      echo "<td>".number_format($certificate_of_disinfestation->expended_insecticide_amount,3,"."," ")."</td>";
                      echo "<td>".number_format($fumigation_declaration->price,0,""," ")."</td>";
                      echo "<td>".number_format($certificate_of_disinfestation->total_price,0,""," ")."</td>";
                  ?>  
                <?php
                    echo "<td><a href='print_akt.php?certificate_number=".$certificate_of_disinfestation->certificate_number."'><img src='printer.png' width=25></a></td>";
                    if($certificate_of_disinfestation->status!="deleting_process"){
                ?>
                <td>
                  <a style="display: inline; border:none; padding: 0px;" class="btn btn-default btn-lg" data-toggle="modal" data-target="#delete_certificate_of_disinfestation<?php echo $certificate_of_disinfestation->id;?>" title='Buzilgan aktni o`chirish.'>
                    <i class="fa fa-envelope fa-fw text-yellow"></i>
                  </a>
                </td>
                <?php
                    include("../modal/delete_certificate_of_disinfestation.php");
                    }else{
                      echo "<td><a title='Akt ko`rib chiqilmoqda.'><img src='in_process2.png' width=30 ></a></td>"; 
                    }
                    echo "<td>".$certificate_type."</td>";
                    echo "<td><a>".$certificate_of_disinfestation->certificate_number."</a></td>";
                    echo "</tr>";
                  }  
                ?>
              </tbody>
            </table>
          </div>
          <?php
            }else{
              echo notification("warning","fa-ban","Ничего не найдено","Предполагается, что у вас нет зарегистрированного акта.");
            }
          ?>
        </div>
        <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
        <script src="dynamitable.jquery.min.js"></script>
        <script type="text/javascript">            
          var _gaq = _gaq || [];
          _gaq.push(['_setAccount', 'UA-36251023-1']);
          _gaq.push(['_setDomainName', 'jqueryscript.net']);
          _gaq.push(['_trackPageview']);        
          (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          })();            
        </script>
        </div>
      </div>
    </section>
    <!-- /.content -->
  </div>
  <!-- /.content-wrapper -->
<?php
  include("footer.php");
?>

0 个答案:

没有答案