簡體   English   中英

如何編寫代碼以允許用戶更改密碼或更改用戶名?

[英]How do I write my code to allow a user to change password or change username?

我正在制作的網站的一部分為用戶提供了更改密碼的選項。 我已經配置了此代碼,並且可以正常工作。

我現在想在同一頁面上添加一個表單,該表單使用戶可以選擇更改其USERNAME。 (因此,它們分別更改了用戶名,但不更改密碼)。

我是否需要重復完全相同的以下代碼並將其粘貼在代碼下面,顯然是為了使用戶名而不是密碼適應特定的單詞,或者是否有辦法我可以添加到現有代碼中,從而使其成為一個處理代碼? 我該怎么做呢? 因此,例如第一行:

如果($ submit =='更改密碼'){

我想用英文說, 如果 “更改密碼” “更改用戶名”按鈕被提交的代碼...執行以下代碼,等等。

//處理代碼

<?php
require_once('checklog.php');
require_once('functions.php');
// Grab the form data
$submit         = trim($_POST['submit']);
$password       = trim($_POST['password']);
$newpassword    = trim($_POST['newpassword']);
$repeatpassword = trim($_POST['repeatpassword']);
// Create some variables to hold output data
$message        = '';
// Start to use PHP session
session_start();
if ($submit == 'Change Password') {
    include_once('connect.php');
    mysqli_select_db($db_server, $db_database) or die("Couldn't find db");
    //clean the input now that we have a db connection                      
    $password       = clean_string($db_server, $password);
    $newpassword    = clean_string($db_server, $newpassword);
    $username       = $_SESSION['username'];
    $repeatpassword = clean_string($db_server, $repeatpassword);
    if ($password && $newpassword) {
        if ($repeatpassword == $newpassword) {
            if (strlen($newpassword) > 25 || strlen($newpassword) < 6) {
                $message = "Password must be 6-25 characters long";
            } else {
                // check whether username exists
                $password = salt($password);
                $query    = "SELECT username FROM users WHERE username='$username' and password='$password'";
                $result   = mysqli_query($db_server, $query);
                //if theres a result change password to new password
                if ($row = mysqli_fetch_array($result)) {
                    $newpassword    = salt($newpassword);
                    $repeatpassword = salt($repeatpassword);
                    //update password
                    $query          = "UPDATE users SET password='$newpassword' WHERE username='$username'";
                    mysqli_query($db_server, $query) or die("Update failed. " . mysqli_error($db_server));
                    $message = "<strong>Password change successful!</strong>";
                } else {
                    $message = "User account not found.";
                }
                mysqli_free_result($result);
            }
        } else {
            $message = "Password must match";
        }
    } else {
        $message = "Please enter all fields";
    }
    include_once('db_close.php');
}


include_once('header_logged.php');

?>

//更改密碼或用戶名的表格

!--change password form --> 
To change your Password:

<form method="post" action="changepassword.php">
Current password: <input type='password' name='password'>
<br>
<br>
New Password: <input type='password' name='newpassword'>
<br>
<br>
Repeat New Password: <input type='password' name='repeatpassword'>

<input type='submit' name='submit' value='Change Password'>
<input type='reset' name='reset' value='Reset'>
</form>
<p><strong><?php
echo $message;
?></strong></p>


<!--change username form --> 
To change your Username:
<form method="post" action="changepassword.php">
Current Username: <input type='username' name='username'>
<br>
<br>
New Username: <input type='username' name='newusername'>
<br>
<br>
Repeat New Username: <input type='username' name='repeatusername'>

<input type='submit' name='change' value='Change Username'>
<input type='reset' name='reset' value='Reset'>
</form> 

感謝您的幫助,非常感謝。

用這個:

if(isset($_POST['submit']) || isset($_POST['change'])){
//write your code here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM