최근에 작은 보고서 관리 시스템을 만들려고했습니다. 이 이상한 문제가 발생할 때까지 모든 것이 잘되고있었습니다. 코드에는 html이 많이 포함되어 있으므로 중요한 부분 만 포함합니다.코드 블록이 실행되지 않습니다.
기본적으로 로그인 페이지입니다. 정보를 SESSION 변수에 저장하고 있습니다.
사용자 이름과 패스가 일치하지 않을 경우 추가 처리를 위해 오류 메시지가 아래의 기능에 표시됩니다.
편집 : 내 프로젝트의 모든 페이지는 다음과 같은 내용
// Start of config.php
session_start();
error_reporting(E_ERROR);
// ********************* Database Config **********************//
$dbHost = "localhost"; // MySQL host
$dbUser = ""; // MySQL username
$dbPass = ""; // MySQL password
$dbDatabase = ""; // MySQL main database name
다음과 같습니다 login.php의 일부
으로 config.php에 포함되어 있습니다.//START OF PHP CODE//
include("config.php");
function gotError($msg)
{
$_SESSION['err'] = $msg;
header("Location: login.php");
die();
}
//CODE FOR EVALUATION OF DATA//
// END OF THE PHP CODE & BELOW THE HTML WILL START //
그리고 동일한 페이지의 시작 PHP 코드 아래에는 html 코드가 있습니다. html 사이에는 위에 설정된 데이터를 사용하기위한 PHP 코드가 있습니다.
----------- SOME HTML CODE HERE----
<?php
if(isset($_SESSION['err']))
{
$html.= "<script type='text/javascript'>";
$html.= '$.alert("'.$_SESSION['err'].'");';
$html.= "</script>";
print $html;
}
?>
----------------- SOME HTML CODE HERE--------
지금 여기에 이상한 행동으로 제공합니다. 페이지 자체 &에 로그인 데이터를 게시 에러가 발생했을 경우, 오류가 세션 변수에 설정된 {$ _SESSION [ 'ERR']} 한 후 다시 자체로 리디렉션됩니다 $ _SESSION [ 'err']이 비어 있지 않으면 jquery 메시지 상자를 표시합니다.
위의 코드는 원래 형태로는 작동하지 않지만 아래에 표시된 코드를 사용하면 코드가 작동합니다. 이전에 작동하지 않은 조건부 구성 요소를 포함한 전체 코드를 의미합니다. 해당 특정 행을 제거하면 조건부 평가가 작동하지 않습니다.
<?php
print($_SESSION['err']);
if(isset($_SESSION['err']))
{
$html.= "<script type='text/javascript'>";
$html.= '$.alert("'.$_SESSION['err'].'");';
$html.= "</script>";
print $html;
}
?>
누구에 대한 실마리가 있습니까? 나는 PHP 버전 5.3.8을 사용하고있다.
감사합니다.
스크립트 시작 부분에'session_start()'가 있습니까? – PeeHaa
추가 정보를 추가했습니다. 문제는 세션 변수가 설정되지 않고, 위의 내용을 인쇄 할 때 if 조건을 평가하는 것입니다. – Nick