2014-02-06 2 views
0

다음 두 개의 PHP 스크립트가 있습니다. 이 양식은 양식에서 데이터를 가져와 함께 사용합니다. 세션은 스크립트 맨 아래에 설정됩니다.두 세션 중 하나가 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 protected]+\\..+$", $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 protected]+\\..+$", $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'; 
    } 
?> 

세션 '결과'가 죽습니다. 왜?

감사합니다.

+2

'으로 session_start()'의 상단에 가야한다 w 페이지를 HTML 앞에 배치하십시오. –

+0

실수로 session_start()를 작성했습니다. html .session_start()는 PHP 코드 상단에 있어야합니다. 세션 전에는 사용할 수 없습니다. 이것은 PHP 규칙입니다. –

+0

** 정말 ** 배열에 대해 알아야하고 어떻게 사용합니까? –

답변

0

코드에 몇 가지 문제가 있습니다. 난 당신이 양식의이 게시 코드에없는 named element라고 confirm 설정을 (isset), 그래서을 실행하지 않습니다 있는지 확인하고 if(isset($_POST['confirm']))에 의해 무엇을 말할 수에서

.

(표시하려는 다른 코드가 confirm 인 경우보고 싶습니다.)

내가 말할 수있는 유일한 것은 isset과 같이 제출 버튼을 사용하려고 시도했는데 send이고 confirm이 아니라는 것입니다.

<INPUT type="submit" name="send" value="Objednat"> 

더하기, 오타 (?) (나)는 아닙니다.

당신은 현재 당신은 게다가, 당신의 PHP 아래에 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'; 
    } 
?> 

를 잊어

session_start();과 같이하도록되어 session_start; 있습니다. 존 귀족이 his comment에 명시된 바와 같이 그리고 :

는 "session_start()은 HTML 전에 Thew 보낸 페이지의 상단에 가야한다"

NB : 내가 대신 하단에있는의, 상단에있는 다음을 재배치 :

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

<?php 
    session_unset(); 
    session_start(); 

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

<!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 
    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 protected]+\\..+$", $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 protected]+\\..+$", $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> 
+0

session_start()에서 누락되었습니다(); 실수였다. 여러분 감사합니다. –

+0

당신을 진심으로 환영합니다. @ MichalVlasák - 그것을 알게되어 기쁩니다. 환호 –

+0

다음 질문을 닫으십시오. 그렇지 않으면 응답이없는 범주에 남아 있습니다. @ MichalVlasák –

관련 문제