-2

加载没有任何 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>";
                }
            ?>
4

3 回答 3

1

在页面顶部(第二个代码示例),您只需确保$erris set 而不是$_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"/>
于 2012-06-28T12:43:04.647 回答
1

你的问题在这里:

value=<?php if (($_GET['err'] == 'up')

你应该做

value=<?php if ((@$_GET['err'] == 'up')

或者

value=<?php if ((isset($_GET['err']) && $_GET['err'] == 'up')
于 2012-06-28T12:44:16.830 回答
-1

如果 err 不在 url 中,将您的 error_logging 更改为 $_GET['err'] 将抛出通知。

错误报告(E_ALL ^ E_NOTICE);或者在 php.ini 里面

于 2012-06-28T12:45:31.740 回答