세션 변수를 사용하여 로그인 ID를 저장하려고하는 학교 프로젝트가 있지만 파일간에 세션 변수에 액세스 할 수 없습니다. 저는 비교적 세션에 익숙하지 않지만,이 프로젝트에 사용하고있는 동일한 서버에서보다 단순한 응용 프로그램에서 작업하도록했습니다. 프로그램은 다음과 같이 작동합니다.여러 파일에서 PHP 세션 변수에 액세스
getData.php는 사용자가 자신의 ID와 암호를 입력하는 로그인 양식입니다. front.php는이 양식에서 데이터를 수집하고 php curl을 사용하여 다른 그룹 구성원의 다른 서버로 전달합니다. 이것이 내 부분이 아니기 때문에 나는이 코드를 가지고 있지 않다. 데이터베이스에 액세스하면 데이터베이스의 정보가 curl을 사용하여 나에게 다시 전달되고 테이블의 tList.php에서 형식을 지정합니다.
문제는 MY SERVER에있는 파일간에 세션 변수에 액세스 할 수없는 것입니다. 내가 달성하고자하는 정확한 목표는 tList.php의 front.php에서 작성한 세션 변수에 액세스하는 것이지만, front.php에 변수를 지정하더라도 변수가 설정되지 않습니다.
도움을 주시면 감사하겠습니다. 고맙습니다.
getData.php :
<?php
session_start();
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/style.css">
<link rel="stylesheet" type="text/css" href="../css/b.css">
<link href="../css/test.css" rel="stylesheet" type="text/css">
</head>
<body>
<script type="text/javascript">
function status_toggle() {
if(document.getElementById('stud').checked) {
document.getElementById('sl').style.display='block';
document.getElementById('tl').style.display='none';
} else if(document.getElementById('teach').checked) {
document.getElementById('sl').style.display='none';
document.getElementById('tl').style.display='block';
}
}
</script>
<!-- Status Selection -->
<form name="radio" class="nav selection_form" action="" align="center">
<div align="center" class="">
Are you a <br>
Student <input id="stud" type="radio" name="status" value="student" onclick="javascript:status_toggle();" checked>
    or    
Teacher <input id="teach" type="radio" name="status" value="teacher" onclick="javascript:status_toggle();">
</div>
</form>
<!-- Student Form -->
<form id="sl" name="student_login" action="front.php" class="input-block my_form" autocomplete="on" method="post">
<div align="center">
Username: <input type="text" name="txtUCID" size="15" /><br />
Password: <input type="password" name="txtPasswd" size="15" /><br />
<p><input class="btn-red" id="submit" type="submit" value="Login" /></p>
</div>
</form>
<form style="display:none" id="tl" name="teacher_login" action="front.php" class="input-block my_form" autocomplete="on" method="post">
<div align="center">
Username: <input type="text" name="teacherTxtUCID" size="15" /><br />
Password: <input type="password" name="teacherTxtPasswd" size="15" /><br />
<p><input class="btn-grn" id="submit" type="submit" value="Login" /></p>
</div>
</form>
<div align="center" class="alert_box input-block my_form">
<h2 align="center" type="text" id="local_db"> change me!</h2>
<h2 align="center" type="text" id="njit_db"> change me!</h2>
</div>
</body>
</html>
front.php :
<?php
session_start();
$un = $_POST["txtUCID"];
$pw = $_POST["txtPasswd"];
$_SESSION['id'] = $un;
$curl = curl_init('web.njit.edu/~mc332/cs_490/loginSTD.php');
$postData= array(
'txtUCID' => $un,
'txtPasswd' => $pw
);
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 0,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_MAXREDIRS => 5
));
echo $_SESSION['id'];
$result = curl_exec ($curl);
curl_close ($curl);
tList.php
<?php
session_start();
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/style.css">
<link rel="stylesheet" type="text/css" href="list.css">
</head>
<body>
<div class="header">
Your Tests
</div>
<div class="list-view">
<?php
echo "SV: ".$_SESSION['id'];
$result = $_POST['tests'];
echo "<table>";
echo "<tr><th>Test ID</th><th>Test Name</th><th>Attempted</th><th>Score</th><th> Attempt Test </th></tr>";
$json = json_decode($result);
$i = 0;
while($i < count($json)) {
$id = $json[$i][0];
$name = $json[$i][1];
$tId = $id;
echo "<tr> <td> $id </td> <td> $name </td> <td> ? </td> <td> ?/100 </td> <td> <form method=\"post\" action=\"goToTest.php\" id=\"form$tId\"><button type=\"submit\">Take Test</button></input><input type=\"text\" style=\"display: none;\" name=\"poop\" value=\"$tId\"></input></form></td> </tr>";
$i++;
}
echo "</table>";
echo "end";
?>
</div>
</body>
</html>
여기
작업 애플리케이션이다
FILE1 :
01,235,<?php
session_start();
$_SESSION['test'] = "test";
echo "<a href=\"t2.php\">Click</a>";
?>
파일 2 :
<?php
session_start();
echo $_SESSION['test'];
?>
session_start() 함수는 모든 적절한 위치에 태그 앞에 나타납니다. 그것은 <-! Doctype html -> 앞에 있어야합니까? – Mike
예. 그것은 공백을 포함하여 모든 html 앞에 있어야합니다. –
불행히도, 그 문제를 해결하지 못했습니다. 실제로 중요한 두 파일은 session_start()를 코드의 첫 번째 줄로 사용합니다 (물론 안에 있음). 방금 첫 번째 파일에 세션을 열어 작동 여부를 확인했지만 방금 확인한 내용으로 변경했습니다. – Mike