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

उपयोगकर्ता खाता प्रबंधन, भूमिकाएं, अनुमतियां, प्रमाणीकरण PHP और MySQL - भाग 6

यह PHP में उपयोगकर्ता खाता प्रबंधन प्रणाली बनाने के तरीके पर एक श्रृंखला का भाग 5 है। आप अन्य भागों को यहां देख सकते हैं:भाग 1, भाग 2, भाग 3, भाग 4 और भाग 5।

अपने व्यवस्थापक/उपयोगकर्ता फ़ोल्डर में editProfile.php नाम की एक फ़ाइल बनाएँ।

संपादित करेंप्रोफाइल.php:

<?php include('../../config.php'); ?>
<?php include(INCLUDE_PATH . '/logic/common_functions.php'); ?>
<?php include(ROOT_PATH . '/admin/middleware.php'); ?>
<?php include(ROOT_PATH . '/admin/users/userLogic.php'); ?>
<?php
  $sql = "SELECT id, username, email, profile_picture FROM users WHERE id=?";
  $user = getSingleRecord($sql, 'i', [$_SESSION['user']['id']]);
  $roles = getMultipleRecords("SELECT * FROM roles");

  $user_id = $user['id'];
  $username = $user['username'];
  $email = $user['email'];
  $profile_picture = $user['profile_picture'];
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>UserAccounts - Edit Profile</title>
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
    <!-- Custom styles -->
    <link rel="stylesheet" href="../../assets/css/style.css">
  </head>
  <body>
    <?php include(INCLUDE_PATH . "/layouts/admin_navbar.php") ?>

    <div class="container">
      <div class="row">

        <form action="editProfile.php" method="post" enctype="multipart/form-data">
          <input type="hidden" name="user_id" value="<?php echo $user_id ?>">
          <div class="col-md-8 col-md-offset-2">
            <h2 class="text-center">Edit Your Profile Info</h2>
            <hr>
              <div class="col-md-6" style="text-align: center;">
                  <?php if (isset($profile_picture)): ?>
                    <img src="<?php echo BASE_URL . '/assets/images/' . $profile_picture; ?>" id="profile_img" style="height: 150px; border-radius: 50%" alt="">
                  <?php else: ?>
                    <img src="http://via.placeholder.com/150x150" id="profile_img" style="height: 150px; border-radius: 50%" alt="">
                  <?php endif; ?>
                  <h3>Change Profile Picture</h3>
                  <!-- hidden file input to trigger with JQuery  -->
                  <input type="file" name="profile_picture" id="profile_input" value="" style="display: none;">
              </div>

              <div class="col-md-6">
                <div class="form-group <?php echo isset($errors['username']) ? 'has-error' : '' ?>">
                  <label class="control-label">Username</label>
                  <input type="text" name="username" value="<?php echo $username; ?>" class="form-control">
                  <?php if (isset($errors['username'])): ?>
                    <span class="help-block"><?php echo $errors['username'] ?></span>
                  <?php endif; ?>
                </div>
                <div class="form-group <?php echo isset($errors['email']) ? 'has-error' : '' ?>">
                  <label class="control-label">Email Address</label>
                  <input type="email" name="email" value="<?php echo $email; ?>" class="form-control">
                  <?php if (isset($errors['email'])): ?>
                    <span class="help-block"><?php echo $errors['email'] ?></span>
                  <?php endif; ?>
                </div>
                <div class="form-group <?php echo isset($errors['passwordOld']) ? 'has-error' : '' ?>">
                  <label class="control-label">Old Password</label>
                  <input type="password" name="passwordOld" class="form-control">
                  <?php if (isset($errors['passwordOld'])): ?>
                    <span class="help-block"><?php echo $errors['passwordOld'] ?></span>
                  <?php endif; ?>
                </div>
                <div class="form-group <?php echo isset($errors['password']) ? 'has-error' : '' ?>">
                  <label class="control-label">Password</label>
                  <input type="password" name="password" class="form-control">
                  <?php if (isset($errors['password'])): ?>
                    <span class="help-block"><?php echo $errors['password'] ?></span>
                  <?php endif; ?>
                </div>
                <div class="form-group <?php echo isset($errors['passwordConf']) ? 'has-error' : '' ?>">
                  <label class="control-label">Password confirmation</label>
                  <input type="password" name="passwordConf" class="form-control">
                  <?php if (isset($errors['passwordConf'])): ?>
                    <span class="help-block"><?php echo $errors['passwordConf'] ?></span>
                  <?php endif; ?>
                </div>
                <div class="form-group <?php echo isset($errors['role_id']) ? 'has-error' : '' ?>">
                  <label class="control-label">User Role</label>
                  <select class="form-control" name="role_id" >
                    <option value="" ></option>
                    <?php foreach ($roles as $role): ?>
                      <?php if ($role['name'] === $_SESSION['user']['role']): ?>
                        <option value="<?php echo $role['id'] ?>" selected><?php echo $role['name'] ?></option>
                      <?php else: ?>
                        <option value="<?php echo $role['id'] ?>"><?php echo $role['name'] ?></option>
                      <?php endif; ?>
                    <?php endforeach; ?>
                  </select>
                  <?php if (isset($errors['role_id'])): ?>
                    <span class="help-block"><?php echo $errors['role_id'] ?></span>
                  <?php endif; ?>
                </div>
                <div class="form-group">
                  <button type="submit" name="signup_btn" class="btn btn-danger pull-right">Delete Your Account</button>
                  <button type="submit" name="update_profile" class="btn btn-success">Update Profile</button>
                </div>
              </div>
          </div>
      </form>

      </div>
    </div>
  <?php include(INCLUDE_PATH . "/layouts/footer.php") ?>
  <script type="text/javascript" src="../../assets/js/display_profile_image.js"></script>

