在我的电子商务网站上购买confimation页面显示一条警告信息

时间:2017-07-10 14:41:32

标签: php e-commerce

我正在尝试开发一个电子商务网站。但我的问题出在产品购买确认页面。它显示了这种类型的消息:(注意:会话已经启动 - 忽略第6行的C:\ xampp \ htdocs \ online shop \ dataAccessLayer \ dalSession.php中的session_start()我需要一些建议如何解决这个问题。 这是我的代码。

这是我的dalSession.php页面:

<?php

class Session
{
public static function Start(){
    session_start(); //line 6
}

public static function Set($key , $value){
    $_SESSION[$key] = $value;
}

public static function Get($key){
    if (isset($_SESSION[$key])) {
        return $_SESSION[$key];
    }
    else{
        return false;
    }
}

public static function Stop(){
    session_destroy();
    header("Location:user/login.php");
}

public static function StopA(){
    session_destroy();
    header("Location:../user/login.php");
}

public static function StopB(){
    session_destroy();
    header("Location:login.php");
}


public static function Check()
{
    self::Start();
    //echo $this->user_id;;
    if (self::Get("Mlogin")==false) 
    {
        self::Stop();
        header("Location:login.php");
    }
}

public static function CheckA(){
    self::Start();
    if (self::Get("Alogin")==false) {
       self::StopA();
       header("Location:../user/login.php");
    }
}

public static function CheckAll()
{
    if (self::Get("Mlogin")==false && self::Get("Alogin")==false) 
    {
        return false;
    }
    else
    {
        return true;    
    }    
}

public static function CheckUserLogin()
{self::Start();
    if (self::Get("Mlogin")==false) 
    {
        return false;
    }
    else
    {
        return true;    
    }    
}

public static function Auto(){
    self::Start();
    if(self::Get("Mlogin")==false){
       echo "<a style=\"color:white;\" href='user/login.php'>Login</a>";
 } else {
       echo "<a style=\"color:red;\" href='?action=logout'>Logout</a>";
      if(isset($_GET['action']) && ($_GET['action']== "logout")){
        self::Stop();
    }
 }

}

 public static function AutoA(){
    self::Start();
    if(self::Get("Mlogin")==false){
       echo "<a style=\"color:white;\" href='login.php'>Login</a>";
    } else {
       echo "<a style=\"color:red;\" href='?action=logout'>Logout</a>";
      if(isset($_GET['action']) && ($_GET['action']== "logout")){
        self::StopB();
       }
   }

  }


  }

  ?>

这是我的confirm.php代码:

  <?php
   require_once("/../dataAccessLayer/dalSession.php");
   require_once("/../dataAccessLayer/dalLogin.php");
   session::check();
   ?>

   <?php
    if(isset($_GET['action']) && ($_GET['action']== "logout")){
        Session::Stop();
    }
    ?>
    <!doctype html>
    <html lang="en-US">
    <head>
   <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Success Notification Boxes</title>

   <link rel="stylesheet" type="text/css" media="all" href="style.css">
   <script type="text/javascript" src="https://ajax.googleapis.com          /ajax/libs/jquery/1.9.1/jquery.min.js"></script>
   </head>

  <body>

  <div id="w">
  <div id="content">
  <!-- Icons source http://dribbble.com/shots/913555-Flat-Web-Elements -->
  <div class="notify successbox">
    <h1>Success!</h1>
    <span class="alerticon"><img src="" alt="checkmark" /></span>
    <p>Thanks For Your Purchase.</p>
    <p>Your Purchase Will Deliver Within 72 Hours.</p>
    <p>Any Question? Please Call: <b>+8801721557233</b></p>
    <p></p>
    </div>

    <h1><a class="navbar-brand" href="../index.php">Home</a></h1>


    </div><!-- @end #content -->
    </div><!-- @end #w -->

    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

您可以修改您的功能Start。替换:

public static function Start(){
    session_start();
}

人:

public static function Start(){
    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
}

它将解决您的问题(通知将不再显示)。这个想法是:如果您的会话已经开始,请不要再次启动它。

然后,如果它不起作用,请在第一个confirm.php之前移除<?php文件中的所有空格(看起来在第一个<?php之前有两个空格,但是我{我不确定是因为你复制/粘贴了它。)

答案 1 :(得分:0)

之前删除空格

这些角色正在开始一个会话。并且可能更好地使用一些模板引擎来生成html? Smarty,twig或简单的php模板。