两个会话中的一个不在PHP中工作

时间:2014-02-06 19:17:23

标签: php session

我有两个以下的PHP脚本。 这个从表单中获取数据并与它们一起使用。会话设置在脚本的底部。

<!DOCTYPE html>
<HTML>
    <HEAD>
        <META name="author" content="Bc. Michal Vlasák">
        <META name="generator" content="Notepad++">
        <META charset="UTF-8">
        <LINK rel="stylesheet" type="text/css" href="styles.css">
        <TITLE>Objednávkový formulář</TITLE>
    </HEAD>
    <BODY>
        <?php
            session_unset();
            session_start();
            if(isset($_POST['confirm'])){
                $org = $_POST['organization'];
                $street = $_POST['street'];
                $city = $_POST['city'];
                $email = $_POST['email'];
                $org_nmr = $_POST['org_number'];
                $org2 = $_POST['organization2'];
                $street2 = $_POST['street2'];
                $city2 = $_POST['city2'];
                $goods1_prop1 = $_POST['goods1_prop1'];
                $goods1_prop2 = $_POST['goods1_prop2'];
                $goods1_prop3 = $_POST['goods1_prop3'];
                $goods1_prop4 = $_POST['goods1_prop4'];
                $goods2_prop1 = $_POST['goods2_prop1'];
                $goods2_prop2 = $_POST['goods2_prop2'];
                $goods2_prop3 = $_POST['goods2_prop3'];
                $goods2_prop4 = $_POST['goods2_prop4'];
                $goods3_prop1 = $_POST['goods3_prop1'];
                $goods3_prop2 = $_POST['goods3_prop2'];
                $goods3_prop3 = $_POST['goods3_prop3'];
                $goods3_prop4 = $_POST['goods3_prop4'];
                $goods4_prop1 = $_POST['goods4_prop1'];
                $goods4_prop2 = $_POST['goods4_prop2'];
                $goods4_prop3 = $_POST['goods4_prop3'];
                $goods4_prop4 = $_POST['goods4_prop4'];
                $goods5_prop1 = $_POST['goods5_prop1'];
                $goods5_prop2 = $_POST['goods5_prop2'];
                $goods5_prop3 = $_POST['goods5_prop3'];
                $goods5_prop4 = $_POST['goods5_prop4'];
                $goods6_prop1 = $_POST['goods6_prop1'];
                $goods6_prop2 = $_POST['goods6_prop2'];
                $goods6_prop3 = $_POST['goods6_prop3'];
                $goods6_prop4 = $_POST['goods6_prop4'];
                $goods7_prop1 = $_POST['goods7_prop1'];
                $goods7_prop2 = $_POST['goods7_prop2'];
                $goods7_prop3 = $_POST['goods7_prop3'];
                $goods7_prop4 = $_POST['goods7_prop4'];
                $goods8_prop1 = $_POST['goods8_prop1'];
                $goods8_prop2 = $_POST['goods8_prop2'];
                $goods8_prop3 = $_POST['goods8_prop3'];
                $goods8_prop4 = $_POST['goods8_prop4'];
                $goods9_prop1 = $_POST['goods9_prop1'];
                $goods9_prop2 = $_POST['goods9_prop2'];
                $goods9_prop3 = $_POST['goods9_prop3'];
                $goods9_prop4 = $_POST['goods9_prop4'];
                $goods10_prop1 = $_POST['goods10_prop1'];
                $goods10_prop2 = $_POST['goods10_prop2'];
                $goods10_prop3 = $_POST['goods10_prop3'];
                $goods10_prop4 = $_POST['goods10_prop4'];
                if((empty($org)) && (empty($street)) && (empty($city)) && (!ereg("^.+@.+\\..+$", $email)) && (empty($org_nmr))){
                    echo '<P class="error">Chyba: Nezadal(a) jste žádné povinné údaje!</P>';
                }
                if(empty($org)){
                    echo '<P class="error">Chyba: Nezadal(a) jste název organizace!</P>';
                }
                if(empty($street)){
                    echo '<P class="error">Chyba: Nezadal(a) jste název ulice!</P>';
                }
                if(empty($city)){
                    echo '<P class="error">Chyba: Nezadal(a) jste PSČ a město!</P>';
                }
                if(!ereg("^.+@.+\\..+$", $email)){
                    echo '<P class="error">Chyba: Nezadal(a) jste Váš e-mail nebo je v nesprávném formátu!</P>';
                }
                if(empty($org_nmr)){
                    echo '<P class="error">Chyba: Nezadal(a) jste IČ organizace!</P>';
                }
                if((empty($goods1_prop4)) && (empty($goods2_prop4)) && (empty($goods3_prop4)) && (empty($goods4_prop4)) && (empty($goods5_prop4)) && (empty($goods6_prop4)) && (empty($goods7_prop4)) && (empty($goods8_prop4)) && (empty($goods9_prop4)) && (empty($goods10_prop4))){
                    echo '<P class="error">Bohužel jste si u nás nic neobjednal(a).</P>';
                }
                else{
                    $result = '<TABLE><TR><TD class="goods_title">Fakturační adresa</TD></TR><TR><TD class="cells">'.$org.'</TD></TR><TR><TD  class="cells">'.$street.'</TD></TR><TR><TD  class="cells">'.$city.'</TD></TR><TR><TD  class="cells">'.$email.'</TD></TR><TR><TD  class="cells">IČ: '.$org_nmr.'</TD></TR></TABLE>';
                    if((!empty($org2)) || (!empty($street2)) || (!empty($city2))){
                        $result .= '<BR /><TABLE><TR><TD class="goods_title">Dodací adresa</TD></TR><TR><TD class="cells">'.$org2.'</TD></TR><TR><TD  class="cells">'.$street2.'</TD></TR><TR><TD  class="cells">'.$city2.'</TD></TR></TABLE>';
                    }
                    $result .= '<BR /><TABLE class="order_result"><TR><TD class="order_result_title">Kód a název zboží</TD><TD class="order_result_title">Popis</TD><TD class="order_result_title" style="padding-right: 20px;">Balení</TD></TR>';
                    if(!empty($goods1_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods1_prop1.'</TD><TD class="order_result">'.$goods1_prop2.', '.$goods1_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods1_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods2_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods2_prop1.'</TD><TD class="order_result">'.$goods2_prop2.', '.$goods2_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods2_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods3_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods3_prop1.'</TD><TD class="order_result">'.$goods3_prop2.', '.$goods3_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods3_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods4_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods4_prop1.'</TD><TD class="order_result">'.$goods4_prop2.', '.$goods4_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods4_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods5_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods5_prop1.'</TD><TD class="order_result">'.$goods5_prop2.', '.$goods5_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods5_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods6_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods6_prop1.'</TD><TD class="order_result">'.$goods6_prop2.', '.$goods6_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods6_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods7_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods7_prop1.'</TD><TD class="order_result">'.$goods7_prop2.', '.$goods7_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods7_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods8_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods8_prop1.'</TD><TD class="order_result">'.$goods8_prop2.', '.$goods8_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods8_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods9_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods9_prop1.'</TD><TD class="order_result">'.$goods9_prop2.', '.$goods9_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods9_prop4.' ks</TD></TR>';
                    }
                    if(!empty($goods10_prop4)){
                        $result .= '<TR><TD class="order_result">'.$goods10_prop1.'</TD><TD class="order_result">'.$goods10_prop2.', '.$goods10_prop3.'</TD><TD class="order_result" style="padding-right: 20px; text-align: right;">'.$goods10_prop4.' ks</TD></TR>';
                    }
                    $result .= '</TABLE>';
                    echo $result;
                    echo '<P class="caption">Potvrzuji správnost všech údajů a závazně objednávám výše uvedené zboží.</P>';
                    echo '<FORM method="post" action="send.php"><INPUT type="submit" name="send" value="Objednat"></FORM>';
                    $_SESSION['email'] = $email;
                    $_SESSION['result'] = $result;
                }
            }
        ?>
    </BODY>
</HTML>

第二个从上面的脚本中获取数据。

<?php
    session_start;
    if(!empty($_POST['send'])){
        $email = $_SESSION['email'];
        $result = $_SESSION['result'];
        if(empty($_SESSION['email'])){
            die("Session email není nastaveno, ukončuji skript.");
        }
        if(empty($_SESSION['result'])){
            die("Session result není nastaveno, ukončuji skript.");
        }
        echo 'Ahoj';
    }
?>

会话'结果'死了。为什么呢?

感谢。

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。

我可以通过if(isset($_POST['confirm']))告诉您,我正在检查是否设置了名为named element的{​​{1}}表单(confirm),该表单不在您发布的内容中代码,以便不执行

(如果你有另一段代码没有显示与isset相关,我希望看到它。)

我唯一可以说的是,您可能尝试使用提交按钮作为confirm,其名称为isset而不是send

confirm

另外,你犯了一个错字(?)(我希望不是)。

您目前有<INPUT type="submit" name="send" value="Objednat"> ,应该是session_start;

您忘记了括号session_start();

()

另外,将HTML放在PHP下面。正如John Conde在his comment中所述:

<?php session_start(); if(!empty($_POST['send'])){ $email = $_SESSION['email']; $result = $_SESSION['result']; if(empty($_SESSION['email'])){ die("Session email není nastaveno, ukončuji skript."); } if(empty($_SESSION['result'])){ die("Session result není nastaveno, ukončuji skript."); } echo 'Ahoj'; } ?> 必须放在HTML页面顶部

N.B。:我将这些重新定位在顶部,而不是位于底部:

session_start()

$_SESSION['email'] = $email;
$_SESSION['result'] = $result;