2013-10-28 3 views
-1

это мой код, и я использую в edit.php для редактирования моей базы данных, но когда я открываю эту страницу непосредственно в браузере, я получаю сообщение об ошибке Notice: Undefined index: OPRIDПримечания: Не определено индекс

, но теперь у меня есть открытая страница этот путь

Optr_Edit.php?OPRID=<?=$objResult["OPRID"];?> 

его право Yaa неправильно ... скажите мии

<? 
include ('connection.php'); 
$strSQL = "SELECT * FROM OPERATOR WHERE OPRID = '".$_GET["OPRID"]."' "; 
$objParse = oci_parse ($ora_conn, $strSQL); 
oci_execute ($objParse,OCI_DEFAULT); 
$objResult = oci_fetch_array($objParse); 

if(!$objResult) 
{ 
    echo "Not found OPRID=".$_GET["OPRID"]; 
} else { 
.... 
?> 
+0

У вашего url есть поле с именем OPRID? –

+0

Как показано на рисунке ошибки, нет значения, начинающегося как '$ _GET [" OPRID "]', чтобы попробовать проверку isset –

+0

передать 'OPRID' как получить параметр в URL-адресе при прямой загрузке скрипта. – vbrmnd

ответ

0

$ GET содержит параметры CGI, когда модуль PHP вызывается из другой формы HTML. Если вы просто открыть файл PHP напрямую, не будет каких-либо параметров, если не поставить их с помощью mypage.php? OPRID = XX

1
http://www.yourdomain.com/path/edit.php?OPRID=hello 

Используя этот URL, $_GET["OPRID"] будет содержать «привет». Если вы ничего не пропускаете через URL-адрес, например, то есть http://www.yourdomain.com/path/edit.php, тогда $_GET["OPRID"] не будет установлен.

+0

теперь см. Мой edit cade ..... – user2902972

+0

Вы смешиваете, какая страница взгляды вещей. Предполагая, что код, который вы отправили для «edit.php» при обращении к этой странице, должен иметь «edit.php? OPRID = value». Это то, что вы делаете? – Jonathon

+0

так что я здесь ... – user2902972

0

GET Параметры - это параметры из URL-адреса.

Например:

http://www.example.com? OPRID = тест

Теперь вы можете получить значение "тест" через $_GET словаря:

print $_GET["OPRID"]; 

Выход будет

тест

+0

привет ....... смотреть мой код сейчас .. – user2902972

0

You должны называть это так:

edit.php?OPRID=<your value here> 

то массив $ _GET выглядит следующим образом:

array('OPRID',<your value here>); 

Вы можете проверить, если индекс существует с

if(isset($_GET['OPRID'])) 
{ 
    //DO STUFF 
} 
else 
{ 
    //ECHO: NO OPRID FOUND 
} 

Пожалуйста, убедитесь, что вы убегаете значения из $ _GET, потому что вы с атакующий может легко ввести:

edit.php?OPRID=1"or"1"="1 

или еще хуже. Подробнее о том, что: SQL Injection

0

Вы можете получить доступ к GET, POST, COOKIE SERVER и ENV массивы, используя встраивать функции filter_input()

php.net Link

С помощью этой функции вы не получите ошибки или уведомления регистрируемые и ваши переменные всегда будут иметь ценность и быть подвергнуты санитарной обработке.

EDIT:

Вместо использования

$_GET["OPRID"]

несколько раз, вы можете использовать

$oprid = filter_input(INPUT_GET, 'OPRID');

один раз в сценарии. После этой строки у вас есть переменная $oprid с определенным значением, которое будет null, если индекс OPRID в $_GET пуст, но не установлен.

Отрывок из php.net:

Возвращаемые значения:

Значение запрошенной переменной на успех, FALSE, если фильтр не удается, или NULL, если переменная variable_name не установлена. Если используется флаг FILTER_NULL_ON_FAILURE, он возвращает FALSE, если переменная не установлена, и NULL, если фильтр терпит неудачу.

+0

способ использования функция здесь здесь скажите .. – user2902972

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