2015-05-01 2 views
0

У нас есть веб-сайт, использующий устаревшую CMS для электронной коммерции, действительно связывает мои руки за моей спиной из-за отсутствия у меня возможностей и возможностей для начинающих с JS и jQ.Javascript - Скрытие кнопки, если не вошел в систему

На этом сайте нам нужно скрыть цены и добавить в корзину кнопки, если пользователь не вошел в систему. У меня есть сценарий, который работал для меня в прошлом, который проверяет файлы cookie пользователей. Но после редактирования этого скрипта для нового сайта он окажется неработоспособным.

Я, вероятно, испортил что-то очень простое в синтаксисе, поэтому, если кто-то может быстро взглянуть на мой скрипт и сообщить мне, где я ошибаюсь, это было бы здорово!

<script type="text/javascript"> 
function DisplayAuthorizedContent(name) { 
    var cookies=document.cookie; 
    var start = cookies.indexOf(name + "="); 
    var name = ""; 
    var start1; 
    var end1; 
    var tmp; 
    var signed_in = -1; 

    if (start != -1) { 
     start = cookies.indexOf("=", start) +1; 
     var end = cookies.indexOf("|", start); 
     if (end != -1) { 
      signed_in = cookies.indexOf("|yes", start); 
      name = unescape(cookies.substring(start,end-1)); 
      if (signed_in != -1) { 
       $('.loginFilter').show(); 
      } 
     } 
    } 
    if (signed_in == -1) { 
     $('.loginFilter').empty(); 
     $('.addMessage').each(function(){ 
      $(this).append('Requires Wholesale Account to Purchase.<br><br><a href=\"#\" class=\"applyLink\">Apply Here<\/a>'); 
      $(this).show(); 
     }); 
    } 
} 
DisplayAuthorizedContent("ss_reg_000778370"); 
</script> 

HTML-

<div class="loginFilter addMessage"><a href="#">Add to Cart Example</a></div> 
+1

Возможно, это не то, что вы хотите услышать, но я чувствую себя обязанным говоря об этом, есть ли логика на стороне сервера, которая проверяет, вошли ли вы в систему? Если это не очень плохая идея. Все, что мне нужно сделать, это перейти на ваш сайт, нажать F12 в моем браузере, удалить отображение: нет атрибутов и бум, я вошел в систему! Ограничения безопасности должны быть обработаны на стороне сервера. Клиентская сторона означает, что вы на 100% доверяете браузеру делать то, что вы говорите, чтобы сделать это невероятно страшно. – dman2306

+1

Чтобы усилить то, что говорит @ dman2306, (1) клиент должен предложить интерфейс входа/выхода, который делает запрос на сервер (2), подписанный/подписанный, должен быть на стороне сервера, (3) сервер должен «информировать» клиента о состоянии на стороне сервера, как правило, путем включения/удержания содержимого. Клиент не должен переопределять состояние на стороне сервера, определяя его для себя (например, чтение файла cookie), а также не эмулировать состояние входа в систему, показывая скрытый контент. –

+0

Спасибо, ребята. На самом деле я уже выразил свои проблемы с клиентом и моим начальником. Также не очень обеспокоены безопасностью ... -_- – user2684799

ответ

0

Похоже, кнопка не может быть скрыта на странице загрузки.

Гадание вам нужно что-то вроде JQuery:

$('.loginFilter').hide(); 

вы можете скрыть кнопку с JavaScript (вы должны добавить id = 'button' в HTML)

document.getElementById('button').style.visibility = 'hidden'; 

вот некоторые скрыть/показать ссылки: http://www.w3schools.com/jquery/jquery_hide_show.asp Hiding a button in Javascript

Смежные вопросы