Bir formda php parametreleri geçirerek?

4 Cevap php

Ben temel html formu php yankılandı var:

<html>
<body>
<?php 
if (isset($_GET["pk"]))
 { $pk = $_GET["pk"];}
echo '<form action="up.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>';
?>
</body>
</html>

Ben up.php için pk değerini geçmek istiyorum

Eylem değiştirme = "up.php? Pk = $ pk" işe yaramadı.

4 Cevap

Gizli alanını kullanın:

<input type="hidden" name="pk" value="<?php echo $pk; ?>">

Bu arada, sizin gibi HTML baskı büyük miktarlarda ugly orada var. Yorumlu metin, bir şablon motoru, ya da bir çerçeve kullanarak, bunu yapmak için PHP çıkıp birini düşünün.

EDIT:

Aşağıda belirtildiği gibi, önce onu sterilize etmeden geri sayfaya GET yazdırmak ve POST veri olmamalıdır. Pk varsayarsak birincil anahtar, sen $pk intval fonksiyonu ile, at the very least Yukarıdaki sarılmalıdır.

Sen bir tek tırnaklı dize içinde bir değişken kullanamazsınız:

$pk = 123;
echo 'Hello $pk'; // echos Hello $pk
echo "Hello $pk"; // echos Hello 123
echo 'Hello ' . $pk; // echos Hello 123

Bunu geçmek için en iyi yolu, form içinde gizli bir alan olarak olurdu

Ben $ _GET ['pk'] değişkeni girdi denetimi çeşit ile ilgili tüm yorum katılıyorum. Ben çok fazla inanıyorum varsayılan yüklü modül olan php filtre modülü öneriyoruz.

<html>
<body>
<?php 
 $param = filter_input(INPUT_GET, 'pk', FILTER_SANITIZE_ENCODED);
?>
<form action="up.php<?php echo (isset($param) && $param != false) ? '?pk=' . $params : ''); ?>" method="post"enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

Sen filtre modülü hakkında daha fazla bilgi burada bulabilirsiniz: link text

Ben de bunu yapmak için güzel bir yol değildir, Paolo Bergantino katılıyorum ve bir şablon motoru, yorumlu metinler veya regexp sisteminin okunabilirliği ve bakımı artan daha iyi bir yolu olabilir.

Bu gibi sth deneyin:

<html>
<body>
<?php 
$params = "";
if (isset($_GET["pk"]))
  { $params = "?pk=" . $_GET["pk"];}
echo '<form action="up.php' . $params . '" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>';
?>
</body>
</html>

Tabii ki $ _GET ["pk"] oldukça çok şey içerebilir farkında olmak, bu yüzden girdi sanitasyonuyla çeşit düşünmelisin.