2016-02-02 2 views
0

У меня есть простая страница, на которой пользователи будут входить в систему, и страница проверяет, существует ли файл cookie для отображения имени или кнопки входа в систему, но файл cookie не был отменен. Вот мой код, где проблема? Я пробовал разные страницы, но пока ничего не работало.Запрос Cookie не был удален

<?php 
$nombre_us = $_COOKIE['nombre_cookie']; 
function logout() { 
    if (isset($_COOKIE['nombre_cookie'])) { 
     unset($_COOKIE['nombre_cookie']); 
     setcookie('nombre_cookie', null, -1, '/'); 
     return true; 
    } else { 
     return false; 
    } 
} 
?> 
<div class="sample"> 
    <?php 
    if (!$nombre_us) { 
     echo '<a class="smp_btn" href="login.php?pageURL=' . $url . '">Login</a>'; 
    } 
    else { 
     echo '<span class="smp_text">' . $nombre_us . '</span>'; 
     echo '<a class="smp_text" href="' . $url . '" onclick="logout()">Logout</a>'; 
    } 
    ?> 
</div> 

Спасибо!

Так что теперь я попробовал это с JavaScript вместо PHP, но все равно ничего. Вот здесь пример кода

<div class="sample"> 
<?php 
$nombre_us = $_COOKIE['nombre_cookie']; 
    if (!$members_name) { 
     echo '<a class="smp_btn" href="sample_login.php?pageURL=' . $url . '">Login</a>'; 
    } 
    else { 
     echo '<span class="smp_text">' . $members_name . '</span>'; 
     ?> 
     <a class="smp_text" href="<?php echo $url; ?>" onclick="delete_cookie('nombre_cookie')">Logout</a> 
       <?php 
       } 
       ?> 
      </div> 
    <script> 
     function delete_cookie(name) { 
      document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
     } 
    </script> 
</div> 

ответ

0

Вы не можете установить -1 истечь параметр в setcookie(). Вы можете установить его на 2147483647, что является максимальным значением (истекает 2038 год).

Но основная проблема: logout() в атрибуте onclick. logout() - функция PHP. При нажатии на значок a вы вызываете функцию JavaScript logout(). Вам нужно использовать ajax (XMLHttpRequest), через который вы можете это назвать.

+0

Я попробовал его с 'time() - 3600' вместо' -1', но все еще не работает – Tavo

+0

Это не может быть отрицательным. (0 = после закрытия браузера) –

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