2012-03-29 2 views
0

이 코드는 다음과 같습니다. $sessionMinus (숫자)이 ($_SESSION['initial_count'])과 같지 않은 경우 양식을 제출하고 싶습니다. 그러나 $sessionMinus($_SESSION['initial_count'])과 같으면 양식이 create_session2.php에 제출되기를 원합니다.이 양식이 나를 오류 페이지로 이동하는 이유는 무엇입니까?

하지만 문제는 무엇이 발생해도 제출 버튼을 클릭하면 번호가 일치하는지 여부에 관계없이 오류 페이지로 이동합니다. 왜 이런 일이 일어나는 걸까요? (이것은 == 및 === 기호를 모두 사용하면 발생합니다).

<?php 
session_start(); 

    if ($sessionMinus == $_SESSION['initial_count']){ 

     $action = ($sessionMinus == $_SESSION['initial_count']) ? "create_session2.php" : $_SERVER['PHP_SELF']; 

    } 

?> 


<body>  
     <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" onsubmit="return validateForm(this);" > 

... 

</body> 

솔루션은 다음과 같습니다 :

은 몇 가지가 있습니다
<?php 

session_start(); 

if ($sessionMinus == $_SESSION['initial_count']){ 

    $action = 'create_session2.php'; 

}else if($sessionMinus != $_SESSION['initial_count']){ 

    $action = $_SERVER['PHP_SELF']; 

} 

?> 

<body> 

      <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" onsubmit="return validateForm(this);" > 



... 
</body> 
+0

어떤 페이지로 연결 되나요? 그 변수가 같지 않으면 행동이 기대 되는가? – Noah

+0

양식 태그를 확인하십시오 –

+0

오류 페이지 - 어떤 종류입니까? 그것은 오류 500, 또는 무엇입니까? – Pete

답변

0

이 될 수있다 :

  1. 더에 대한 귀하의 php_error.log 파일을 확인 아래

    코드입니다 디버그 정보가 있으면 일반적으로 오류의 원인에 대한 정보가 표시됩니다.

  2. PHP 문장처럼 보이고 HTML이 제대로 구분되어 있지 않습니다 (이 코드 줄이 바로 뒤 따르는 경우). if 블록 다음에 <form> 태그 앞에 ?> 태그가 필요합니다. 그래서 코드는 다음과 같습니다 당신이 $action 변수를 할당

    <?php /* <- this should be above this line already in your code */ 
    
    if ($sessionMinus == $_SESSION['initial_count']) { 
        $action = ($sessionMinus == $_SESSION['initial_count']) ? "create_session2.php" : $_SERVER['PHP_SELF']; 
    } 
    /* you need to add the tag below */ 
    ?> 
    <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" onsubmit="return validateForm(this);" > 
    
  3. 는 다음과 같이 괄호 안에 식을 포장 고려해도

    $action = (($sessionMinus == $_SESSION['initial_count']) ? "create_session2.php" : $_SERVER['PHP_SELF']); 
    

PHP_SELF로 (REQUEST_URI-PHP_SELF 변경 문서 루트를 포함하여 전체 경로가 아닌 문서 루트를 기준으로 파일 경로를 제공) create_session2.php 파일의 전체 경로를 추가하십시오.

$action = (($sessionMinus == $_SESSION['initial_count']) ? $_SERVER['SERVER_NAME'] . "/create_session2.php" : $_SERVER['REQUEST_URI']); 

SERVER_NAME 비트를 추가 할 필요는 없지만 항상 내 링크에서 절대 경로를 선호합니다.

더 많은 소스 코드를 제공 할 수 있다면 매우 유용 할 것입니다.

-T

+0

안녕하세요, 내가 복사 한 코드를 게시하고, 코드를 업데이트 하겠지만,> 태그 등은 올바른 위치에 있습니다. – user1292857

+0

안녕하세요, 괄호 이론을 사용해 보았지만 여전히 운이 좋았습니다. REQUEST_URI를 사용해야합니까? ? – user1292857

+0

아니요, 사용하지 않아도됩니다 **. 생성 된 페이지의 소스 코드를 확인하고 양식의 동작이 무엇인지 확인할 수 있습니까? –

관련 문제