Можно проверить запущен ли скрипт не используя БД?

Discussion in 'PHP' started by DesignerMix, 23 Mar 2007.

  1. DesignerMix

    DesignerMix Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    35
    Likes Received:
    11
    Reputations:
    5
    Есть такая проблема: Имеется опрос, который полностью написан на JavaScript и никак не работает с базами данных, всё формируется в теле страницы... Есть ли возможность сделать так, как это делается в php скриптах работающих с БД, т.е. проверка ip+cookie и вывод определённой страницы если скрипт по результату проверки уже запущен. А то получается что у отвечающего на вопросы есть возможность отвечать на один и тотже вопрос одновременно...
     
  2. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    374
    Reputations:
    460
    Зайди на woweb.ru и посмотри подобные скрипты, может что нибудь и наталнет тебя на правильный ход мыслей.
     
  3. DesignerMix

    DesignerMix Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    35
    Likes Received:
    11
    Reputations:
    5
    Посмотрел, поискал, того что нужно не нашёл, но помоему если пару скриптов скрутить и дописатьб чуток, может что и выйдет! Спасибо, кстати сайт СУПЕР.
     
  4. censored!

    censored! Green member

    Joined:
    2 Nov 2004
    Messages:
    1,159
    Likes Received:
    299
    Reputations:
    156
    Данные опроса надо ведь где-нить хранить. Либо в БД, либо в файле (на сервере).
    И только используя один JavaScript тут не сделать.
    ...
    А так - поиск по яндексу: JavaScript чтение запись cookies
    Примеров - выши крыши.
     
    _________________________
  5. DesignerMix

    DesignerMix Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    35
    Likes Received:
    11
    Reputations:
    5
    PHP:
    <SCRIPT LANGUAGE="JavaScript">

    <!-- 
    Begin
    var expDays 30;
    var 
    exp = new Date(); 
    exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

    function 
    getCookieVal (offset) {  
    var 
    endstr document.cookie.indexOf (";"offset);  
    if (
    endstr == -1)    
    endstr document.cookie.length;  
    return 
    unescape(document.cookie.substring(offsetendstr));
    }
    function 
    GetCookie (name) {  
    var 
    arg name "=";  
    var 
    alen arg.length;  
    var 
    clen document.cookie.length;  
    var 
    0;  
    while (
    clen) {    
    var 
    alen;    
    if (
    document.cookie.substring(ij) == arg)      
    return 
    getCookieVal (j);    
    document.cookie.indexOf(" "i) + 1;    
    if (
    == 0) break;   
    }  
    return 
    null;
    }
    function 
    SetCookie (namevalue) {  
    var 
    argv SetCookie.arguments;  
    var 
    argc SetCookie.arguments.length;  
    var 
    expires = (argc 2) ? argv[2] : null;  
    var 
    path = (argc 3) ? argv[3] : null;  
    var 
    domain = (argc 4) ? argv[4] : null;  
    var 
    secure = (argc 5) ? argv[5] : false;  
    document.cookie name "=" escape (value) + 
    ((
    expires == null) ? "" : ("; expires=" expires.toGMTString())) + 
    ((
    path == null) ? "" : ("; path=" path)) +  
    ((
    domain == null) ? "" : ("; domain=" domain)) +    
    ((
    secure == true) ? "; secure" "");
    }
    function 
    DeleteCookie (name) {  
    var 
    exp = new Date();  
    exp.setTime (exp.getTime() - 1);  
    var 
    cval GetCookie (name);  
    document.cookie name "=" cval "; expires=" exp.toGMTString();
    }

    var 
    favorite GetCookie('animal');

    if (
    favorite != null) {
    switch (
    favorite) {
    case 
    'cat' :     url 'http://img.cgtalk.ru;
                 break;
    case '
    dog' :     url = 'http://galery.cgtalk.ru'; 
                 
    break;
    case 
    'gerbil' url 'http://forum.cgtalk.ru';
            break;
    case 
    'gopher' url 'http://www.cgtalk.ru';
            break;
    }
    window.location.href url;
    }
    //  End -->
    </script>


    <form>
    <table><tr><td>
    Куда делать переадресацию при следующем посещенни этой страницы?:<br>
    <input type=checkbox name="cat" onClick="SetCookie('animal', this.name, exp);">Скрипты<br>
    <input type=checkbox name="dog" onClick="SetCookie('animal', this.name, exp);">Статьи<br>
    <input type=checkbox name="gerbil" onClick="SetCookie('animal', this.name, exp);">Графика<br>
    <input type=checkbox name="gopher" onClick="SetCookie('animal', this.name, exp);">Каталог ссылок<br>
    </td></tr>
    </table>
    </form>
    Вот тот скрипт, который решает мою проблему, в идеале когда заходишь на страницу создаются cookie, которые должны жить 45 минут (время за которое чел должен пройти опрос), а затем удаляться. Но вот только я немогу этот кусок выдранного кода подправить чтобы выбор был автоматический.... там где он использовался была возможность выбора странички на которую проредиректит... а это не мой вариант, кто может помочь?? Мне нужно чтобы всё было банально и при следующем посещении или обновлении страница отвечающего перебрасывало на тот вопрос на определённую страницу.
     
    #5 DesignerMix, 25 Mar 2007
    Last edited: 25 Mar 2007