2012-08-16 73 views
3

我無法讓我的$ _GET工作。它適用於我在服務器上的所有其他站點,但不在此站點上。該網站自從和我運行PHP 5

if (($HTTP_GET_VARS['image'] ==0) && ($products['products_image_lrg'] != '')) { 
    //do something 
}; 

我也試過

echo $_GET['image'] 

,它仍然是行不通的。它只是給我一個未定義的索引。

的URL看起來是這樣的:/blah.php?image=2

我已經剝離了Page Down鍵裸仍然沒有工作見下文

<?php 

    echo $HTTP_GET_VARS['image']; 
    echo $_GET["image"]; 
    echo "<br />"; 
?> 

我得到這個

Notice: Undefined variable: HTTP_GET_VARS in \popup_image.php on line 3 Notice: Undefined index: image in \popup_image.php on line 4 

我一直在做一些更多的挖掘,它看起來像在oscommerce某處的一個問題,不允許它讀取

+0

您應該將'$ HTTP_GET_VARS ['image'] == 0'更改爲'$ _GET ['image'] == 0' – Sablefoste 2012-08-16 19:02:59

回答

1

首先,嘗試尋找在整個打印出$ _GET數組:

print_r($_GET); 
+0

打印輸出不顯示該變量 – user1604132 2012-08-16 19:58:35

+0

嗨user16 ..,我也做了一些研究,看起來你不應該使用$ HTTP_GET_VARS。 (見http://www.php.net/manual/en/reserved.variables.get.php)。但是如果你仍然有問題,可能嘗試使用PHP固有的會話變量? – bobbiloo 2012-08-16 20:37:33

+0

該網站原代碼爲php 4,我沒有在php 5上使用plateform – user1604132 2012-08-16 21:29:22

4
  1. 以下應該用PHP 5.x的工作:

    • HTTP: http://myserver/blah.php?image=2

    • PHP(blah.php?):

      if(isset($ _ GET ['image'])){ $ idx = $ _ GET ['image']; //應該是 「2」 }

  2. 我假設你想訪問 「$ _GET []」,從 「blah.php」。 如果不是,則需要將URL傳遞給您要呼叫的頁面。

  3. print_r($_GET)var_dump($_GET)是一個好主意。所以是碰error_reporting(NNN)

  4. 一個更更好的想法是創建一個虛擬頁面,phpinfo.php的:

    • phpinfo.php的:

      <?php phpinfo(); ?>

    • HTTP查詢:

      http://myserver/phpinfo.php?image=2

    問:請問phpquery()向您顯示任何地方的「圖片」網址?

  5. 最後,下面的竟然是一個PHP安裝的問題類似的案例:

+0

它可以在所有其他網站上正常運行,所以我不確定它是否是php安裝問題 – user1604132 2012-08-16 19:58:58

+0

@ user1604132 - 問:當你看到什麼嘗試使用「?image = 2」URL的「phpinfo()」測試腳本? – paulsm4 2012-08-16 21:44:00

+0

當我使用這個 /popup_image.php?image=2它的工作原理,但當我使用這個 /build-your-own-rapid-deployment-portable-camera-system-quick-setup-wireless-video-internal-battery -pi-9.html?image = 2 它不起作用。我使用mod重寫來更改網址,我也使用OSCommerce。這對我來說沒有意義。我的所有其他網站都很好,只是不是這個。 – user1604132 2012-08-17 11:47:01

-1

我總是傾向於使用類似:

$image = isset($_GET['image']) ? $_GET['image'] : FALSE; 
+0

我這樣做,它只是回來空白 – user1604132 2012-08-16 19:59:43

+0

讓我編輯一下..複製/粘貼有時是一個壞習慣。 立即嘗試。 – Goran 2012-08-18 06:37:20

0

是你的'圖像'文件嗎?如果是這樣的話,應該是在$_FILES$_GET ...

print_r($_GET);print_r($_FILES);

你怎麼看?

+0

Array([pID] => 9)Array() – user1604132 2012-08-16 20:35:55

+0

這不是一個圖像,它是一個數字,然後我將該數字寫入頁面中稍後的html標籤。網址qurey是 site.com/pi-9.html?image=2 – user1604132 2012-08-16 20:36:54

+0

我正在使用重寫的url RewriteRule ^(。*) - pi - ([0-9] +)。html \?(。 *)$ /popup_image.php?$3&pID=$2 RewriteRule ^(。*) - pi - ([0-9] +)。html(。*)$ /popup_image.php?pID=$2 – user1604132 2012-08-16 20:38:21

2

您已經忘記在您的Mod重寫規則中添加QSA (query string append)標誌。如果沒有此標誌,則在重寫之前添加到您的url的任何查詢字符串將被丟棄,以支持添加到重寫規則中的新查詢字符串,儘管它仍將在瀏覽器頂部的欄中可見。

0

這是舊的,但我偶然發現了同樣的問題,發現一個簡單的修復。我正在使用一個簡短的PHP標籤(<?....?>)。一旦我將其更改爲<?php....?>,我的$ _GET又開始工作了。我不知道爲什麼只有這個受到短標籤的影響,但它是固定的。希望這可以幫助其他人...