Проблема перенаправления файлов cookie после отправки (форма)

У меня проблема с редиректом, который я пытаюсь добавить на веб-сайт. Я не большой специалист, поэтому прошу доброй помощи.

Перед тем, как показать код, вот вопросы, и как я хотел, чтобы это работало.

Итак, у меня есть форма Aweber, добавленная на мой сайт с двумя полями "Имя" и "Электронная почта" + кнопка "Отправить". В основном, если отправка прошла успешно, пользователь будет перенаправлен на другую страницу, и в него будет добавлен файл cookie.

Что с печеньем?

Хорошо, форма находится на website.com, и если пользователь получает подписку, он перенаправляется на website.com/whwhat.html.

Кроме того, если он подпишется, при следующем входе на website.com он будет автоматически перенаправлен на website.com/whwhat.html.

Итак, у меня есть основная идея, но у меня есть проблема с ней, которая работает правильно.

По сути, теперь он перенаправляет пользователя, даже если он вводит неверные данные, такие как имя: JHKJHKhj и электронная почта: jkhkjhkjhkhjk

Если он вводит эти данные таким образом (неправильно), он должен попасть на страницу с ошибкой, которая установлена ​​Aweber, но теперь он все равно перенаправляется.

Так вот как это должно работать:

  1. Пользователь вводит данные правильно, он перенаправляется и устанавливает cookie.
  2. Пользователь вводит детали неправильно, он получает страницу ошибки Aweber по умолчанию, и он не перенаправлен.

Вот мой код сейчас:

>      $(document).ready(function() {
>         $('#subscribe1').show() 
>         
>           if (!readCookie('hide')) {
>           }
>         
>           else {
>             window.location = "http://website/whatever"
>           }
>         
>         
>           $('#sendbtn').click(function() {
>             window.location = "http://website/whatever"
>             createCookie('hide', true, 365)
>             return false;
>           });
>         
>         });
>         
>         
>         
>         function createCookie(name,value,days) {
>           if (days) {
>             var date = new Date();
>             date.setTime(date.getTime()+(days*24*60*60*1000));
>             var expires = "; expires="+date.toGMTString();
>           }
>           else var expires = "";
>           document.cookie = name+"="+value+expires+"; path=/";
>         }
>         
>         function readCookie(name) {
>           var nameEQ = name + "=";
>           var ca = document.cookie.split(';');
>           for(var i=0;i < ca.length;i++) {
>             var c = ca[i];
>             while (c.charAt(0)==' ') c = c.substring(1,c.length);
>             if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
>           }
>           return null;
>         }
>         
>         function eraseCookie(name) {
>           createCookie(name,"",-1);
>         }

И вот часть кода Aweber

<form method="post" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl"  >
<div style="display: none;">
<input type="hidden" name="meta_web_form_id" value="522321120" />
<input type="hidden" name="meta_split_id" value="" />
<input type="hidden" name="listname" value="jenselter" />
<input type="hidden" name="redirect" value="http://website.com/whatever" />

<input type="hidden" name="meta_adtracking" value="My_Web_Form" />
<input type="hidden" name="meta_message" value="1" />
<input type="hidden" name="meta_required" value="name,email" />

<input type="hidden" name="meta_tooltip" value="" />
</div>

Спасибо!

1 ответ

Решение

Для управления файлами cookie в Google есть легкий файл javascript с именем jcook.js http://code.google.com/p/jcook/downloads/detail?name=jcook.js

скачайте файл и используйте его.

Я приведу небольшой пример для выполнения аналогичной задачи.

Ваша форма будет выглядеть следующим образом для ввода имени и адреса электронной почты.

<form method="POST" action="http://www.aweber.com/scripts/addlead.pl" id="inputForm">
    <input name="name" />
    <input name="email" />
    <button id="authorize">authorize</button>
</form><!--end of the form-->

Ваш JQuery будет

$(document).ready(function(){
    $("#authorize").click(function(){
        var name = $("input[name='name']").val();
        var email = $("input[name='email']").val();

        $.ajax({
            url: "http://www.aweber.com/scripts/addlead.pl",
            data: {name: name, email: email},
            async: false,
            success: function(data){//when you will get the successful authorization
                COOKIES.createCookie("hide", true, 365);//COOKIES IS AN OBJECT IN THE JCOOK.JS TO MANAGE COOKIES
                window.location.href = "http://website/whatever";
            }
        });            
    });

    //if cookie exists
    if(COOKIES.readCookie('hide') != null){
        window.location.href = "http://website/whatever";
    }
});
Другие вопросы по тегам