PHP ile başka bir web sayfasından POST verileri geçirmeden

5 Cevap php

Arama, benzer bir soru bulamadık: Nasıl başka bir PHP üretilen sayfa için bu sayfaya geçirilecek bir sayfa oluşturmak için PHP tarafından kullanılan veri gönderebilir miyim? I var:

  • POST aracılığıyla bir PHP komut dosyası veri gönderir sayfa 1 A formu.
  • Page 2 Bu komut dosyası tarafından oluşturulan ve sayfa 1 ve arka uç veritabanında girdileri kullanarak harici bir program tarafından oluşturulan bir veya daha fazla grafik gösterir. Bu sayfa aynı zamanda yeni seçenekler (örneğin yakınlaştırmak veya grafik (ler) kısa kesmek) ile grafikler yeniden oluşturmak için seçenekleri ile başka bir formu vardır.
  • İstenirse, sayfa 3 aynı PHP komut dosyası grafikler dışında, temel görünüm sayfa 2 olarak aynı olacaktır. Sayfaları 1 ve 2 birbirine yapıştırılmış POST verileri kullanarak oluşturulur.
  • Sayfa 4, 5, 6 ... 3 ile aynı şekilde elde edilmelidir.

Yani, nasıl sayfa 3 için POST veri içine sayfa 2 oluşturmak için kullanılan POST verileri koyabilirsiniz?

EDIT: nedeniyle örgütsel politika, çerezler kullanılamaz (böylece oturumları mümkün değildir). Biz giriş URL göstermek istemiyorum çünkü GET istenmez.

5 Cevap

Ben sadece bir modifiye POST başlığı ile yönlendirme olamazdı merak, uzun zaman önce bu konu ile mücadele hatırlıyorum. Nedeni yönlendirme aslında bir GET olarak kabul edilir.

Ne olursa olsun, gizli alanlara sonrası değişkenleri saklamak gerekir.

<input type="hidden" name="someValueFromPageOne" value="blah">

Onun kolay sonunda konsolidasyon aşamasında ayrı anlatmak için o yüzden her bir form tüm Alan adları prefixing öneriyoruz.

<input type="hidden" name="pageOne_firstName" value="Joe">
<input type="hidden" name="pageTwo_streetNumber" value="22">

Edit: Diğerleri de söylediğim gibi, oturumları kullanarak veri ısrarcı bir olasılık, ama bu sayfa yenilenir veya geri düğmesini kullanarak gibi şeyler sürdürmek zor yapabilirsiniz geçici durumunu korumak çok karmaşık bir konu haline gelir. Eğer aşırı bir dava ile karşı karşıya değilseniz, onlar çok daha kolay ferahlatır ve diğer tarayıcı davranışlarını hayatta beri alanlarını kullanarak veri devam etmek çok daha kolaydır.

GET kullanın.

Benim düşünceme göre, POST istekleri şey (örneğin bir veritabanına kayıt eklemek) değiştirmek gerekir. Istekleri bir şey (bir arama sorgusu örneğin sonuçları) almak gerekir GET.

Yine POST kullanmak istiyorsanız, PHP oturumları içine bakmak.

Oturumlar bir ağrı vardır, ve bunları gerekirse zaten onları hayata olurdu.

@ Soviut yukarıda söylediğim gibi, gizli giriş alanları muhtemelen bu gitmek için yoludur.

Wez Furlong yakın (cURL olmadan php başlıklı HTTP post,) onun blog php5 sürümünü yazdı:

function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'post',
'content' => $data
));
if ($optional_headers!== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}

Yazı o zaman bunu nasıl bakmak zorunda olduğunu belirtiyor. O çekirdek geliştiricilerinden biri çünkü komik!

Eğer DBMS seçeneği ile oturum rotayı ısırmak için karar verirseniz, ben şans bu şeyleri tutmak için bir devlet sınıf tasarımı ve oturum kayıtlarında tek bir büyük alana JSON kullanarak bir nesne seri yaşadım.