在php中获取未定义的偏移量

在php中获取未定义的偏移量,php,html,forms,Php,Html,Forms,当我运行我的代码时,我不断收到以下通知: Notice: Undefined offset: 1 in C:\Users\Walid\xampp\htdocs\Inl3\Filmer-PHP.php on line 83 它在这条线上抱怨: echo '<li>'.'<a href="Filmer-PHP.php?name=' .$lineSplit[0]. '">'.$lineSplit[0].'<span>'.$lineSplit[1].'</s

当我运行我的代码时,我不断收到以下通知:

Notice: Undefined offset: 1 in C:\Users\Walid\xampp\htdocs\Inl3\Filmer-PHP.php on line 83
它在这条线上抱怨:

echo '<li>'.'<a href="Filmer-PHP.php?name=' .$lineSplit[0].  '">'.$lineSplit[0].'<span>'.$lineSplit[1].'</span>'.'</a>'.'</li>';
回显“
  • ”。
  • ”;
    我认为它抱怨$lineSplit[1]。我真的不明白为什么它会抱怨,尽管代码运行良好,因为它是一个通知。但它显示在我的屏幕上,我不知道如何解决它

    完整代码:

    <!DOCTYPE html>
    
    <html>
    
    <head>
    <title>Inlämning3</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="style.css">
    <script type="text/javascript" src="jQuery.js" >
    </script>
    <script type="text/javascript" src="valideraFilmer.js" >
    </script>
    
    
    </head>
    
    <body>
    
    <?php
    // Skriva film och info till en textfil
    if( isset ($_POST['name'])){
        $name = $_POST['name'];
        $grade = $_POST['options'];
        $link = $_POST['link'];
        $pic = $_POST['pic'];
        $story = $_POST['story'];
    
        $myFile = "filmer.txt";
        $handle = fopen($myFile, 'a');
    
        if(!empty($name)){
            fwrite($handle, $name. ";");
            fwrite($handle, $grade. ";");
            fwrite($handle, $link. ";");
            fwrite($handle, $pic. ";");
            fwrite($handle, $story. "\n");
            fclose($handle);
        }
    }
    ?>
    
    <div id="page">
        <?php
            include("header.php");
        ?>
        <div id="leftbar">
            <form id="form" method="post" action="Filmer-PHP.php" >
                <fieldset>
                    <legend>Lägg till en film:</legend>
                    Titel:
                    <br><input type="text" name="name" id="name"><br>
                    Betyg:
                    <br><select id="options" name="options">
                        <option value="0">Välj betyg här...</option>
                        <option value="*"> *</option>
                        <option value="**"> **</option>
                        <option value="***"> ***</option>
                        <option value="****"> ****</option>
                        <option value="*****"> *****</option>                       
                    </select>
                    <br>
                    Länk till imdb:
                    <br><input type="text" name="link" id="link"><br>
                    Länk till bild:
                    <br><input type="text" name="pic" id="pic"><br>
                    Filmens handling:
                    <br><textArea cols="20" rows="3" name="story" id="story"></textarea><br>
                    <br><input type="submit" name="button" value="Spara film" id="button">
                </fieldset>
            </form>
        </div>
        <div id="rightbar">
            <h2>Filmer</h2>
    
            <?php
            // Läsa av och visa titel och betyg
                $readin = file('filmer.txt');
                $ul = '<ul id="films">';
                echo $ul;
                foreach($readin as $fName){
                    $lineSplit = explode(";", $fName);
                    echo '<li>'.'<a href="Filmer-PHP.php?name=' .$lineSplit[0]. '">'.$lineSplit[0].'<span>'.$lineSplit[1].'</span>'.'</a>'.'</li>';
                }
            ?>
    
            <?php
            // Läsa av och visa detaljerad info om filmer
                if(isset($_GET['name'])){
                    $name = $_GET['name'];
                    $readin = file('filmer.txt');
                    $lineSplit = explode(";", $name);
                    echo $name;
                }
            ?>
    
        </div>
            <?php
                include("footer.php");
            ?>
    </div>
    
    </body>
    
    </html>
    
    
    内卢姆宁3
    Lägg till en film:
    滴度:
    

    贝蒂格:
    Välj betyg här。。。 * ** *** **** *****
    Länk至imdb:

    Länk till bild:

    Filmens处理:


    电影人
    可能是文件中的空行,您可以通过替换以下代码来避免此通知:

    '<span>'.$lineSplit[1].'</span>'
    
    '.$lineSplit[1].'
    
    对于这一个:

    '<span>'.(isset($lineSplit[1])?$lineSplit[1]:'').'</span>'
    
    “”。(isset($lineSplit[1])?$lineSplit[1]:“”)
    

    这是在实际使用第二个数组元素之前检查它是否存在。

    您试图从不存在的数组访问密钥

    我有两种解决方案:

  • 查看您的值是否可用于或
  • 使用
    错误报告(E\u所有^E\u通知)
    隐藏通知
  • $lineSplit=explode(“;”,$fName,2);
    如果($lineSplit==FALSE){//或!$lineSplit
    }elseif(计数($lineSplit)!=2){
    }否则{
    回音“
  • ”。
  • ”; }
    第83行是什么?Do
    vardump($lineSplit)
    若要查看
    $lineSplit
    文件中的
    $lineSplit[1]
    是否有值,请在回显“
  • ”之前检查print\r($lineSplit)。我使用print\r进行了检查,得到了Gudfadern[1]=>****,因此它确实有值。我在echo时得到了一个输出。我用print_r检查了一下,得到了Gudfadern[1]=>****,所以它确实有一个值。我在echo时得到了一个输出。它与isset一起工作,谢谢!
                $lineSplit = explode(";", $fName, 2);
                if ($lineSplit == FALSE) { // Or !$lineSplit
                } elseif (count($lineSplit) != 2) {
                } else {
                    echo '<li>'.'<a href="Filmer-PHP.php?name=' .$lineSplit[0]
                         . '">'.$lineSplit[0].'<span>'.$lineSplit[1]
                         .'</span>'.'</a>'.'</li>';
                }