在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行是什么?Dovardump($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>';
}