У меня есть форма для сбора информации о студентах, простая версия которой здесь:
<form method="post" name="submit" action="submit" autocomplete="off"> <br>
<input type="name" id="forename" name="forename" placeholder="Forename" required> <br>
<input type="name" id="middlename" name="middlename" placeholder="Middle Name/s" required> <br>
<input type="name" id="surname" name="surname" placeholder="Surname" required> <br>
<input type="tel" id="mobile" name="mobile" placeholder="Mobile Number (+44)" required> <br>
<input type="email" id="email" name="email" placeholder="Email" required> <br>
<input type="message" id="course" name="course" placeholder="Course You're Studying" required> <br>
<input type="message" id="code" name="code" placeholder="Course Code" required> <br>
<input type="message" id="campus" name="campus" placeholder="Campus" required> <br>
<input type="message" id="message" name="message" placeholder="Comments"> <br>
<br>
<input type="file" title="Attach your ID" id="studentidentification" name="studentidentification" required> <br>
<input type="file" title="Attach personal ID" id="personalidentification" name="personaldentification" required> <br>
<br>
<input type="submit" name="submit" id="submit" value="Submit" required="">
Эта форма затем отправляется, например, на submit.php
. (страница имеет случайный URL-адрес и затем отправляет пользователя на новую страницу)
Последующая PHP получает все входные данные пользователя и записывает их в CSV-файл, который включает имена файлов студента и личные данные для перекрестных ссылок. PHP также должен загружать каждый файл в папки в папке responses
. Так csv
, student
и personal
.
<?php
// DECLARE
$forename = $_POST['forename'];
$middlename = $_POST['middlename'];
$surname = $_POST['surname'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$course = $_POST['course'];
$code = $_POST['code'];
$campus = $_POST['campus'];
$comments = $_POST['comments'];
$studentidentification = basename($_FILES["studentidentification"]["name"]);
$personalidentification = basename($_FILES["personalidentification"]["name"]);
$timestamp =date('l jS \of F Y h:i:s A');
//WRITE
$text = "".$forename.",".$middlename.",".$surname.",".$mobile.",".$email.",".$course.",".$ucas.",".$campus.",".$conditions.",".$studentidentification.",".$personalidentification.",".$timestamp." \n";
$file = fopen("/responses/csv/results.csv","a+ \n");
fwrite($file, $text);
fclose($file);
// STUDENT'S ID
$target_dir = "/responses/student/";
$target_file = $target_dir . basename($_FILES["studentidentification"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
if (file_exists($target_file)) {
echo "Sorry $forename, there is already a file with this name on the server. Please try renaming it or adding a version number then try again.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo " Your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["studentidentification"]["tmp_name"], $target_file)) {
echo "Thank you, $forename. Your file ". basename( $_FILES["studentidentification"]["name"]). " has been uploaded.";
} else {
echo " Sorry $forename, there was an unknown error encountered while uploading your file. Please try again.";
}
}
// PERSONAL ID
$target_dir1 = "/responses/personal/";
$target_file1 = $target_dir1 . basename($_FILES["personalidentification"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if file already exists
if (file_exists($target_file1)) {
echo "Sorry $forename, there is already a file with this name on the server. Please try renaming it or adding a version number then try again.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo " Your file was not uploaded."; // Sorry $forename, your file was not uploaded, please try again
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["personalidentification"]["tmp_name"], $target_file1)) {
echo "Thank you, $forename. Your file ". basename( $_FILES["personalidentification"]["name"]). " has been uploaded.";
} else {
echo " Sorry $forename, there was an unknown error encountered while uploading your file. Please try again.";
}
}
header("Location: /newstudents/welcome");
?>
По какой-то причине выводится неизвестная ошибка, и я чувствую, что это связано с тем, что два файла загружаются в один файл. Два идентификатора должны быть сделаны отдельно и в одной форме. У меня sh мне платили, чтобы выяснить это, но я не знаю, куда go отсюда, потому что даже CSV не пишет, и это основано на коде, который работает.
Apache error_log
, который был сгенерирован, выбрасывает Undefined index
для большинства из них failed to open stream: No such file or directory
, когда каталоги действительно есть. Также есть fwrite() expects parameter 1 to be resource, boolean given
и fclose() expects parameter 1 to be resource, boolean
. Спрашивать - последнее средство, потому что в теории это должно работать, извините, если по какой-то причине это явная ошибка.
Любая помощь будет оценена. Спасибо:)