2012-10-01 75 views
0

我想從飛濺(年齡驗證)頁面重定向到我的主頁,它只是彈出相同的年齡驗證頁面。重定向到飛濺頁magento的主頁

我在根文件夾中有ageVerify.php腳本,我的模板文件頁面頂部有另一個腳本。我只需要找到正確的文件結構格式來重定向太后,有人點擊「是我18」

下面的代碼添加到我的column1.phtml文件的頂部時不起作用 - 它只是繼續返回並調用verify.php腳本。任何想法都會非常有幫助!

<?php 

function verified() 
{ 
    $redirect_url='http://www.johnsoncreeksmokejuice.com.vhost.zerolag.com/verify.php'; 
    $expires=-1; 
    session_start(); 

    $validated=false; 

    if (!empty($_COOKIE["verified"])) { 
     $validated=true; 
    } 
    if (!$validated && isset($_SESSION['verified'])) { 
     $validated=true; 
    } 
    if (is_numeric($expires) && $expires==-1 && !isset($_SESSION['verified'])) { 
     $validated=false; 
    } 
    if ($validated) { 
     return; 
    } 
    else { 
     $redirect_url=$redirect_url."?return=index.php&x=".$expires; 
     Header('Location: '.$redirect_url); 
     exit(0); 
    } 
} 

verified(); 
?> 
+0

'$ _COOKIE' ='$ _SESSION' – benmarks

+0

所以我添加這個地方說,上面的cookie ???我很困惑我在哪裏添加這個? – jcmeghan

回答

0

選擇使用javascript替代。制定了更容易爲我!

function writeCookie(key,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 = key+"="+value+expires+"; path=/"; 
} 

function readCookie(key) { 
    var nameEQ = key + "="; 
    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 ageGate() { 
    var monthDays = { 
     1: 31, 
     2: 29, 
     3: 31, 
     4: 30, 
     5: 31, 
     6: 30, 
     7: 31, 
     8: 31, 
     9: 30, 
     10: 31, 
     11: 30, 
     12: 31 
    }; 

    var months = { 
     1: 'January', 
     2: 'February', 
     3: 'March', 
     4: 'April', 
     5: 'May', 
     6: 'June', 
     7: 'July', 
     8: 'August', 
     9: 'September', 
     10: 'October', 
     11: 'November', 
     12: 'December' 
    }; 

    var monthOptions = []; 
    var dayOptions = {}; 
    var yearOptions = []; 

    for (var month in monthDays) { 
     var days = monthDays[month]; 
     monthOptions.push('<option value="' + month + '">' + months[month] + '</option>'); 
     dayOptions[month] = []; 
     for (var i=1; i <= days; i++) { 
      var day = i; 
      dayOptions[month].push('<option value="' + day + '">' + day + '</option>'); 
     } 
    } 

    var currentYear = new Date(); 
    currentYear = currentYear.getFullYear(); 

    var startYear = currentYear - 120; 

    for (var y=currentYear; y > startYear; y--) { 
     yearOptions.push('<option value="' + y + '">' + y + '</option>'); 
    } 



    $s(document).ready(function(){ 
     var monthHtml = ''; 
     for (var j=0; j < monthOptions.length; j++) { 
      var html = monthOptions[j]; 
      monthHtml += html; 
     } 

     $s('#ageMonth').html(monthHtml); 

     var yearHtml = ''; 
     for (var i=0; i < yearOptions.length; i++) { 
      yearHtml += yearOptions[i]; 
     } 

     $s('#ageYear').html(yearHtml); 

     $s('#ageMonth').bind('change', function(){ 
      var dayHtml = ''; 
      var month = $s(this).val(); 

      for (var i=0; i < dayOptions[month].length; i++) { 
       dayHtml += dayOptions[month][i]; 
      } 

      $s('#ageDay').html(dayHtml); 
     }); 

     $s('#ageEnterSite').click(function(e){ 
      e.preventDefault(); 
      var date = new Date(); 
      date.setMonth($s('#ageMonth').val() - 1); 
      date.setDate($s('#ageDay').val()); 
      date.setYear($s('#ageYear').val()); 

      var maxDate = new Date(); 
      // alert(maxDate.getFullYear()); 

      maxDate.setYear(maxDate.getFullYear() - 18); 

      if (date <= maxDate) { 
       writeCookie('jcsj_age_verified', '1', 30); 
       $s('#age-gate').fadeOut(function(){ 
        $s(this).remove(); 
        $s('body').removeClass('age-gate-visible'); 
       }); 
      } 
      else { 
       window.location.href = 'http://google.com'; 
      } 

     }); 

     $s('#ageMonth').change(); // load default month 
     // $s('#ageDay').prop('disabled', true); 
     setTimeout(function(){ 
      $s('body').addClass('age-gate-visible'); 
      $s('#age-gate').fadeIn(); 
     }, 200); 
    }); 
} 

if (readCookie('jcsj_age_verified')) { 

} else { 
    ageGate(); 
} 

</script> 
1

如果$ _SESSION沒有設置總是會評估這個

if (is_numeric($expires) && $expires==-1 && !isset($_SESSION['verified'])) { 
     $validated=false; 
    } 

就解決它,並應工作。 假定其他一切都很好,我將取代

if (!empty($_COOKIE["verified"])) { 
     $validated=true; 
    } 
    if (!$validated && isset($_SESSION['verified'])) { 
     $validated=true; 
    } 
    if (is_numeric($expires) && $expires==-1 && !isset($_SESSION['verified'])) { 
     $validated=false; 
    } 

通過:

if ((isset($_COOKIE["verified"] && !empty($_COOKIE["verified"])) OR isset($_SESSION['verified'])) { 
    $validated=true; 
} 

所以,如果用戶有一個非空「驗證」餅乾或「驗證」會話設置,它假定他被驗證。

+0

那麼我如何設置會話?我已經嘗試了一堆不成功的東西。 – jcmeghan

+0

我已經添加了一個例子...也許它的工作 –

+0

好吧,我做錯了什麼,現在把我送到一個全白色的空白頁面。我錯過了什麼? – jcmeghan