Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Utknąłem na zapytaniu PHP

Sprawdzasz, czy wartości post są ustawione dla hasła (które zawsze będą, ponieważ ten element formularza będzie zawsze przesyłany). Zamiast po prostu sprawdzać, czy te wartości są ustawione, upewnij się, że nie są one puste. użyj empty() Również podczas porównywania nie używaj słowa "AND" użyj operatora i "&&".

        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>";}

        }

Patrzę na zły fragment kodu. Powyższa rada to dobra rada, ale Twój problem jest tutaj:

Jeśli pola hasła są puste, to nigdy nie będą takie same, więc if ($oldpassword==$oldpassworddb) zawsze oceni fałsz.

Wypróbuj

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. Pobierz wszystkie wiadomości i wszystkie komentarze

  2. Czy mysqli_real_escape_string wystarczy, aby uniknąć wstrzyknięcia SQL lub innych ataków SQL?

  3. jak uzyskać szczegóły z wielu tabel?

  4. Codeigniter simple_query vs. konstruktor zapytań (wstaw, zaktualizuj i usuń)

  5. Instrukcja SQL — macierz SQL