Bir sonraki sayfaya PHP Geçiş değişkeni

5 Cevap php

oldukça basit gibi görünüyor ama ben bunu yapmak için iyi bir yol bulamıyorum.

Ilk sayfasında ben bir değişken oluşturmak Say

$myVariable = "Some text";

Ve o sayfa için formun eylem "sayfa2.php" dir. Yani sayfa2.php içinde, nasıl bu değişkene erişebilir? Ben oturumları ile bunu biliyorum ama ben basit bir dize için çok fazla düşünüyorum, ve ben sadece basit bir dize (dosya adı) geçmesi gerekiyor.

Bunu nasıl başarabiliriz?

Teşekkürler!

5 Cevap

HTML / HTTP, sen / önceki sayfada gördüm ne yaptığını diğer bir deyişle,, vatansız geçerli sayfanın tamamen kesilir. Except oturumlar, kurabiye veya GET / POST değişkenler gibi bir şey kullanın. Oturumlar ve çerezler oturum tarafından çok daha güvenli kurabiye den olmak, kullanımı oldukça kolaydır. Tamamen güvenli, daha güvenli değil.

Session:

//On page 1
$_SESSION['varname'] = $var_value;

//On page 2
$var_value = $_SESSION['varname'];

Herhangi bir çıktı tarayıcıya gönderilmeden önce de size $_SESSION dizi erişmeye çalışmadan önce hem bu sayfalarda session_start() deyimini çalıştırmak, ve unutmayın.

Cookie:

//One page 1
$_COOKIE['varname'] = $var_value;

//On page 2
$var_value = $_COOKIE['varname'];

Oturumlar ve çerezler arasındaki büyük fark çerezleri kullanıyorsanız eğer değişkenin değerini oturumları kullanarak eğer sunucuda saklanır ve istemci üzerinde olacağını vardır. Ben veri oturumları arasında kalıcı istiyorsanız dışında, yerine oturumları çerezleri kullanmak için iyi bir neden düşünemiyorum, ama o zaman bile bir DB depolamak için belki de daha iyi, ve bir kullanıcı adı veya kimliği dayalı bilmemekteyiz.

GET and POST

Ya sonraki sayfaya bağlantı değişkeni ekleyebilirsiniz:

<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>

Bu bir GET değişkeni oluşturmak, ya da iki sayfaya gönderen bir form gizli bir alan yer alacak:

<form method="get" action="page2.php">
    <input type="hidden" name="varname" value="var_value">
    <input type="submit">
</form>

Ve sonra iki sayfa

//Using GET
$var_value = $_GET['varname'];

//Using POST
$var_value = $_POST['varname'];

//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];

Eğer posta yoluyla bunu yapmak istiyorsanız sadece post için form yöntemini değiştirmek. GET kesmek daha kolay olmasına rağmen her ikisi de eşit derecede güvensizdir.

Ben ilk PHP kodlama başladı her yeni istek oturum verileri hariç, olması, senaryonun tamamen yeni bir örneği beni yakaladı. Buna alışmak, olsa oldukça basit.

Yukarıdaki cevaplar için teşekkürler. İşte nasıl yaptım, ben onu takip edenlere yardımcı olur umarım. Ben bu nedenle regName ve regValue, başka bir sayfadan bir kayıt numarası geçmek için arıyorum:

İlk sayfa oluşturmak, onu aramak set_reg.php:

<?php

session_start();

$_SESSION['regName'] = $regValue;

?>

<form method="get" action="get_reg.php">
    <input type="text" name="regName" value="">
    <input type="submit">
</form>

Ikinci sayfa oluşturmak, onu aramak get_reg.php:

<?php

session_start();

$regValue = $_GET['regName'];

echo "Your registration is: ".$regValue.".";

?>

<p><a href="set_reg.php">Back to set_reg.php</a>

Yukarıdaki cevap gibi kapsamlı olmasa da, benim amaçlar için bu basit şekilde çeşitli unsurları arasındaki ilişkiyi göstermektedir.

Passing data in the request

Ya fveyamdaki gizli bir alan olarak gömmek, ya da bunu sizin fveyam eylem URL'sini ekleyebilirsiniz

 echo '<input type="hidden" name="myVariable" value="'.
     htmlentities($myVariable).'">';

veya

echo '<fveyam method="POST" action="Page2.php?myVariable='.
    urlencode($myVariable).'">";

Yaklaşık veri geçen bu da htmlentities kullanımını ve urlencode göstermektedir edin.

Passing data in the session

If the data doesn't need to be passed to the client side, then sessions may be mveyae appropriate. Simply call session_start() at the start of each page, and you can get and set data into the $_SESSION array.

Security

Since you state your value is actually a filename, you need to be aware of the security ramifications. If the filename has arrived from the client side, assume the user has tampered with the value. Check it fveya validity! What happens when the user passes the path to an impveyatant system file, veya a file under their control? Can your script be used to "probe" the server fveya files that do veya do not exist?

As you are clearly just getting started here, its wveyath reminding that this goes fveya any data which arrives in $_GET, $_POST veya $_COOKIE - assume your wveyast enemy crafted the contents of those arrays, and code accveyadingly!

Oturumlar da GET / POST kullanabilirsiniz, sadece iyi bir yol olurdu ama bu potansiyel güvensiz olurdu.

Php değer geçmek için üç yöntem vardır.

  • Yazılan tarafından
  • Get by
  • Oturum değişkeni yaparak

Sonra biz gibi yöntem ($ _POST) 'post' kullanabilirsiniz sonraki sayfada bizim değer almak istiyorsanız bu üç yöntem farklı purpose.For örneğin kullanılır: -

$a=$_POST['field-name'];

Biz oturum değişkeni kullanabilirsiniz daha biz birden fazla sayfada değişkenin değerini gerektiriyorsa: -

$a=$_SESSION['field-name];

OTURUM değişken oluşturmak için bu sözdizimi kullanmadan önce biz ilk bizim php sayfanın başında bu etiketi eklemek zorunda

session_start(); 

GET yöntemi genellikle kullanıcı girişi almak için kullanılan aynı sayfada verileri yazdırmak için kullanılır. Onun sözdizimi olarak:

$a=$_GET['field-name'];

POST yöntemi genellikle biz veri şifre gibi daha hassas veriler URL bar.If verileri görüntüleyebilir daha Get yöntemi kullandığınızda o inggeris olabilir çünkü GET daha güvenli tüketmek.