2011-08-16 3 views
0
<?php 
//display the bid button if a user is logged in 
if (isset($_SESSION['username'])) { 
?> 
    <form class='bidForm' action='bid.php?id=<?php echo $item_id; ?>' method='POST'> 
     <input class='bid' type='submit' value='BID' /> 
    </form> 
<?php 
} else { 

} 
?> 

나는 경매 사이트를 만들고 있는데, 사용자가 아이템에 입찰하면 경매 아이템의 만료 시간이 일정하게 증가합니다. 현재 입찰에 참여중인 각 항목에 대한 입찰가 버튼을 설정했는데 입찰가 버튼 만 표시되도록해야합니다 (적어도 작동중인 사용자 - 로그인 한 사용자가 로그인하지 않은 상태에서 마우스를 올리면 로그인 버튼이 변경됨). in)을 로그인 한 사용자에게 보냅니다. 그리고 당신이 볼 수 있듯이, 나는 지금 위의 else 문이 있다면 isset (SESSION)을 사용했다. 또한 jQuery를 통해 지속적으로 새로 고침되는 활성 옥션 항목을 포함하는 div가 있으므로 카운트 다운이 매 초마다 새로 고쳐집니다. (경매 유형으로 사용자가 타이머를 20 초 미만으로 설정하면 타이머가 20 초로 재설정됩니다.)자동 새로 고침 div에서 설정된 PHP 세션 변수를 어떻게 참조합니까?

문제는 jQuery를 새로 고치는 것이 어떤 이유로 든 세션을 실제로 취소한다는 것입니다 새로 고침되는 부분에서) 첫 번째 초 후에 입찰 버튼이 사라집니다. 나는 세션이 설정되지 않았다면, 로그인하지 않은 사용자가 입찰 버튼을 볼 수 있기 때문에 세션을 설정하지 않았다는 것을 나타내는 else 문을 작성할 수 없습니다. 그리고 GET을 통해 참조 할 URL 변수를 만들 수 없습니다. 로그인하지 않은 사용자가 입찰 버튼을 보이도록 조작 할 수 있기 때문입니다. 마지막으로 자바 스크립트를 사용할 수 없거나 자바 스크립트를 사용하지 않는 사람들이 입찰 기능을 사용할 수 없도록하지 않으려합니다.

내 옵션에는 어떤 것이 있습니까?

+0

어떻게이 질문에 현상금을 설정합니까? 내 질문을 제출했지만 현상금 버튼을 찾을 수없는 20 포인트 현상금을 올리는 것을 생각했습니다. –

답변

1

session_start()도이 특정 페이지에서 확인 했습니까?

그렇지 않으면 $_SESSION에 액세스 할 수 없습니다. 그럴 수있어.

/David

+0

예, 코드의 맨 위에있는 session_start()를 사용하여 (여기에서 내 질문과 관련된 div가 나오기 전에) 동일한 페이지에서 로그인 옵션이 표시되는지 또는 링크인지 여부를 확인하는 데 사용됩니다 내 계정으로 이동합니다. –

+0

바하, 대답은 전혀 도움이되지 않았지만 어쨌든 다른 사람이 없었기 때문에 대답을 표시 만하면됩니다. –