Omleiden naar een pagina na het indienen van een formulier in HTML

Ik ben vrij nieuw in het coderen in HTML. Na uren zoeken op internet naar een manier om dit te doen, heb ik gefaald en dus ben ik hier. Ik was hier een CSRF Proof of concept-pagina aan het opzetten, ik wil dat deze doorverwijst naar een andere pagina die de payload zal uitvoeren die de CSRF had geïmplementeerd.

<html>
  <body>
    <form action="https://website.com/action.php?" method="POST">
      <input type="hidden" name="fullname" value="john" />
      <input type="hidden" name="address" value="street 2, 32 ave" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

Dus nadat dit formulier is ingediend met, is het enige dat het doet doorverwijzen naar deze pagina

Maar in plaats daarvan wil ik dat het wordt omgeleid naar een andere URL en dat formulier verzendt.


Antwoord 1, autoriteit 100%

Voor iedereen die hetzelfde probleem heeft, ik heb het zelf opgelost.

   <html>
      <body>
        <form target="_blank" action="https://website.com/action.php" method="POST">
          <input type="hidden" name="fullname" value="Sam" />
          <input type="hidden" name="city" value="Dubai&#32;" />
          <input onclick="window.location.href = 'https://website.com/my-account';" type="submit" value="Submit request" />
        </form>
      </body>
    </html>

Antwoord 2, autoriteit 17%

U moet de jQuery AJAX of XMLHttpRequest() gebruiken om de gegevens naar de server te posten. Na het plaatsen van gegevens kunt u uw pagina doorverwijzen naar een andere pagina via window.location.href.

Voorbeeld:

var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      window.location.href = 'https://website.com/my-account';
    }
  };
  xhttp.open("POST", "demo_post.asp", true);
  xhttp.send();

Antwoord 3, autoriteit 3%

Wat u zou kunnen doen is een validatie van de waarden, bijvoorbeeld:

als de waarde van de invoer van fullanme groter is dan een bepaalde waardelengte en als de waarde van de invoer van adres groter is dan een bepaalde waardelengte, stuur dan door naar een nieuwe pagina, anders wordt er een fout voor de invoer weergegeven.

// We access to the inputs by their id's
let fullname = document.getElementById("fullname");
let address = document.getElementById("address");
// Error messages
let errorElement = document.getElementById("name_error");
let errorElementAddress = document.getElementById("address_error");
// Form
let contactForm = document.getElementById("form");
// Event listener
contactForm.addEventListener("submit", function (e) {
  let messageName = [];
  let messageAddress = [];
    if (fullname.value === "" || fullname.value === null) {
    messageName.push("* This field is required");
  }
  if (address.value === "" || address.value === null) {
    messageAddress.push("* This field is required");
  }
  // Statement to shows the errors
  if (messageName.length || messageAddress.length > 0) {
    e.preventDefault();
    errorElement.innerText = messageName;
    errorElementAddress.innerText = messageAddress;
  }
   // if the values length is filled and it's greater than 2 then redirect to this page
    if (
    (fullname.value.length > 2,
    address.value.length > 2)
  ) {
    e.preventDefault();
    window.location.assign("https://www.google.com");
  }
});
.error {
  color: #000;
}
.input-container {
  display: flex;
  flex-direction: column;
  margin: 1rem auto;
}
<html>
  <body>
    <form id="form" method="POST">
    <div class="input-container">
    <label>Full name:</label>
      <input type="text" id="fullname" name="fullname">
      <div class="error" id="name_error"></div>
      </div>
      <div class="input-container">
      <label>Address:</label>
      <input type="text" id="address" name="address">
      <div class="error" id="address_error"></div>
      </div>
      <button type="submit" id="submit_button" value="Submit request" >Submit</button>
    </form>
  </body>
</html>

Other episodes