PHP + MySQL - 如何在结帐之前检查是否登录

标签 php mysql

我正在做一个学校项目,我必须创建一个网站。我不太擅长 php,觉得它很困惑。我需要完成的是,当客户单击“立即购买”按钮并输入他们的电子邮件地址时,页面将 1. 仅在检查他们是否已经登录后将他们的订单写入数据库。如果客户未登录,他们将被重定向到登录页面。

<?php
    //  Start a PHP session
    session_start();

    // Check to see if user is already logged in
    if(isset($_SESSION["sname"]))
    {
        header('Location: custwelcome.php');
        exit;
    }

?>

正如我所假设的,这应该确保从客户登录存储的 session 变量存在。

我是否可以将这段代码放在将客户订单写入数据库的 php 代码之前?或者我会将其放在“产品”详细页面上。 (对于作业,网页在单击“立即购买”按钮之前还是之后检查并不重要。它只需要检查即可)。

如果这没有提供足够的详细信息,这是我的产品页面:

<!DOCTYPE html>

<!-- XXXX 
project
athletic1.htm -->

<html lang="en">

  <head>
    <!-- Meta tag -->
    <meta name="robots" content="noindex.nofollow" />
    <meta charset="utf-8" />

    <!-- Link tag for CSS -->
    <link type="text/css" rel="stylesheet" href="../stylesheet/project.css" />

    <!-- Javascript tags -->
    <script type="text/javascript" src="../js/projectmessages.js"></script>


    <!-- Web Page Title -->
    <title>Shoe Source Unlimited - Athletic Shoe Sale</title>

  </head>

  <body>
    <div id="header">

                <img src="../images/logo.png" alt="Logo" />

    <p class="sh1">Shoe Source Unlimited</p>
    <p class="sh2">Your source for lightning sales of this season's hot shoes!    </p>

        <p class="sh3">XXXXX </p>
  </div>

    <div id="navbar">
        <ul id="nav">
            <li>
                <a href="../homepage.htm">Home</a>                          
            </li>

            <li>
                <a href="#">Men's</a>
                    <ul>
                        <li><a href="../sneakers.htm">Sneakers</a></li>
                        <li><a href="../loafers.htm">Loafers</a></li>
                        <li><a href="../athletic.htm">Athletic</a></li>
                    </ul>                       
            </li>

            <li>
                <a href="#">Women's</a>
                    <ul>
                        <li><a href="../boots.htm">Boots</a></li>
                        <li><a href="../heels.htm">Heels</a></li>
                        <li><a href="../sandals.htm">Sandals</a></li>       
                    </ul>               
            </li>

            <li>
                <a href="../about.htm">About Us</a>         

            </li>

            <li>
                <a href="../signup.htm">Sign Up</a>

            </li>

            <li>
                <a href="../login.php">Log In</a>

            </li>

        </ul>   
    </div>




  <div id="external">

    <p>

            <a href="https://twitter.com/XXXXX" onclick="window.open(this.href); return false;">
                <img src="../images/twitter.jpg" alt="twitter" />
            </a>
     </p>
            <p>Follow us on Twitter!</p>
        <br/>


    <p>

            <a href="http://www.facebook.com/ShoeSourceUnlimited" onclick="window.open(this.href); return false;">
                <img src="../images/facebook.png" alt="facebook" />
            </a>
    </p>
            <p>Like us on Facebook!</p>
              <br/>


        <a href="../em/projectem.htm">
        <img src="../images/email.jpg" alt="pinkemail"  />
        </a>
    </p>    
            <p> Send us an email!</p>   
    </div>  




<form id="joinform" action="../purchaseconfirm.php" method="post">
    <div id="about">

        <p class="abouttitle">Grey Athletic Shoe with Orange Enhancements</p>
        <p class="abouttitle"><img src="../images/shoes/athletic1.jpg" alt="athletic1" /></p>
        <p class="description">This low-top athletic shoe is designed for comfort during long-use.
    The bright orange color is just bright enough to show some flash without going over the top!</p>

    <p class="price">Price: $22.00 - tax included </p><br/><br/>    

        <!--Email -->
                <p class="size">
                <label for="email">Email:</label>
                <input type="email" id="email" name="email" required
                title="Email: 6-59 characters, lowercase, valid email     only!"
                pattern="[a-z0-9.-_]+@[a-z0-9-]+\.[a-z]{2,6}"
                maxlength="60"
                onfocus="emailmsg()" />
                </p>

        <!-- Pick a size -->

                <select name="size" id="size" required title="Select a size" >
                <option value="">Select a size...</option>
                <option value="athletic1size10">Grey and Orange Mens 10</option>
                <option value="athletic1size10.5">Grey and Orange Mens 10.5</option>
                </select>   


        <p class="submit">
                <input type="submit" 
                value=" Buy Now! "/>
            <br/><br/>
        </p>        
    </div>

