繁体   English   中英

Noob PHP表单逻辑问题

[英]Noob PHP form logic questions

给了我一堆没有很好记录的代码(PHP)。 那就是说,我有一些形式逻辑对我来说没有任何意义。 这是页面html代码:

<?php 
session_start();

ini_set('display_errors', 1);
error_reporting(E_ALL);

$itemcount = isset($_SESSION['itemcount']) ? $_SESSION['itemcount'] : 0;
if ($itemcount == 0)
    {
        header("Location: "."error.php?msg=".rawurlencode("Please add items to your shopping cart before checking out."));
        exit;
    } 

if (!isset($_SESSION['email']))
    {
        header("Location: "."error.php?msg=".rawurlencode("We did not find your information, please fill the needed information again."));
        exit;
    } 

if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $_SESSION['shipname'] = $_POST['shipname'];
        $_SESSION['shipaddress'] = $_POST['shipaddress'];
        $_SESSION['shipzip'] = $_POST['shipzip'];
        $_SESSION['shipcity'] = $_POST['shipcity'];
        $_SESSION['shipstate'] = $_POST['shipstate'];
        $_SESSION['shipcountry'] = $_POST['shipcountry'];

        $_SESSION['paymenttype'] = $_POST['paymenttype'];
        $_SESSION['cardname'] = $_POST['cardname'];
        $_SESSION['cardno'] = $_POST['cardno'];
        $_SESSION['cardmonth'] = $_POST['cardmonth'];
        $_SESSION['cardyear'] = $_POST['cardyear'];

        header("Location: "."thankyou.php");
    } 

$shipname = isset($_SESSION['shipname']) ? $_SESSION['shipname'] : '';
$shipaddress = isset($_SESSION['shipaddress']) ?    $_SESSION['shipaddress'] : '';
$shipzip = isset($_SESSION['shipzip']) ? $_SESSION['shipzip'] : '';
$shipcity = isset($_SESSION['shipcity']) ? $_SESSION['shipcity'] : '';
$shipstate = isset($_SESSION['shipstate']) ? $_SESSION['shipstate'] : '';
$shipcountry = isset($_SESSION['shipcountry']) ? $_SESSION['shipcountry'] : '';
$cardname = isset($_SESSION['cardname']) ? $_SESSION['cardname'] : '';
$cardno = isset($_SESSION['cardno']) ? $_SESSION['cardno'] : '';

?>

这是html格式:

<div id="wb_checkout" style="position:absolute;width:957px; height:374px;">
  <form name="checkout" method="post" action="checkout.php" id="checkout">
    <div id="wb_Text3" style="position:absolute;left:32px;top:88px;width:88px;height:34px;z-index:36;">
      <div style="font-family:Arial;font-size:13px;color:#000000;">
        <div><span style="font-family:Verdana;font-size:16px;">Address:  </span>    </div>
      </div>
    </div>
    <div id="wb_Text5" style="position:absolute;left:32px;top:138px;width:61px;height:34px;z-index:37;">
      <div style="font-family:Arial;font-size:13px;color:#000000;">
        <div><span style="font-family:Verdana;font-size:16px;">City:</span>    </div>
      </div>
    </div>
    <div id="wb_Text6" style="position:absolute;left:32px;top:193px;width:88px;height:42px;z-index:38;">
      <div style="font-family:Arial;font-size:13px;color:#000000;">
        <div><span style="font-family:Verdana;font-size:16px;">Zip Code:</span></div>
      </div>
    </div>
    <div id="wb_Text7" style="position:absolute;left:294px;top:195px;width:74px;height:34px;z-index:39;">
      <div style="font-family:Arial;font-size:13px;color:#000000;">
        <div><span style="font-family:Verdana;font-size:16px;">State:</span>    </div>
      </div>
    </div>
    <div id="wb_Text4" style="position:absolute;left:32px;top:37px;width:88px;height:34px;z-index:40;">
      <div style="font-family:Arial;font-size:13px;color:#000000;">
        <div><span style="font-family:Verdana;font-size:16px;">Name:</span>    </div>
      </div>
    </div>
    <input type="text" id="Editbox1" style="position:absolute;left:125px;top:85px;width:412px;height:34px;line-height:34px;z-index:41;" name="shipaddress" value="">
    <input type="text" id="Editbox3" style="position:absolute;left:99px;top:137px;width:412px;height:34px;line-height:34px;z-index:42;" name="shipcity" value="">
    <input type="text" id="Editbox4" style="position:absolute;left:373px;top:195px;width:65px;height:34px;line-height:34px;z-index:43;" name="shipstate" value="">
    <input type="text" id="Editbox2" style="position:absolute;left:124px;top:36px;width:412px;height:34px;line-height:34px;z-index:44;" name="shipname" value="">
    <input type="text" id="Editbox5" style="position:absolute;left:125px;top:194px;width:117px;height:34px;line-height:34px;z-index:45;" name="shipzip" value="">
    <input type="submit" id="Button1" name="submitOrder" value="Submit Order" style="position:absolute;left:612px;top:317px;width:110px;height:36px;z-index:46;">
    <input type="submit" id="Button2" name="cancelOrder" value="Cancel Order" style="position:absolute;left:761px;top:318px;width:114px;height:35px;z-index:47;">
  </form>
</div>

这是以下形式的图像: 在此处输入图片说明

问题在于该页面没有被渲染。 它仅跳至下一页(thankyou.php),而无需显示表单,因此用户可以输入运输信息。 而且,按照作者使用的逻辑,我看不到送货信息将如何到达下一页,因为在它之前有一个标头声明。 最后,我看不到任何处理提交订单或取消订单的逻辑。

我是PHP的新手,但是学习很快; 我已经进行了很长时间的编程,但这毫无意义。 有人可以告诉我:

  • 为什么页面没有显示
  • 我怀疑这个逻辑有些奇怪吗? 如果是这样,修复它的最佳方法是什么?
  • 这两个按钮应该如何工作? (这些是“提交订单”按钮的设置)

在此处输入图片说明

进行此操作的更好方法是使用以下方法:

if(isset($_POST['submitOrder']))

代替这个:

if($_SERVER['REQUEST_METHOD'] == 'POST')

仅在单击了“提交订单”按钮后,才会设置该按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM