문제

한 페이지에서 사용자 입력을 얻고 PHP 변수에 저장하고 다른 PHP 페이지에서 사용하고 싶습니다. '세션'을 사용해 보았지만 작동하지 않는 것 같습니다. 또 다른 안전한 대안이 있습니까? 이 정보는 사용자 이름과 비밀번호 일 수 있습니다.

도움이 되었습니까?

해결책

이것이 가장 좋은 방법이므로 세션 코드를 변경하십시오.

예를 들어:

인덱스 .php

<?php
session_start();

if (isset($_POST['username'], $_POST['password']) {
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['password'] = $_POST['password'];
    echo '<a href="nextpage.php">Click to continue.</a>';
} else {
    // form
}
?>

NextPage.php

<?php
session_start();

if (isset($_SESSION['username'])) {
    echo $_SESSION['username'];
} else {
    header('Location: index.php');
}
?>

그러나 아마도 사용자의 로그인 자격 증명이 아닌 세션에서 사용자 ID처럼 더 안전한 것을 저장할 것입니다.

다른 팁

카슨에 동의합니다. 세션이 효과가 있어야합니다. 당신이 전화하는지 확인하십시오 session_start () 모든 페이지의 다른 어떤 것보다 먼저 세션 변수를 사용하려고합니다.

또한 비밀번호 정보를 직접 저장하지 않고 오히려 일종의 인증 토큰 메커니즘을 사용합니다. IMHO, 그렇지 않습니다 본질적으로 세션에 비밀번호 데이터를 저장하는 것은 안전하지 않지만 그렇게 할 필요가 없다면 피해야 할 것입니다.

여러 가지 방법이 있습니다.

  • 사용 세션 (그러나 전화하는 것을 잊지 마십시오 session_start () 모든 페이지에서 세션 데이터 저장소를 사용합니다 ($ _session))
  • "다음"페이지의 쿼리 문자열에 데이터를 추가하십시오 ($ _get)
  • "다음"페이지에 데이터를 게시하십시오 ($ _post)

세션 웨이는 데이터가 서버 자체에 저장된 서버를 "떠나"하지 않는 유일한 방법입니다. 위에서 언급 한 다른 모든 방법은 수신 페이지의 데이터를 소독하고 검증해야합니다.

가장 간단한 방법은입니다

//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];

PHP 스크립트 내에서 사용자 입력을 전송하기위한 Post를 사용하여 시도 할 수 있습니다.

PHP가 있습니다

PHP 게시물

나는 또한 세션이 최상의 솔루션이라는 데 동의합니다. 이 장을 참조하십시오 PHP 및 MySQL을 사용한 웹 데이터베이스 응용 프로그램 몇 가지 예를 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top