簡體   English   中英

PHP更新表中的行

[英]PHP update rows in table

您好,我在這里遇到了一些問題,我創建了一個腳本來更新用戶帳戶詳細信息,但是當填寫表格並單擊提交按鈕時,不會出現任何錯誤,但是與此同時,表中沒有任何更改

這只是一個虛擬應用程序,因此一切都保持基本

     <?php


session_start();


    include('connect_mysql.php');



        if(isset($_POST['update']))
        {

            $usernameNew = stripslashes(mysql_real_escape_string($_POST["username"]));
            $passwordNew = stripslashes(mysql_real_escape_string($_POST["password"]));
            $first_nameNew = stripslashes(mysql_real_escape_string($_POST["first_name"]));
            $last_nameNew = stripslashes(mysql_real_escape_string($_POST["last_name"]));
            $emailNew = stripslashes(mysql_real_escape_string($_POST["email"]));



            $user_id = $_SESSION['user_id'];
            $editQuery = mysql_query("UPDATE users SET username='$usernameNew', password='$passwordNew', first_name='$first_nameNew', last_name='$last_nameNew' , email='$emailNew' WHERE user_id='$user_id'");


            if(!$editQuery)
            {
                echo mysql_error($editQuery);
                die($editQuery);
            }
        }

?>


<html>
<head>

<title>Edit Account</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div id="wrapper">
<header><h1>E-Shop</h1></header>

    <article>
        <h1>Welcome</h1>
            <h1>Edit Account</h1>

<div id="login">
    <ul id="login">
    <form method="post" name="editAccount" action="userEditAccount.php"  >
        <fieldset>  
            <legend>Fill in the form</legend>
                <label>Select Username : <input type="text" name="username" /></label>
                <label>Password : <input type="password" name="password" /></label>
                <label>Enter First Name : <input type="text" name="first_name" /></label>
                <label>Enter Last Name : <input type="text" name="last_name" /></label>
                <label>Enter E-mail Address: <input type="text" name="email" /></label>
        </fieldset>
        <br />


                <input type="submit" value="Edit Account" class="button">
<input type="hidden" name="update" value="update">


    </form>

</div>
    <form action="userhome.php" method="post">
    <div id="login">
        <ul id="login">
            <li>
                <input type="submit" value="back" onclick="index.php" class="button">   
            </li>
        </ul>
    </div>      
</article>

<aside>
</aside>

<div id="footer">Text</div>
</div>

</body>
</html>

很抱歉,我忘了復制這部分面孔

login.php:

<?php
session_start();

    require('connect_mysql.php');

     if($_SERVER['REQUEST_METHOD'] == 'POST')
     {

        $username = $_POST["username"];
        $password = $_POST["password"];
        $username = stripslashes($username);
        $password = stripslashes($password);
        $username = mysql_real_escape_string($username);
        $password = mysql_real_escape_string($password);

        $query = mysql_query("SELECT * FROM users WHERE Username='$username' AND Password='$password'");
        $numrow = mysql_num_rows($query);

    if($username && $password){



    $query = mysql_query("SELECT * FROM  users WHERE username='$username'");
    $numrow = mysql_num_rows($query);

    if($numrow !=0){

        while($row = mysql_fetch_assoc($query)){

            $dbusername = $row['username'];
            $dbpassword = $row['password'];         
        }

        if($username == $dbusername && $password == $dbpassword ){

            $_SESSION['user_id'] = $user_id;
            header("Location: userhome.php");

        }
        else{
            echo "Incorect password";
        }

    }
    else{
        die("This user dosent exists");
    }
}
else{

    $reg = die("Please enter username and password");
}
}


?>

您沒有在文件的開頭調用session_start() ,因此$username將是一個空字符串,並且update命令將僅更新用戶名是空字符串的行。

編輯:實際上,該代碼甚至不會運行,因為您尚未調用session_start()isset($_SESSION['update'])評估結果為false。

您是要寫$_SESSION['update']嗎? 那不是$_POST['update']嗎?

最后但並非最不重要的一點,我個人將替換為:

<input name="update" type="submit" submit="submit" value="Edit Account" class="button">

有了這個:

<input type="submit" value="Edit Account" class="button">
<input type="hidden" name="update" value="update">

至少為了清楚起見。 我不知道是否仍然如此,但是隨着時間的流逝,並不是所有的瀏覽器都提交了提交按鈕的名稱/值。

先生,從上面給出的代碼中,我認為您的login.php錯誤

$_SESSION['user_id'] = $user_id;

您沒有為$ user_id分配值,這就是為什么要將空白值設置為$ _SESSION ['user_id']。

  <?php
session_start();

    require('connect_mysql.php');

     if($_SERVER['REQUEST_METHOD'] == 'POST')
     {

        $username = $_POST["username"];
        $password = $_POST["password"];
        $username = stripslashes($username);
        $password = stripslashes($password);
        $username = mysql_real_escape_string($username);
        $password = mysql_real_escape_string($password);

        $query = mysql_query("SELECT * FROM users WHERE Username='$username' AND Password='$password'");
        $numrow = mysql_num_rows($query);

    if($username && $password){



    $query = mysql_query("SELECT * FROM  users WHERE username='$username'");
    $numrow = mysql_num_rows($query);

    if($numrow !=0){
        $user_id = 0;  
        while($row = mysql_fetch_assoc($query)){

            $dbusername = $row['username'];
            $dbpassword = $row['password'];         
            $user_id = $row['user_id'];
        }

        if($username == $dbusername && $password == $dbpassword ){

            $_SESSION['user_id'] = $user_id;
            header("Location: userhome.php");

        }
        else{
            echo "Incorect password";
        }

    }
    else{
        die("This user dosent exists");
    }
}
else{

    $reg = die("Please enter username and password");
}
}


?>

暫無
暫無

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

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