我在没有任何GET参数的情况下加载页面时出现错误(例如:/login.php),这是我得到的错误:
( ! ) Notice: Undefined index: err in C:'wamp'www'GestionImagesPublicitesAvis'login.php on line 57
Call Stack
# Time Memory Function Location
1 0.0005 144120 {main}( ) ..'login.php:0
这是从第 41 行到第 58 行的代码片段:
<input class=
<?php if(!empty($err))
{
if($err == "up")
{
echo "'"InputError'"";
}
else
{
echo "'" '"";
}
}
else
{
echo "'" '"";
} ?>
type="text" name="username" onclick="this.value='';" onblur="this.value=!this.value?'login...':this.value;" value=<?php if (($_GET['err'] == 'up')&& (isset($_GET['u']))){echo ("'"" . $_GET['u'] . "'"");}else{ echo "'"login...'"";} ?> id="username"/>
<input class=<?php if($err=="up"){echo "'"InputError'"";}else{echo "'"'"";}?> type="password" name="password" onclick="this.value='';" onblur="this.value=!this.value?'motdepasse':this.value;" value="motdepasse" id="password"/>
$err在页面前面(第 15 行)中定义:"'
<?php
$err;
if (isset($_GET['err']))
{
switch ($_GET['err'])
{
case "up":
$err = "up";
echo "<p>Error #156</p>";
break;
}
}
else
{
$err=null;
echo "<p>Error #157</p>";
}
?>
在页面顶部(第二个代码示例),您只确保设置了$err
而不是$_GET['err']
。但是,稍后在第 57 行(第一个代码示例)中,您再次只使用 $_GET['err']
。
如果在初始化代码后引用代码中的$err
,则应修复错误。
所以你的第 57 行应该类似于这样:
type = "text" name="username" onclick="this.value='';" onblur="this.value=!this.value?'login...':this.value;" value=<?php if (($err == 'up')&& (isset($_GET['u']))){echo ("'"" . $_GET['u'] . "'"");}else{ echo "'"login...'"";} ?> id="username"/>
你的问题在这里:
value=<?php if (($_GET['err'] == 'up')
你应该做
value=<?php if ((@$_GET['err'] == 'up')
或
value=<?php if ((isset($_GET['err']) && $_GET['err'] == 'up')
更改您的error_logging,因为如果 url 中没有 err,则 $_GET['err'] 将抛出通知。
error_reporting(E_ALL ^ E_NOTICE); 或在 php 内部.ini