다음 코드는 RSForm에서 가져온 것이지만 현재 양식에 사용하고있는 도구이지만 순수한 PHP 지식으로 해결할 수 있다고 생각합니다. 이리.제한 양식 제출 페이지 당 사용자 수
양식이 표시되는 특정 페이지에서 특정 횟수만큼 양식에 응답하도록 사용자를 제한 할 수있는 방법이 있습니까?
많은 페이지에서 동일한 양식이 재생되며 사용자가 페이지 당 한 번만 대답 할 수 있기를 바랍니다. 그게 가능합니까?
각 사용자가 양식을 제출할 수 있기를 원하는 횟수를 이미 성공적으로 제한 한이 코드가 있는데 특정 페이지의 양식에 응답하는 경우 어떻게 제한합니까? 내가 원하는 결과는 양식을 찾은 페이지 당 한 번만 같은 양식에 응답 할 수 있다는 것입니다.
// Define the maximum number of submissions.
$max = 1;
// Get the current logged in user.
$user = JFactory::getUser();
// Get a database connection.
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Setup the query.
$query->select('COUNT('.$db->qn('Username').')')
->from($db->qn('#__rsform_submissions'))
->where($db->qn('FormId').'='.$db->q($formId))
->where($db->qn('Username').'='.$db->q($user->get('username')));
// You can also count by User ID, just replace the above with:
// ->where($db->qn('UserId').'='.$db->q($user->get('id')));
$db->setQuery($query);
$counter = $db->loadResult();
if ($counter >= $max){
$formLayout = 'Sorry, you have reached the maximum number of submissions for this form.';
}
는 양식이 같은 페이지에서 제출 한 경우에만이 제한 적응 어쨌든이 있나요?
편집 :
이 양식은 항상 K2 항목 페이지에있을 것입니다 그리고 나는이 코드 항목 ID를 얻을 수 있다고 생각 :
$K2Itemid = JRequest::getInt('id');
내가 사용할 수있을 것 같아요 이게 내가 놓친 조건이야. K2 ID를 다른 페이지로 사용하여 제출을 제한 할 수 있습니다. 누군가가 이것을 적용하도록 도울 수 있습니까? 이 조건을 어떻게 삽입합니까?
내가 K2 Item을 사용하고 있기 때문에 스크립트에서 제출을 제한하는 데 사용될 수 있음을 보여주기 위해 내 게시물을 편집했습니다. 해당 정보를 "어디서"적용 할 수 있도록 도와 줄 수 있다고 생각하십니까? 미안하지만 저는 PHP 초보자입니다. –