PHP sayfasından diğerine geçmek değer

3 Cevap

Geri benim giriş page.Here için, başarısız = giriş durumunu yolluyorum benim kod olduğunu

header("location:index.php?login=fail");

ama bu URL üzerinden gönderiyor gibi-

http://localhost/303/index.php?login=fail

URL göstermeden değer geçmek için herhangi bir yolu var mı? Ve nasıl ikinci sayfada bu değeri elde etmek için?

3 Cevap

Bunu URL görünen neden olan, bir GET isteği ile bu değeri geçiyor. URL göstermeden bir değer geçmek için, bir POST isteği ile bunu geçmek istiyorum.

Bunu yapmak için, sizin oturum açma sayfasına değer "dönmek" istiyorum gidiş değildir. Onlar "login" butonuna tıkladıktan sonra Bunun yerine, ne olursa olsun, php form kullanıcı günlüğü sürecini işleyen, kullanıcıya göstermek için ne karar verecek.

PHP yazı değişkenleri global $ _POST nesne tarafından erişilebilir -

$_POST['username'];

Eğer POST üzerinden geçti ismi "username" ile değerini almak istiyorsunuz:

<form method="post" action="checkLogin.php">
Username:
<input type="text" name="username" maxlength="25" />
Password: 
</td><td><input type="password" name="password" />
<input type="submit" name="submit" value="Login">
</form>

Dinamik kaydetmek ve kullanıcı hataları göstermek için, örneğin, oturumda saklayabilirsiniz "errors.php" adında bir dosya var

<?php
if (isset($_SESSION['errors']))
{
    echo $_SESSION['errors'];
}

unset($_SESSION['errors'])
?>

Ve giriş denetler, php, yapın:

session_start();
$_SESSION['errors'] = "Invalid username or password.";

Sonra giriş sayfası (herhangi değişkenleri geçemiyor) ve formunuzda yönlendirmek her zaman bu alanı var:

<?php include("errors.php"); ?>

Eğer herhangi bir hata yoktu, bir şey göstermez ve giriş sayfası normal bakacağız.

Note: Bir session_start kullandığınız herhangi bir php formda (), bu formda İLK ŞEY OLMAK ZORUNDA.

Diğer yolları session veya hidden fields kullanmak için ama sen ne yapıyorsun amaç için gayet iyi. Daha sonra bu gibi değerini alabilirsiniz:

if ($_GET['login'] === 'fail')
{
  // failed.......
}

görevi yerine getirmek için çeşitli yollar vardır

  • Modern AJAX yolu. AJAX kullanarak gönderiliyor oluştururlar. Şifre kadar hiçbir sayfa yeniden doğrudur. Yerine gösterilen hatalar. Javascript requres.
  • Post/Redirect/Get desen. Normal POST kullanarak gönderilen oluştururlar. Yerine gösterilen hataları yok yönlendirme,.
  • oturumları, biz oturumda bir hata saklarken