2011-12-19 5 views
0

Когда я запускаю скрипт в Wamp, я получаю следующие предупреждения для строк 17 и 21. Что это говорит мне и что можно/нужно сделать для решения проблемы?Недопустимые аргументы в php

Внимание: Недействительного аргумент для Еогеаспа() в C: \ WAMP \ WWW \ eCardScript \ ecard_lib.php на линии 17 * Внимание: * Недействительный аргумент для Еогеаспа() в C: \ WAMP \ WWW \ eCardScript \ ecard_lib.php на линии 21

<?php 
include('htmlMimeMail.php'); 

function getPostGetVars() { 
    global $HTTP_POST_VARS,$HTTP_GET_VARS; 
    foreach ($HTTP_POST_VARS as $key => $value) { // This is Line 17 
    global $$key; 
    $$key = $value; 
    } 
    foreach ($HTTP_GET_VARS as $key => $value) { // This is Line 21 
    global $$key; 
    $$key = $value; 
    } 
} 
?> 
+3

Не используйте HTTP _ * _ VARS, они [устарели] (http://uk.php.net/manual/en/reserved.variables.post.php) годами. – Quentin

+2

И не позволяйте пользователю вводить имена глобальных символов! Это создает правильный беспорядок, который [почему PHP больше не делает этого для вас] (http://php.net/manual/en/security.globals.php)! – Quentin

+0

Да, вам лучше использовать только '$ _POST' и' $ _GET'. – ArVan

ответ

3

Используйте $_GET и $_POST вместо этого.

http://php.net/manual/en/language.variables.predefined.php

От PHP 5.0.3 длинных предопределенные массивы таких HTTP_GET_VARS получили по умолчанию отключены. Для обратной совместимости вы можете включить их в php.ini ....

+0

Для обратной совместимости вы можете включить их в php.ini .... это трудно сделать и успешно ли это? – Webiter

+1

@Webiter: Просто НЕ ДЕЛАЙТЕ ЭТО. – ThiefMaster

1

$HTTP_POST_VARS и $HTTP_GET_VARS устарели. Вы должны использовать $_POST и $_GET соответственно.

Смежные вопросы