PHP sayfaları arasında değişkenler aktarmanıza

5 Cevap php

Ben, tek bir sayfada kullanıcı girişi almak php değişken bu depolamak ve başka bir php sayfasında kullanmak istiyorum. Ben 'oturumları' kullanarak denedim ama çalışıyor gibi görünmüyor. Başka bir güvenli alternatif var mı? Bu bilgiler, kullanıcı adları ve şifreleri olması muhtemeldir.

5 Cevap

Bu yapmak için en iyi yol olduğu oturum kodu değiştirmeyi deneyin.

Örneğin:

index.php

<?php
session_start();

if (isset($_POST['username'], $_POST['password']) {
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['password'] = $_POST['password'];
    echo '<a href="nextpage.php">Click to continue.</a>';
} else {
    // form
}
?>

nextpage.php

<?php
session_start();

if (isset($_SESSION['username'])) {
    echo $_SESSION['username'];
} else {
    header('Location: index.php');
}
?>

Ancak muhtemelen bir oturumda adınız ziyade kullanıcının giriş kimlik bilgileri gibi güvenli bir şey saklamak istiyorum.

Ben Carson ile katılıyorum, oturumlar için çalışması gerekir. Eğer oturum değişkenleri kullanmak istediğiniz herhangi bir sayfaya her şeyden önce session_start() çağırıyor emin olun.

Ayrıca, ben, doğrudan şifre bilgi depolamak olmaz doğrusu kimlik doğrulama belirteci mekanizması çeşit kullanın. IMHO, bir oturumda şifre veri depolamak için intrinsically güvensiz değil, ancak bunu yapmak için hiçbir ihtiyaç varsa, muhtemelen bunu önlemek için çalışmalısınız.

Çeşitli yolları vardır:

  • sessions kullanın (ama oturumu veri deposunu ($_SESSION) kullanırız her sayfada session_start() aramak için unutmayın)
  • "sonraki" Sayfanın sorgu dizesi veri append ($_GET)
  • "sonraki" sayfaya veri göndermek ($_POST)

Oturum yolu sunucusunun kendisinde depolanan olarak veri sunucu "terk" değil hangi tek yoludur. Yukarıda bahsedilen tüm diğer yollar sen alıcı sayfasındaki verileri sanitasyon ve doğrulama bakmak zorunda.

En basit yolu olacaktır

//page1.php
session_start();
$_SESSION['user']='user';
$_SESSION['password']='password';

//page2.php
session_start();
echo $_SESSION['user'] . ' ' . $_SESSION['password'];

POST kullanmayı deneyin ve PHP içinde kullanıcı girişleri aktarmak için yöntemler GET.

PHP GET

PHP POST

Ben de, seans iyi çözümdür katılıyorum. Bazı örnekler için Web Database Applications with PHP & MySQL bu bölümüne bakın.