[英]how do I show a php page just once only per user
您好,我有一個 php 頁面,我希望每個用戶只顯示一次。
我認為使用 cookies、session-timeout 或 session-cookies 這可能是可能的。
但我不確定。
謝謝你的好心:)
您通過設置Cookie回答了自己的問題。
// check if they've been here, if they haven't set
// a cookie for subsequent visits
if($_COOKIE['beenhere']) {
setcookie("beenhere", '1');
}
else {
// where you want them to go if they've seen this page
header('Location: http://www.example.com/');
欲獲得更多信息:
如果您想讓一個用戶-再也不會看到該頁面,則必須為該cookie設置一個過期時間(請參閱上面的鏈接頁面),因為關閉瀏覽器將消除我在上面設置的cookie。
要按用戶會話一次顯示頁面,您可以嘗試以下操作
//mypage.php
if(!isset($_SESSION['mypage_view'])
{
$_SESSION['mypage_view'] = 1;
} else {
//check if this is not the first time the page has been viewed
if(isset($_SESSION['mypage_view'])) {
//not first time redirect
header('location: google.com');
session_write_close();
exit();
}
}
您也可以使用會話
if($_SESSION['sessioned_here'] == null) {
// just been on this page
} else {
// visited already. get out
}
最好的方法是獲取訪問者的 IP。然后將其保存在數據庫中。
您可以使用此代碼:
function getUserIP(){
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
if(filter_var($client, FILTER_VALIDATE_IP)){
$ip = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP)){
$ip = $forward;
}else{
$ip = $remote;
}
return $ip;
} $user_ip = getUserIP();
$rowsnumber = $con->query("SELECT * FROM `visitors` WHERE ip='" . $user_ip . "'")->num_rows;
$nowdate = date("Y-m-d");
if($rowsnumber == 0){
// First Time Visit
mysqli_query($con, "INSERT INTO `visitors` (`visitdate`, `ip`) VALUES ('$nowdate','$user_ip')");
}else{
$visitorresualt = mysqli_query($con,"SELECT `visitdate` FROM `visitors` WHERE ip='" . $user_ip . "'");
$thisvisitor = mysqli_fetch_array($visitorresualt,MYSQLI_NUM);
if($thisvisitor[0] != $nowdate){
//Todays First Visit
$newvisit = $thisvisitor[1] + 1;
mysqli_query($con, "UPDATE `visitors` SET `visitdate`='$nowdate' WHERE ip = '" . $user_ip . "'");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.