Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bị mắc kẹt với truy vấn PHP

Bạn đang kiểm tra xem các giá trị bài đăng có được đặt cho mật khẩu không (mật khẩu sẽ luôn như vậy, vì phần tử biểu mẫu đó sẽ luôn được gửi). Thay vì chỉ kiểm tra xem các vaues đó đã được đặt chưa, hãy đảm bảo rằng chúng không trống. sử dụng rỗng () Ngoài ra, khi so sánh, không sử dụng từ "VÀ", hãy sử dụng toán tử and "&&".

        if (!empty($_POST['repeatnewpassword']) && !empty($_POST['newpassword'])) {
            if ($newpassword==$repeatnewpassword)
            {
                $querychange = mysql_query("UPDATE login SET password='$newpassword' WHERE   username='$username'");
                echo "<div class='successmate'><br><br><br><br><hr>Password has been changed!</hr></div><div class='successmate'><br><hr><br><h2><p><a href='index2.php'><br><br></a></p></h2></div>";
            }
            else {echo "<div class='results'>new password(s) dont match</div><div class='successmate'><br><br><h2><p><a href='changepassword.php'>try again?</a></p></h2></div>";}

        }

Tôi đang xem sai đoạn mã. Lời khuyên trên là lời khuyên tốt, nhưng vấn đề của bạn là ở đây:

Nếu các trường mật khẩu trống thì các trường này sẽ không bao giờ giống nhau, vì vậy if ($oldpassword==$oldpassworddb) sẽ luôn đánh giá sai.

Hãy thử

if ($oldpassword==$oldpassworddb && !empty($_POST['oldpassword']))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn Mysql NHÓM theo và ĐẶT HÀNG bởi

  2. Sử dụng câu lệnh IF trong truy vấn MySQL SELECT

  3. Kết hợp bất hợp pháp các đối chiếu (latin1_swedish_ci, COERCIBLE) và (utf8_general_ci, IMPLICIT) cho hoạt động 'find_in_set'

  4. PDOStatement ::execute ():SQLSTATE [HY093]:Số tham số không hợp lệ:số biến liên kết không khớp với số mã thông báo

  5. Làm cách nào để nhận e-mail khi bảng MySQL của tôi được cập nhật?