以下代码将文件中的数据读入一系列数组,以及来自其他网页的数据,根据表单和数组中的值比较数据,如果未找到匹配项,则将数据附加到文件
<?php
$file = fopen("Student.txt", "a+") or exit("Unable to open file!");
$StudentID = array();
$StudentPassword = array();
$StudentFname = array();
$StudentLname = array();
$StudentDOB = array();
$StudentGPA = array();
$x = 0;
$return = 0;
while(!feof($file)){
$StudentID[$x] = fgets($file);
$StudentPassword[$x] = fgets($file);
$StudentFname[$x] = fgets($file);
$StudentLname[$x] = fgets($file);
$StudentDOB[$x] = fgets($file);
$StudentGPA[$x] = fgets($file);
$x = $x + 1;
}
$ID = $_POST["StudentID"];
$Pass = $_POST["StudentPass"];
$First = $_POST["StudentFname"];
$last = $_POST["StudentLname"];
$DOB = $_POST["D.O.B."];
$GPA = $_POST["GPA"];
for ($y=0; $y<$x; $y++){
if (strcasecmp($ID,$StudentID[$y]) == -2){
$return = 1;
break;
}
}
if ($return == 0){
echo $ID "<br>";
fputs($ile, $ID);
fputs($file, $Pass);
echo $First "<br>";
fputs($file, $First);
echo $last <"br>";
fputs($file, $last);
echo $DOB "<br>";
fputs($file, $DOB);
echo $GPA "<br>";
fputs($file, $GPA);
echo "Student successfully added";
}
else{
echo "Duplicate ID found, input rejected";
}
fclose($file);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Student Addition</title>
</head>
<body>
<p>Please return to the <a href ="index.html">Main Menu</a></p>
</body>
</html>
除了最后一部分,一切都有效。如果找不到匹配项,它应该附加数据,但是就其而言,附加部分不会将数据附加到文件中,而是保持原样。如果有人知道为什么会这样,那么非常感谢您的帮助
答案 0 :(得分:0)
尝试使用0
代替-2
作为strcasecmp()
的结果值,因为0表示匹配,在您的情况下,如果匹配则不应添加。
for ($y=0; $y<$x; $y++){
if (strcasecmp($ID,$StudentID[$y]) == 0){
$return = 1;
break;
}
}