首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Index.php页面编辑后更新Edit.php页面上的数据库值

如何在Index.php页面编辑后更新Edit.php页面上的数据库值
EN

Stack Overflow用户
提问于 2015-01-13 14:37:32
回答 1查看 725关注 0票数 1

Index.php Page我是个初学者。这是索引页面,我打印登录的用户名,每当用户编辑他的详细信息时,我想更新用户名--我试着更新用户名,但当我编辑详细信息时,我先登录,然后再登录,然后这个名称就会更新。当用户编辑他的详细信息时,我想立即更新用户名,并像facebook一样将其重定向到索引页面。我几乎花了一周的时间来解决这个problem.Please,如果有什么需要的话,请给我代码。谢谢

代码语言:javascript
复制
<?php
session_start();
require_once("inc/connection.php");
if (empty($_SESSION['usersession'])) {
    header("Location: login.php");
}
if (isset($_SESSION['msg'])) {
    echo $_SESSION['msg'];
    unset($_SESSION['msg']);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title>WELCOME TO USER AREA</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
        <div id="main">
            <nav id="nav">
                <div class="logout">
                    WELCOME <?php echo $_SESSION['usersession']['name']; ?> // echo name of user
                    <a href="logout.php">Log out</a>        
                </div>
                <ul>
                    <li><a href="index.php">Home</a></li>
                    <li><a href="register.php">Register</a></li>
                    <li><a href="edit.php">Edit</a></li>
                    <li><a href="delete.php">Delete(not recommended)</a></li>
                </ul>
            </nav>
            <div class="para">
                some text
            </div>
        </div>
    </body>
</html>

edit.php 这是edit.php代码

代码语言:javascript
复制
<?php
session_start();
if (empty($_SESSION['usersession'])) {
    header("Location: login.php");
}
if (isset($_SESSION['msg'])) {
    echo $_SESSION['msg'];
    unset($_SESSION['msg']);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title>REGISTER HERE</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
        <div id="reg2">
            <?php
            if (isset($_POST['btn'])) {
                $name = $_POST['name'];
                $email = $_POST['email'];
                $password = $_POST['password'];
                $id = $_SESSION['usersession']['id'];
                if (!empty($name && $email && $password)) {
                    if (!empty($password)) {
                        $password = sha1($password);
                        require_once("inc/connection.php");
                        $query = mysqli_query($conn, "UPDATE register SET name='$name',email='$email',password='$password' WHERE id='$id'");
                        if ($query) {
                            header("Location: index.php");
                        } else {
                            echo "not updated right now please try again later";
                        }
                        $_SESSION['msg'] = "Your detail has been updated successfully";
                    }
                } else {
                    echo "please put your updated password";
                }
            }
            ?>
        </div>
        <div id="form">
            <form method="post" action="edit.php">
                <label>NAME</label><p>
                <input class="int" type="text" class="nm" name="name" placeholder="Please Enter Your Name Here" value="<?php echo $_SESSION['usersession']['name']; ?>" /><p>
                    <label>EMAIL</label><p>
                <input class="int" type="email" class="em" name="email" placeholder="Please Enter Your Email Here" value="<?php echo $_SESSION['usersession']['email']; ?>"  /><p>
                    <label>PASSWORD</label><p>
                    <input class="int" type="password" name="password" placeholder="Please Enter Your new Password Here" />
                <p></p>
                <input type="hidden" name="id[]" value="<?php echo $_SESSION['usersession']['id']; ?>"/>
                <input type="submit" name="btn" id="btu" value="Update">
            </form>
        </div>
    </body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-13 14:45:25

更新数据库时,没有更改$_SESSION中的值。你必须手动完成。

代码语言:javascript
复制
// Add that under $_SESSION['msg'] = '....'
$_SESSION['usersession']['username'] = $name; // Same with email and password

请注意,您的代码容易受到mysql注入的影响。你应该用字符串来避免这种情况。

此外,您甚至在输出<!DOCUMENT html>之前都会显示您的消息。请不要那样做。相反,在html中的某个地方回显消息!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27924616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档