Nasıl bir oturum mekanizması uygulamak için ya da nasıl aynı şirkette her kullanıcı için benzersiz bir tevhit oluşturmak için?

3 Cevap php

Çoğu oturum, çerezler dayalı php / jsp gibi

Ancak mobil cihazlar için olduğu gibi, çerezleri desteklemediği epeyce vardır.

Aynı IP adresini kullanan aynı şirkette her kullanıcı için benzersiz bir tevhit üretmek nasıl?

3 Cevap

PHP ve JSP hem de URL yoluyla izleme oturumu destekler.

PHP, sadece gizli giriş elemanı ve sorgu dizesi bir parçası olarak link olarak formlar aracılığıyla bir PHPSESSID istek parametresi olarak session_id() geçmek zorunda.

<form action="page.php">
    <input type="hidden" name="PHPSESSID" value="<?= session_id() ?>">
    ...
</form>

<a href="page.php?PHPSESSID=<?= session_id() ?>">link</a>

PHP motoru bunun için otomatik tarama ve tanımlama oturumları uygulamak olacaktır.

JSP yılında "URL yeniden yazma" (PHP / Apache HTTPD dünyasında oldukça farklı bir anlamı vardır) deniyor. Görünümü tarafında, gerekirse <c:url> (otomatik ihtiyacını algılar) URL yeniden yazma JSTL yararlanabilirler.

<form action="<c:url value="page.jsp">">
    ...
</form>

<a href="<c:url value="page.jsp">">link</a>

Kontrolör-tarafında, sunucu tarafı yaparken aynı bağlam içinde, size HttpServletResponse#encodeRedirectURL() on the URL before doing sendRedirect() çalıştırmak için gereken yönlendirme.

response.sendRedirect(response.encodeRedirectURL("page.jsp"));

Her iki şekilde de, otomatik olarak aşağıdaki sözdiziminde, jsessionid URL'ye ekler:

/page.jsp;jsessionid=5AE12D39BCE87F61029876BF1AA28

Servletcontainer bunun için otomatik tarama ve tanımlama oturumları uygulamak olacaktır.

Çerezler başarısız olduğunda, bir ol 'iyi sorgu dizesi sahneye geliyor. Daha az güvenli, evet, ama yine de hiçbir seçim var. Sen Ayrıntılar için php session manual başvurabilirsiniz

session_regenerate_id (); / / Yeni bir oturum kimliği almak

oturum çerezleri etkinse, session_regenerate_id () kullanımı da yeni bir oturum kimliği ile yeni bir oturum tanımlama sunacaktır.