2010-07-10 4 views
1

내가이 일을해야하는지에 대한 이해에 문제가 있어요 :세션 질문

    내 홈 페이지의 항목 및 사용자가 클릭하면, 내가 요청 페이지에을의
  • 유무 목록 이름 및 전자 메일 ID (둘 다 선택적 필드 임)를 입력하면 사용자가 제출을 클릭하면 모든 세부 정보를 볼 수있는 다른 페이지로 이동합니다. 그 이름과 이메일 필드에 대한 이유는 mysql에 ip 주소를 저장하고 또한 url (항목 ID와 날짜가 있음)을 저장하는 것입니다.

이렇게하려면 프로그램에서 문제가 발생했습니다.

  1. 제출 한 세션/저장소 쿠키를 시작하려고합니다. 그 후 나는

또한 MySQL의 DB에

  • 스토어의 모든 것을, 어떻게 사람이가는 피할 수 MySQL의 DB에 (가 채워진 경우) IP 주소, 항목 ID, 날짜, 이름/이메일을 저장할 페이지에 직접 (내가 제출 한 후 보여주는)? 해당 페이지에 일부 조건을 포함시키고이 로그인 페이지로 리디렉션 할 수있는 방법이 있습니까?

    도와주세요.

    관련

  • +0

    "그 이름과 이메일 필드의 이유는에 있습니다 (항목 ID와 날짜가) MySQL의에서 IP 주소도 URL을 저장할 수 있습니다." 당신은 그 이름과 이메일을 요구할 필요가 없습니다. – Artefacto

    +0

    내가 동의 할 필요는 있지만 사용자가 홈페이지의 항목 목록을 클릭하면 항목 필드가 오늘의 항목 일 경우에만 표시되고 항목이있는 경우 표시되지 않기 때문에 동의합니다. 미래. 그래서이 조건을 올바르게 갖기 위해, 나는이 로그인을 보여줄 아이템을 생각하고, 아이템이 현재 보여지고있다, 그것을보기 위해 제출한다. 그들이 이것을하는 동안, 나는 오늘의 이벤트에 대한 항목 세부 정보를 수집 할 것입니다. 이 방법은 오늘은 아니지만 항목을 저장하거나 세션을 피할 수 있습니다. – Jay

    답변

    1

    데이터가 즉시 사용하기 위해서만 필요한 것처럼 보이기 때문에이 경우 세션이 올바른 대답이라고 생각합니다.
    그런 다음 데이터베이스 쿼리를 사용하면 데이터를 올바른 사용자에게 연결하기 위해 저장할 데이터는 무엇입니까? 당신이 말했듯이, 당신이 묻는 데이터는 선택 사항입니다; 경우에 따라서는 옵션이 없을 수도 있습니다. 두 명의 다른 사용자가 동일한 이름과 이메일을보고하는 경우 (두 개의 다른 브라우저를 사용하는 동일한 사용자 일 수도 있음) 어떻게 처리합니까?

    그런 임시 데이터의 경우 세션이 항상 더 나은 선택입니다 (어쩌면 몇 가지 예외를 제외하고).

    나는 다른 질문을 잊어 버리고있었습니다.
    또한이 경우 세션 변수를 사용합니다. 세션 변수는 서버와 클라이언트 측에서 계속 이동하지 않고도 다른 양식간에 보관하려는 값의 솔루션입니다. 세션에 대한 자세한 내용은

    참조 PHP: Sessions

    +0

    나는 아직도이 일을하고있다. 일단 내가 끝나면 내 의견을 게시 할 것입니다. 다시 한 번 감사드립니다! – Jay

    2

    사용자가 제출 버튼을 칠 때 당신은 세션 변수를 설정하기 때문에, 당신이 그 변수 중 하나가 설정되어있는 경우 테스트 여부 따라 리디렉션 할 수 있습니다.

    또한 POST로이를 수행하고 양식에 대한 조치로 페이지를 사용할 수 있으며 양식의 $ _POST 변수가 설정되었는지 테스트 할 때마다 해당 페이지에 액세스 할 때마다이를 수행 할 수 있습니다.

    +0

    세션을 시작하는 방법이 확실하지 않으며 작동 여부를 어떻게 확인할 수 있습니까? 제출 버튼을 누른 후 페이지 또는 로그인 페이지를 표시하는 페이지에서 세션을 시작해야합니까? – Jay

    +0

    @Jay : 간단히'session_start()'를 사용하십시오. 세션이 이미 시작되었는지 확인하려면 (다시 시작하지 않으려면)'session_id()'에 의해 반환 된 값을 확인하십시오. 세션이 아직 시작되지 않은 경우 반환 값은 빈 문자열이됩니다. – kiamlaluno