Eğer $ PHP bir dosyaya dahil _GET değişkenleri kullanabilir miyim?

3 Cevap php

Ben onay e-postalar göndererek işleyen bir PHP dosyası var. Ben de çeşitli güncellemeler yapmak için AJAX kullanmak bir takvim var. AJAX güncelleme dosyasını çağırdığında, bu yeni bilgilerle veritabanını günceller ve ben onay e-postası gönderilecektir istiyorum.

Yani AJAX çağrıları php dosya içinde, ben gerektiğini anladım include("email-sender.php?stage=confirm2a&job={$slot->job_id}, hangi e-postaları göndermek için bunu söylemek $ _GET değişkenleri ile ve kim için, e-posta php sayfasını çağırır.

Ama nedense, ben size bir ipe bağlı ?key=value $ _GET çiftleri kullandığınızda işe dahil alınamıyor. PHP.net bir include $ _GET değişkenleri kullanabilirsiniz, ama ben basit bir test kurarken, çalışmak için görünmüyor söylüyor.

Benim test sayfası tıklandığında değer "hayvan" eşittir bir değişken "çiftlik" içeren veri ile birlikte bir sayfaya ajax çağrısı gönderir ki, bir bağlantı vardır. Bu gibi:

$("a.testlink").click(function() {
    var mydata = "farm=animal";
    $.ajax({
        url: "ajaxPHP.php",
        data: mydata,
        success: function(rt) {
            alert(rt);
        }
});

Yani ajaxPHP.php diyor ki:

if($_GET['farm']) {
    $var = $_GET['farm'];
    echo $var;
}

Bağlantı tıklandığında bu noktada, başarı uyarı "hayvan" gösteriyor. Bu doğru.

Ama bu ajaxPHP.php değiştirirseniz:

if($_GET['farm']) {
    $var = $_GET['farm'];
    include("ajaxInclude.php?farm={$var}");
}

: Ve diyor ki ajaxInclude.php adında bir dosya var

if($_GET['farm']) {
    $var = $_GET['farm'];
    echo $var;
}

Ben linki tıkladığınızda haybeye bir uyarı olsun. Yani sonuna eklenen sorgu dizesi ile çalışmaz içerir.

Herhangi bir yardım?

ADDITION

Yani şimdi ben şu var:

$stage = "confirm2a";
include("email-sender.php");
$stage = "confirm2b";
include("email-sender.php");

Ve sonra e-posta-sender.php, belli ki gibi bir sürü kod var:

if($stage == "confirm2a") { 
   email Person 1 etc...
}
if($stage == "confirm2b") {
    email Person 2 etc...
}

Ben komut dosyası çalıştırdığınızda Ama sadece 1. Kişi sadece bir kez e-posta alır ve. Değil emin niçin ...

3 Cevap

Bunun yerine dahil yolunun kendisinin üzerine onları ekleme yerine, sizin dahil komut dosyası içindeki değişkenleri işleyebilir:

$var = "foo";
include("script.php");

- Script.php içeriği -

echo $var; // 'foo'

Bence bu zaten daha temiz. Siz değerleri her değişkenleri yankılanan önce script.php içinde var emin olmak için kontrol etmek isteyebilirler.

Bunu çözmek için iki alternatif, en azından, vardır:

1)


if($_GET['farm']) {
    $var = $_GET['farm'];
    $farm = $var;
    include("ajaxInclude.php");
}

Then, in ajaxInclude.php:


if($farm) {
    $var = $farm;
    echo $var;
}

2)


if($_GET['farm']) {
    $var = $_GET['farm'];
    header("Location: ajaxInclude.php?farm={$var}");
}

$_GET global bir değişken olduğunu, bu nedenle de dahil olmak üzere, sizin php komut dosyası içinde herhangi bir yerde kullanılabilecek herhangi bir komut dahil