Привет, спасибо за ваше время.
Независимо от объема исследований, которые я делаю, я не могу найти уже обсуждаемое решение этой проблемы.
Проблема в том, что кнопка отправки автоматически перенаправляется, по-видимому, без отправки формы. Он работал до тех пор, пока я не переработал из MySQL функций MySQLi. Все остальное работает, но эта часть веб-сайта.
Форма HTML (myaccount.inc.php):
<div id="change-password"> <form class="clearfix" action="" method="post"> <div><span class="he1">Change Password</span></div> <div> <?php include_once 'controllers/accountController.php'; ?> </div> <div><label class="fieldlabel" for="password">Current Password:</label></div> <input type="password" name="password" id="password" size="23" /><br /> <div><label class="fieldlabel" for="passwordnew1">New Password:</label></div> <input type="password" name="passwordnew1" id="passwordnew1" size="23" /><br /> <div><label class="fieldlabel" for="passwordnew2">Confirm New Password:</label></div> <input type="password" name="passwordnew2" id="passwordnew2" size="23" /><br /> <input type="submit" name="submit" value="Change Password" class="bt_changepass" /> </form> </div>
Эта форма тогда, из-за отсутствия лучшего термина, контролируется некоторым PHP.
PHP (accountController.php):
// Checking whether the Password Change form has been submitted. if(isset($_POST['submit'])=='Change Password') { echo "<br />"; // Get the data from the database. $sql = $mysqli->query("SELECT * FROM ss_members WHERE usr = '".$_SESSION['usr']."' AND pass = '".md5($_POST['password'])."'"); $row = $sql->fetch_assoc(); // Will hold our errors $err = array(); if($_POST['password'] == "" || $_POST['passwordnew1'] == "" || $_POST['passwordnew2'] == "") { $err[] = 'All the fields must be filled in!'; } if(!$row['pass'] == md5($_POST['password']) && $_POST['passwordnew1'] != "" && $_POST['passwordnew2'] != "") { $err[] = 'Current password is not correct!'; } if($_POST['passwordnew1'] <> $_POST['passwordnew2']) { $err[] = 'New passwords do not match!'; } if(!count($err)) { if($row['usr']) { // If everything is OK change password. $stmt = $mysqli->prepare("UPDATE ss_members SET pass = md5(?) WHERE usr = {$_SESSION['usr']}"); $stmt->bind_param('s', $_POST['passwordnew1']); $stmt->execute(); $stmt->close(); echo "Password has been sucessfully updated!<br />"; } else { $err[]='Something broke!'; } } if($err) { // Save the error messages in the session. foreach($err as $error) { echo $error . "<br />"; } } echo "<br />"; }