2012-08-29 158 views
-3

我使用PHP 5.4.6与MySQL 5.5.27和Apache 2.4.2。访问GET变量时出现“未定义索引”错误

我的问题是,我试图使用$_GET获取URL传递变量的值,但总是出现一个错误,指出:未定义的索引:err在thispage.php这一行。

我环顾四周,意识到大多数开发人员通过使用isset()函数解决了这个问题。但是这并不能解决我的问题,因为我需要获取URL中发送的变量的实际值!

网址是http://localhost/Edugate/index.php?err=1

这是我在index.php页面代码:

<?php 
$error = $_GET['err']; 

if($error == 1) 
    print "<img src='icons/error.png' alt='error'> Icorrect usename or password..."; 
?> 
+2

你说'isset'不能解决你的问题,你一定需要从URL中值。那么,**如果**的值在URL中传递,您将不会收到错误。另外,'isset'绝对可以解决你的问题:) – rdlowrey

+0

你可能想再次阅读'isset()'是/是的:http://php.net/manual/en/function.isset.php – PeeHaa

+0

检查是否有是该文件夹中的.htaccess文件。这可能是该文件中的命令删除所有获取数据。您发布的代码应该可以正常工作(虽然很脏) –

回答

3

使用isset规定您的伙伴开发。

<?php 
if(isset($_GET['err']) && $_GET['err'] == 1) 
    print "<img src='icons/error.png' alt='error'> Incorrect username or password..."; 
?> 

*不正确的*用户名,顺便说一句。

+0

非常感谢您们,我非常感谢。 isset将解决我的一半问题。因为我们假设在URL中发送的变量将在php中用于某种算法。我仍然需要检索它们的值,并且我找不到该方法.. – user1631838

+0

@ user1631838:呃,'$ _GET ['(parameter name)']'是您如何获取值。 – Ryan

4

你可以使用的简单的东西:

$error = isset($_GET['err']) ? (int)$_GET['err'] : null; 

if ($error !== null) { 
    // error 
} 

// or 

if ($error === 1) { 
} else if ($error === 2) { 
} 
+0

thnxxxxx,这将解决问题!我不能相信我错过了这个概念!我习惯于JAVA编程,但已经有一段时间了...... PHP对我来说是一个全新的东西,所以我可能需要阅读更多的陈述。 – user1631838