Benim SignOut düğme işe alma

2 Cevap php

Hey orada, benim SignOut düğme işe almak için çalışıyorum. Bu benim kodda ne var:

<!-- Signed In -->
<?php if($_SESSION['*****']['AUTH']) { ?>




<div id="signOut">
    Sign Out
</div>
<div id="signIn">

    <form name="sendEmail" action="index.php" method="post">
        <input type="text" name="name" class="text"/> 
        <input type="submit" name="subSendEmail" value="Search" class="rounded {transparent} button" />
    </form>
</div>

Ben işareti gibi bir form yapmak gerekiyor? ya da bunu ve php oturumunu sonlandırmak ve dizin geri kullanıcıya göndermek için en iyi yolu nedir?

teşekkürler!

2 Cevap

Dışarı kullanıcı oturum için oturumdan verileri kaldırmak gerekir. Tipik olarak, orada herhangi bir veri ile ilgili olması muhtemeldir olduğundan hiçbir sorun, bunu yaparken oturumu takas bulunuyor açmış oturumda.

Eğer daha sonra bağlayabilirsiniz aşağıdakine benzer session_destroy() . I'd suggest creating a simple logout.php komut, kullanarak oturum verileri temizleyebilirsiniz:

<?php
session_destroy();
header( 'Location: index.php' );

Bu bir "non giriş-in" görünümüne onları dönen, geri index.php için kullanıcı yönlendirme olur.

Eğer çıkış işlemi onaylamak için kullanıcı bir formu göndermek istedim Alternatif olarak, sadece yukarıdaki script formu gönderebilir, ve aynı şeyi yapardı:

<form method="post" action="logout.php">
    <p>Are you sure you want to log out?</p>
    <p><input type="submit" value="Log Out" /></p>
</form>

o yüzden, ben denemek ve mümkün olduğunca basit yukarıdaki doğru cevabı çevirmek için gidiyorum, bu senin gibi bir yeni görünüyor.

Biri imzalar zaman, onlara bilgi depolanmış "oturum" ile sitenin etrafında hepsini takip eden bir $ _SESSION değişkeni verir. Eğer bu kadar anladım var gibi görünüyor.

(ya da "session_destroy ()" - $ _SESSION değişkeni ing) $ _SESSION değişkeni olarak imzalanır siteyi, sonra $ _SESSION değişkeni kaldırarak söyler ne ise, bu nedenle, mantıklı, seni imzalayacak.

Neyse ki, bu değişkeni öldürmek çok kolaydır, ve bir. php, sayfa üzerinde herhangi bir yerde yapılabilir. aşağıdaki gibi bir yöntem:

session_destroy();

Evet. o kadar. bütün enchilada. Eğer sadece bir yerde kötü çocuğu koymak, ve php çarptığında, bu kullanıcı gidiş vardı ne olursa olsun oturumu yok edecek - bu nedenle "onları imzalama".

Eğer öyleyse, bu nereye koyacağım? Eğer birini dışarı oturum php istiyorum bu yerde koydu. Bu form gönderdiğinde zaman ana sayfanın üst kısmında, ben öneririm yolu olan ... hatta sadece tamamen kendi sayfasında olabilir, yapılabilir olabilir.

Rob yukarıda belirtildiği gibi, örneğin, size logout.php adında bir sayfa oluşturabilirsiniz. Kullanıcı bir şekilde (bir köprü aracılığıyla veya bir form, ya da bir şey) bu sayfada alacağı, php onun hile yapacağını, ve onlar imzalanan bir kez daha sonra php başka bir yere taşımak istiyorum. bu nasıl görünürdü? Bu check out:

<?php
session_start(); // open the user's session on the page
session_destroy(); // kill the user's session

header("Location: somewhere.php"); // take the user somewhere else
?>

nihayet ... Bu konuda büyük kaynakların ton vardır. i beynine kadar uyuşmuş ve PHP hayal (sizin örnek bakıştan ifadeler varsa ve btw, ayrıca kaynaklar) onları okumanızı tavsiye ederim.