</form>





    <div id="footer">

        <p>

            &copy;2014, XXXXX

        </p>
    </div>

  </body>

</html> 

这是我所有购买的“确认页面”:

<!--  
project
purchaseconfirm.php -->

<!-- this will write to DB -->



<?php
// Connect to LOCAL or SERVER MySQL Database. Just change between local and server
    include('connect/local-connect.php');

// initialize and populate PHP variables from user-entered data

    $email = $_POST['email'];
    $size = $_POST['size'];



//Build a MySQL statement to populate the database table
    $query =
    "INSERT INTO shopping (email, size)
    VALUES ('$email', '$size')";

// Run the query we just built
     $result = mysqli_query($dbc,$query) or die('Unable to write to database');

// Close the database connection
    mysqli_close($dbc);

?>






<html lang="en">

  <head>
    <!-- Meta tag -->
    <meta name="robots" content="noindex.nofollow" />
    <meta charset="utf-8" />

    <!-- Link tag for CSS -->
    <link type="text/css" rel="stylesheet" href="stylesheet/project.css" />

    <!-- Javascript tags -->
    <script type="text/javascript" src="js/projectmessages.js"></script>


    <!-- Web Page Title -->
    <title>Shoe Source Unlimited - Purchase Confirmation</title>

  </head>

   <body>
     <div id="header">

                <img src="images/logo.png" alt="Logo" />

        <p class="sh1">Shoe Source Unlimited</p>
        <p class="sh2">Your source for lightning sales of this season's hot shoes!</p>

        <p class="sh3">XXXXX</p>
  </div>

    <div id="navbar">
         <ul id="nav">
            <li>
                <a href="homepage.htm">Home</a>                         
            </li>

            <li>
                <a href="#">Men's</a>
                    <ul>
                         <li><a href="sneakers.htm">Sneakers</a></li>
                        <li><a href="loafers.htm">Loafers</a></li>
                        <li><a href="athletic.htm">Athletic</a></li>
                    </ul>                       
            </li>

            <li>
                <a href="#">Women's</a>
                    <ul>
                        <li><a href="boots.htm">Boots</a></li>
                        <li><a href="heels.htm">Heels</a></li>
                        <li><a href="sandals.htm">Sandals</a></li>      
                     </ul>              
            </li>

            <li>
                <a href="about.htm">About Us</a>            

            </li>

            <li>
                <a href="signup.htm">Sign Up</a>

            </li>

            <li> 
                <a href="login/login.php">Log In</a>

            </li>

        </ul>   
    </div>


  <div id="external">

    <p>

            <a href="https://twitter.com/XXXXX" onclick="window.open(this.href); return false;">
                <img src="images/twitter.jpg" alt="twitter" />
            </a>
    </p>
            <p>Follow us on Twitter!</p>
        <br/>


    <p>

            <a href="http://www.facebook.com/ShoeSourceUnlimited" onclick="window.open(this.href); return false;">
                <img src="images/facebook.png" alt="facebook" />
            </a>
    </p>
            <p>Like us on Facebook!</p>
        <br/>


        <a href="email/projectem.htm">
         <img src="images/email.jpg" alt="pinkemail"    />
        </a>

            <p> Send us an email! </p>  
    </div>      

    <div id="main">
    <p>Purchase Confirmed!</p>

    </div>

    <div id="about">
       <p class="bold">


        </p>

        <p> Your payment has been approved and your purchase shall be shipped to     you shortly </p>
        <br/>
        <p> Feel free to contact us with any further questions.</p>
        <br/>
<form id="joinform" action="homepage.htm" method="get">
        <p class="submit">
                <input type="submit" 
                value=" Home Page "/>

    </div>







    <div id="footer">

        <p>

            &copy;2014, XXXXX

        </p>
    </div>

  </body>

</html>

我尝试将第一个代码应用于每个文档,但运气不佳 - 我仍然可以在不登录的情况下“购买”。提前谢谢您!

最佳答案

你可以这样做

if (!isset($_SESSION))
  {
    session_start();
  }

// Check to see if user is already logged in
    if(isset($_SESSION["sname"]))
    {
        header('Location: custwelcome.php');
    }

关于PHP + MySQL - 如何在结帐之前检查是否登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23441031/

相关文章:

javascript - 如何通过 JQuery Ajax 调用在 PHP 中验证我的表单?

php - 引导 Laravel 环境

php - 如何使用 PHP CURL 强制 XML 响应

php - Symfony2 Twig 扩展

php - 从 while 循环创建单个变量

python - Flask、Postman 和 Mysql 多字段插入问题

php - while循环导致网站消失

mysql - SpringBoot-MySQL 或 ExpressJS-MongoDB 哪一个最适合构建在线书店的 REST API?

mysql - 在 phpmyadmin 中创建函数失败 - 为什么?

mysql - Entity Framework : Set MySQL custom environment variables