PHP ve HTML formu ile Yardım (POST + Yönlendirme)

3 Cevap php

, HI

Herhangi bir yardım

Onlar başka bir sayfaya formu gönderdikten sonra ben kullanıcı yönlendirmek gerekir

Bunu nasıl yapabilir?

<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

3 Cevap

Eğer POST + yönlendirme şey istiyorsanız:

header('Location: ' . $nextUrl, true, 303);

hile yapacak.

Example code:

<!-- form.html -->
<form method="post" action="postHandler.php">
  <input type="text" name="someName" value=""/>
  <input type="submit" name="submitButton">
</form>

 

// postHandler.php
if (isset($_POST['submitButton'])) {
  // do something with the posted data

  header('Location: submitOk.html', true, 303);
} else {
  header('Location: form.html', true, 303);
}

 

<!-- submitOk.html -->
<h1>Ok</h1>
<p>
  Your information was received
</p>

Eylem sayfasını belirtin = formun "" özniteliği (PHP_SELF kullanmayın).

Başarılı bir POST tamamladı komut dosyası:

header('Location: http://'.$_SERVER['HTTP_HOST'].'/finalpage.php', TRUE, 303);

Bu mutlak bir URL değil, sadece /finalpage.php içermelidir Not; Bir Location başlığı göreli URI, HTTP RFC tarafından izin verilmeyen ve bazı tarayıcılar tarafından desteklenmez. Ayrıca 303 kesinlikle varsayılan 302 daha doğru konuşuyor.

Eğer yönlendirme sadece GET olarak yine aynı sayfayı almak istiyorsanız bunu yapabilirsiniz:

header('Location: '.$_SERVER['PHP_SELF'], TRUE, 303);

Ayrıca:

action="<?php echo $_SERVER['PHP_SELF']; ?>"

güvensiz, potansiyel bir HTML-enjeksiyon deliği XSS yol açmaktadır. Tüm metin dizeleri HTML içeriğine çıkış olarak veya değerler uygun şekilde kaçırmak gerekir özniteliği:

action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"