이 글은 주로 Php에서 Session을 만드는 방법을 소개합니다. 관심있는 친구들이 참고하시면 좋을 것 같습니다.
관련 주제 추천: php 세션 (그림, 텍스트, 비디오 및 실제 사례 포함)
세션 세션을 시작하고 $admin 변수 생성:
// 启动 session session_start(); // 声明一个名为 admin 的变量,并赋空值。 $_session["admin"] = null; ?>
Session을 사용하거나 PHP 파일이 필요한 경우 세션 변수를 호출하려면 세션을 호출하기 전에 session_start() 함수를 사용하여 시작해야 합니다. 다른 것을 설정할 필요가 없습니다. PHP가 자동으로 세션 파일을 생성합니다.
이 프로그램을 실행한 후 시스템 임시 폴더에서 세션 파일을 찾을 수 있습니다. 일반 파일 이름은 sess_4c83638b3b0dbf65583181c2f89168ec와 32비트로 인코딩된 임의 문자열 형식입니다. 편집기로 열고 내용을 살펴보세요.
admin|N;
일반 콘텐츠 구조:
변수 이름 | 유형: 길이: 값
각 변수를 세미콜론으로 구분합니다. 길이, 종류 등 일부 생략이 가능합니다.
확인 절차를 살펴보겠습니다. 데이터베이스에 사용자 이름과 md5 암호화된 비밀번호가 저장되어 있다고 가정합니다.
// 表单提交后... $posts = $_POST; // 清除一些空白符号 foreach ($posts as $key => $value) { $posts[$key] = trim($value); } $password = md5($posts["password"]); $username = $posts["username"]; $query = "SELECT `username` FROM `user` WHERE `password` = '$password'"; // 取得查询结果 $userInfo = $DB->getRow($query); if (!emptyempty($userInfo)) { if ($userInfo["username"] == $username) { // 当验证通过后,启动 session session_start(); // 注册登陆成功的 admin 变量,并赋值 true $_SESSION["admin"] = true; } else { die("用户名密码错误"); } } else { die("用户名密码错误"); }
로그인 여부를 결정하기 위해 사용자 확인이 필요한 페이지에서 세션을 시작합니다.
// 防止全局变量造成安全隐患 $admin = false; // 启动会话,这步必不可少 session_start(); // 判断是否登陆 if (isset($_SESSION["admin"]) && $_SESSION["admin"] == true) { echo "您已经成功登陆"; } else { // 验证失败,将 $_session["admin"] 置为 false $_SESSION["admin"] = false; die("您无权访问"); } ?>
인가요? 아주 간단하죠? 변경 $ _session은 서버 측에 저장된 배열이라고 볼 수 있습니다. 우리가 등록하는 각 변수는 배열의 키이며 이는 배열을 사용하는 것과 다르지 않습니다.
시스템에서 로그아웃하려면 어떻게 해야 하나요? 세션을 삭제하면 됩니다.
<?php session_start(); // 这种方法是将原来注册的某个变量销毁 unset($_SESSION["admin"]); // 这种方法是销毁整个 session 文件 session_destroy(); ?>
Session을 사용하면 Cookie와 같이 Life Cycle을 설정할 수 있나요? Session을 Cookie와 함께 사용하는 것이 가장 편리하다고 할 수 있습니다.
세션은 클라이언트 사용자를 어떻게 결정합니까? 세션 ID는 세션 파일의 파일 이름이므로 고유성과 임의성을 보장할 수 있습니다. 세션의 보안. 일반적으로 Session Life Cycle이 설정되지 않은 경우 Session ID는 메모리에 저장되며, 브라우저를 닫은 후 해당 ID는 자동으로 로그아웃되며 해당 페이지를 다시 요청하면 새로운 Session ID가 등록됩니다.
클라이언트가 쿠키를 비활성화하지 않으면 쿠키는 세션 시작 시 세션 ID와 세션 수명을 저장하는 역할을 합니다. 세션 수명을 수동으로 설정해 보겠습니다.
session_start(); // 保存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); ?>
실제로 Session은 세션 수명을 설정하는 session_set_cookie_params() 함수도 제공합니다. 이 함수는 session_start() 함수가 호출되기 전에 호출되어야 합니다. 클라이언트는 IE 6.0에서 session_set_cookie_params() 함수 설정 쿠키에 몇 가지 문제가 있으므로 여전히 setcookie 함수를 수동으로 호출하여 쿠키를 생성합니다.
클라이언트가 쿠키를 비활성화하면 어떻게 되나요? 브라우저를 닫고 페이지를 다시 요청하는 한 전체 수명 주기는 세션을 다시 등록해야 합니다. 그러면 세션 ID를 전달하는 방법은 무엇입니까? URL이나 숨겨진 양식을 통해 PHP는 자동으로 URL에 세션 ID를 보냅니다: http://www.openphp .cn /index.php ?PHPSESSID=bba5b2a240a77e5b44cfa01d49cf9669, 여기서 URL의 매개변수 PHPSESSID는 세션 ID입니다. $_GET을 사용하여 값을 가져오면 페이지 간에 세션 ID를 전송할 수 있습니다.
// 保存一天 <?php $lifeTime = 24 * 3600; session_set_cookie_params($lifeTime); session_start(); $_session["admin"] = true; ?>
가상 호스트의 경우 모든 사용자의 세션이 시스템 임시 폴더에 저장되면 유지 관리가 어려워지고 보안이 저하됩니다. 세션 파일의 저장 경로를 수동으로 설정할 수 있는데, session_save_path()에서 제공하는 기능이 있습니다. . 웹을 통해 액세스할 수 없는 폴더를 세션 저장소 디렉터리로 지정할 수 있습니다. 물론 해당 폴더에는 읽기/쓰기 속성이 있어야 합니다.
// 保存一天 <?php $lifeTime = 24 * 3600; // 取得当前 session 名,默认为 PHPSESSID $sessionName = session_name(); // 取得 session ID $sessionID = $_GET[$sessionName]; // 使用 session_id() 设置获得的 session ID session_id($sessionID); session_set_cookie_params($lifeTime); session_start(); $_session["admin"] = true; ?>
session_set_cookie_params(); 함수와 마찬가지로 session_save_path() 함수도 session_start() 함수가 호출되기 전에 호출되어야 합니다. 세션에 배열과 객체를 저장할 수도 있습니다. 배열을 조작하는 것과 일반 변수를 조작하는 것에는 차이가 없습니다. 객체를 저장할 때 PHP는 객체를 자동으로 직렬화(직렬화라고도 함)한 다음 이를 세션에 저장합니다. 다음 예는 이 점을 보여줍니다.
<?php // 设置一个存放目录 $savePath = "./session_save_dir/"; // 保存一天 $lifeTime = 24 * 3600; session_save_path($savePath); session_set_cookie_params($lifeTime); session_start(); $_session["admin"] = true; ?>
: 위 내용은 이 기사의 전체 내용입니다. 모든 사람의 학습에 도움이 되기를 바랍니다.
관련 권장 사항:PHP로 원격 이미지 크기 및 크기를 얻는 방법php 이중 계층 루프를 사용하여 99 곱셈표를 구현하는 방법php는 Express Bird 인터페이스를 호출합니다
위 내용은 PHP에서 세션을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!