अब यह पृष्ठ उपयोगकर्ता को अपनी प्रोफ़ाइल जानकारी संपादित करने के लिए एक प्रपत्र प्रस्तुत करता है। यह अपडेट यूजर फीचर से काफी मिलता-जुलता है इसलिए हम उसी फंक्शन का इस्तेमाल करेंगे जो यूजर प्रोफाइल को अपडेट करने के लिए यूजर्स को अपडेट करता है। इसलिए userLogic.php खोलें और फ़ाइल के शीर्ष भाग के आस-पास if कथनों में इसे if कथन जोड़ें।

userLogic.php:

// ... more code here

if (isset($_POST['update_profile'])) {
    $user_id = $_SESSION['user']['id'];
    if (!isset($user_id)) {
      $_SESSION['success_msg'] = "You have to be logged in to update your profile";
      header("location: " . BASE_URL . "login.php");
      exit(0);
    } else {
      updateUser($user_id); // Update logged in user profile
    }
}

// ... more code here ...

अब अपने व्यवस्थापक खाते से लॉग इन करें जिसे हमने पहले बनाया था। लॉग इन करने के बाद, नेविगेशन बार पर अपने उपयोगकर्ता नाम पर क्लिक करें और दिखाई देने वाले ड्रॉपडाउन से "प्रोफाइल" चुनें। यह आपको एडिट प्रोफाइल पेज पर ले जाएगा। जानकारी संशोधित करें और अपडेट बटन दबाएं और आपका उपयोगकर्ता खाता अपडेट हो जाएगा।

जब आप अपना प्रोफ़ाइल अपडेट करते हैं, तो यह कहते हुए एक संदेश प्रदर्शित होगा कि आपने खाता सफलतापूर्वक अपडेट कर लिया है लेकिन आप उस खाते को उपयोगकर्ता खातों की तालिका में सूचीबद्ध नहीं देखेंगे। ऐसा इसलिए है क्योंकि आप वर्तमान में लॉग इन उपयोगकर्ता हैं, इसलिए जब आप लॉग इन होते हैं तो आपका खाता खातों की तालिका में प्रदर्शित नहीं होना चाहिए। यह निश्चित रूप से व्यक्तिगत प्राथमिकता है, यदि आप अपना खाता तालिका में जोड़ना चाहते हैं, तो आप संशोधित कर सकते हैं उपयुक्त स्रोत कोड।

निष्कर्ष

इस ट्यूटोरियल को फॉलो करने के लिए आपका बहुत-बहुत धन्यवाद। यह मेरे लिए काफी लंबी यात्रा रही है लेकिन मैंने इसका आनंद लिया। मुझे आशा है कि आपने भी किया। यह ट्यूटोरियल कितने समय से चल रहा है, हो सकता है कि मैं कुछ जोड़ना या हटाना भूल गया हूँ। हो सकता है कि मैंने कहीं न कहीं गलती की हो। यदि आपको ऐसी कोई त्रुटि दिखाई देती है तो कृपया टिप्पणी अनुभाग में एक टिप्पणी छोड़ दें ताकि मैं इसे ठीक कर सकूं।

कृपया साझा करके समर्थन करें।

आपका दिन शानदार रहे!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 कार्य जो MySQL में एक तिथि से महीने का नाम लौटाते हैं

  2. MySQL ने कहा:दस्तावेज़ीकरण # 1045 - उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:नहीं)

  3. MySQL में आवृत्ति से दशमलव की गणना करें

  4. PhpMyAdmin कैसे स्थापित करें

  5. MySQL 1062 - कुंजी 'प्राथमिक' के लिए डुप्लिकेट प्रविष्टि '0'