PHP Sayfalar Arasında Passing Bilgiler

5 Cevap php

Nasıl PHP sayfaları arasında bilgi geçmek?

Örneğin, ben bir formdaki giriş giriş işlemek için bir PHP komut dosyası, ve daha sonra kullanıcı için daha fazla giriş işlemek için ayrı bir PHP komut dosyası var. Ancak, ikinci PHP dosyası giriş formundan giriş almak istiyorum. Özünde, aynı komut girişi için iki kez çalıştırmak olmak istemiyorum.

5 Cevap

POST arıyor ve değişkenleri GET ediyoruz, HTML form yöntem parametre bitti:

login.php

<form name="myform" action="secondpage.php" method="post">
    <div>Username: <input type="text" name="username" value="" /></div>
    <div>Password: <input type="password" name="password" value="" /></div>
</form>

Daha sonra bu diğer sayfada:

secondpage.php

$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
if ($username != '') {       
    // do your validations here
}

Explanation

Eğer GET yöntemini kullandığınızda, parametreleri URL görünür, o yüzden biz = login.php in "GET", sen = secondpage.php? Username = jsmith ve şifre gibi bir şey ile 1234 bitireceğiz yöntemini değiştirmek diyelim . Ve sonra $_GET['username'] kullanarak değerlerini alabilir.

POST kullanarak mümkün (bir vague limit bir URL boyutu vardır) büyük veri miktarını göndermek için yapar ve URL görünür değil. Gerçi o it's still sent in clear text dikkat etmelisiniz, bu yüzden güvenli demek değildir.

POST ve GET farklı amaçlar için yapılmıştır. Bu çok anlık sizi ileride tekrar ayıklamak istiyor olabilir bilgileri, özel olmayan bilgileri ayıklamak için kullanımı olmalıdır GET. Bu potansiyel bir arkadaşınıza bu URL'yi göndermek isteyeceksiniz çünkü = 123 mypage.php? Ürün olması yararlıdır. Eğer veri durumunu değiştirmek olacak zaman bir POST kullanılmalıdır: böylece, bir ürün güncellenmesi yeni bir kullanıcı oluşturma, bir makale silme ve. Bu kez gerçekleşmesi istediğiniz bir şey.

Structure

Sonuç olarak, ben sadece normalde mutlaka sadece çalıştırmak veya değil, bazı kod önlemek için başka bir PHP komut dosyası kullanmak istemem eklemek istiyorum. Yani projenin özelliklerini bilmeden, ben yine de muhtemelen (örneğin formun HTML gibi) aynı kodundan yararlanmak için böyle bir şey yapmak istersiniz söyleyebiliriz.

Bu kod basitleştirilmiş unutmayınız.

login.php

<?php

    $error = false;
    $username = isset($_POST['username']) ? $_POST['username'] : '';
    $password = isset($_POST['password']) ? $_POST['password'] : '';
    // if, and only if something was posted... so not on first display
    if ($username != '') {       
        // do your validations here
        if ($properlyLogged) {
            session_start();
            $_SESSION['loggedAt'] = time();
            header('Location: http://localhost/secondpage.php');
            exit();
        } else {
            $error = true;
        }
    }

?>

<?php if($error): ?>Login failed. Please try again.<?php endif; ?>
<form name="myform" action="login.php" method="post">
    <div>Username: <input type="text" name="username" value="<?php echo($username) ?>" /></div>
    <div>Password: <input type="password" name="password" value="" /></div>
</form>

secondpage.php

<?php
    session_start();
    if (!isset($_SESSION['loggedAt'])) {
        // if not properly logged in, return user to login
        header('Location: http://localhost/login.php');
        exit();
    }
?>
You are now logged in!

Eğer bu sizin için ne aradığını umut!

Siz GET veya POST yöntemleri kullanarak sayfaları arasında bilgi iletebilirsiniz. Eğer gibi url üzerinde bir sorgu dizesi olarak geçmek isteyen bilgi eklemek istiyorum GET:

loginprocess.php? id = OOzorhan & pword = HelloThere (bu tam olarak özel bilgi için tavsiye edilmez)

Diğer yöntem sorgu dizesi gizli böylece POST üzerinden bilgi göndermek için.

Daha fazla örnek burada görülebilir: http://www.tizag.com/phpT/postget.php

Veriler URL yoluyla iletilen verilerle 2. sayfaya kullanıcıyı yönlendirme olabilir bu büyük değilse (değişkenleri GET). Aksi takdirde, sadece aynı sayfada saniye yöntemini çalıştırmak ve yukarıda kullanıcı anlaşılacağı gibi dahil edilebilir verilerin nihai ayrıştırma yapmak için bir işlevini kullanın.

Daha önce yazılmış ne sadece küçük bir ekstra: (GET parametrize URL) üzerinde sınırın 1024 karakteri anlamına gelir, tam bir URL. Bundan daha fazlasına ihtiyacınız varsa, size yazı kullanmak zorunda.

Eğer PHP arasında veri paylaşmak için PHP oturumları yararlanabilirsiniz. Temel örnek aşağıda, daha fazla okumak here.

login.php:

<?php

// initializes the session //
session_start();

// save user name and password to session //
$_SESSION["username"] = 'someuser';
$_SESSION["password"] = 'somepassword';
$_sESSION["valid"] = true;

?>

secondpage.php:

<?php

// start session handler //
session_start();

// check for a valid session //
if (!isset($_SESSION["valid"])) header("Location: login.php\n\n");

// continue page code here //

?>