[英]How to Store session data of user
該網站的第一個問題(我是這個網站的新手)被認為發布了我最困難的問題.....
成功登錄后,我的網站上有登錄系統。僅在登錄后才顯示受保護的頁面,我想添加$ _SESSION ['point']來存儲用戶的點。並將其保存到數據庫中,如果用戶登錄,該點將增加點擊鏈接。 我想將此增加的點存儲到我的userdb.php中。 我保留的所有注冊信息的位置。(我沒有使用MySql進行注冊,我使用過userdb.php文件)我受保護的頁面php代碼是
<?php
if (session_id() == "")
{
session_start();
}
if (!isset($_SESSION['username']))
{
header('Location: #');
exit;
}
if (isset($_SESSION['expires_by']))
{
$expires_by = intval($_SESSION['expires_by']);
if (time() < $expires_by)
{
$_SESSION['expires_by'] = time() + intval($_SESSION['expires_timeout']);
}
else
{
unset($_SESSION['username']);
unset($_SESSION['expires_by']);
unset($_SESSION['expires_timeout']);
header('Location: #');
exit;
}
}
if (session_id() == "")
{
session_start();
}
if (session_id() == "")
{
session_start();
}
?>
我的display.php顯示網址
<?php
mysql_connect('Server', 'user', 'passs');
mysql_select_db('add');
$query =mysql_query('select * from addimage');
while( $row = mysql_fetch_assoc($query) )
{
echo '
<div style="min-width:300px;height:100px;border:red 5px;float:left;">'.$row['url']. '</div>';
}
?>
您可以像這樣編寫登錄PHP,
<?php
// if PHP > 5.4: if (PHP_SESSION_NONE == session_status()) {
if ('' == session_id()) {
session_start();
}
if (isset($_SESSION['expires_by'])) {
$expires_by = intval($_SESSION['expires_by']);
if (time() < $expires_by) {
$_SESSION['expires_by'] = time() + intval($_SESSION['expires_timeout']);
} else {
session_destroy();
}
}
if (!isset($_SESSION['username'])) {
Header('Location: ' . $_SERVER['REQUEST_URI']);
exit();
}
?>
然后,單擊URL,您也許可以使用jQuery和AJAX。 您應該在CSS中聲明一個類似於“ link-block”的類,並編寫如下網址
echo '<div class="link-block">'.$row['url'].'</div>';
並在添加jQuery腳本之后,向頁面的onReady Javascript中的那些DIV添加點擊處理程序:
$('.link-block').on('click', function(e) {
$.post('/increase-points.php', { }, function(retval){
if (retval.newpoints) {
$('#point-block').html(retval.newpoints);
}
});
});
增點處理程序需要打開會話,該會話與上面的代碼相同(因此您可以將其放入外部包含文件“ session.php”),並打開數據庫連接(另一個包含文件...),然后:
UPDATE usertable SET points = points + 1 WHERE user_id = {$_SESSION['user_id']};
或如果您只有用戶名(確保已正確轉義)
...WHERE username = '{$escapedSessionUsername}';
順便說一句,我需要添加標准的mysql_*
棄用免責聲明 。
之后,您可以將要顯示的當前點返回到ID為“ points-block”的DIV中:
You have <span id="points-block"></span> points.
通過從數據庫查詢它們后以JSON返回它(或者您可以將它們保留在會話中並更新數據庫和會話;它為您節省了一個查詢)
// This in /update-points.php
$retval = array('newpoints' => $updated_points);
Header('Content-Type: application/json;charset=utf8');
die(json_encode($retval));
您也可以通過其他方式執行此操作,但是我在鏈接div中看不到錨,因此我想您需要動態的東西,這主要意味着AJAX。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.