Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

उपयोगकर्ता का सत्र डेटा कैसे स्टोर करें

आप अपना लॉगिन 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();
    }
?>

फिर यूआरएल पर क्लिक करने के लिए आप शायद jQuery और AJAX का उपयोग कर सकते हैं। आपको अपने सीएसएस में "लिंक-ब्लॉक" जैसा वर्ग घोषित करना चाहिए, और यूआरएल को इस तरह लिखना चाहिए

echo '<div class="link-block">'.$row['url'].'</div>';

और jQuery स्क्रिप्ट को शामिल करने के बाद, पेज के ऑनरेडी जावास्क्रिप्ट में उन 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_* पदावनति अस्वीकरण

जिसके बाद, आप "प्वाइंट-ब्लॉक" आईडी के साथ एक डीआईवी में प्रदर्शित होने वाले वर्तमान बिंदुओं को वापस कर सकते हैं:

    You have <span id="points-block"></span> points.

डेटाबेस से क्वेरी करने के बाद इसे JSON में वापस करके (या आप उन्हें सत्र में रख सकते हैं और DB और सत्र दोनों को अपडेट कर सकते हैं; यह आपको एक क्वेरी बचाता है)

    // This in /update-points.php
    $retval = array('newpoints' => $updated_points);
    Header('Content-Type: application/json;charset=utf8');
    die(json_encode($retval));

आप इसे अन्य तरीकों से भी कर सकते हैं, लेकिन मैंने आपके लिंक डिव में कोई एंकर नहीं देखा, इसलिए मुझे लगता है कि आप कुछ गतिशील चाहते हैं, जिसका अर्थ है AJAX।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. केक php Api . में MySql क्वेरी

  2. फर्स्ट आईडी डालने के बाद मेरा cfloop क्यों रुक जाता है?

  3. मारियाडीबी - रूट के रूप में लॉगिन नहीं कर सकता

  4. MySQL कई-से-अनेक विदेशी कुंजी के साथ संबंध

  5. JQUERY और php पोस्ट त्रुटि 500 ​​(सर्वर आंतरिक त्रुटि)