Jump to content

ujjwalG

New Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by ujjwalG

  1. my wt1t1.php: <?php session_start(); // Check if the user is logged in if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit(); } // Include database connection include_once('db/dbcon.php'); // Set the task_id for the specific task (e.g., WT1B1) $task_id = 1; // Static value for testing // Get the student_id from the session $student_id = $_SESSION['user_id']; // Fetch writing task details try { // Updated SQL query to fetch tasks based on task_id, student_id, and status as 'checked' $sql = "SELECT id, studentResponse, submitted_at, task_feedback, feedback_given_at FROM writing_tasks WHERE task_type_id = :task_id AND student_id = :student_id AND status = 'checked'"; $stmt = $pdo->prepare($sql); $stmt->execute(['task_id' => $task_id, 'student_id' => $student_id]); $tasks = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo 'Query failed: ' . $e->getMessage(); } ?> <?php include_once('components/top.php'); ?> <title>Landing Page</title> <style type="text/css"> .logout { text-align: right; } </style> </head> <body> <h1 class="text-center">Welcome, <?php echo htmlspecialchars($_SESSION['name'], ENT_QUOTES, 'UTF-8'); ?>!</h1> <p class="text-center">This is your landing page.</p> <p class="logout"> <a href="logout.php" class="btn btn-danger"> <i class="fa-solid fa-right-from-bracket"></i> Logout </a> </p> <div class="central container-fluid"> <h1 class="text-center">IELTS Writing Tasks Menu</h1> <div class="row"> <div class="col-sm-4"> <header> <nav> <ul> <li><a href="wt1b1.php">Writing Task 1 - Bar Graph 1</a></li> <li><a href="wt1b2.php">Writing Task 1 - Bar Graph 2</a></li> <li><a href="wt1m1.php">Writing Task 1 - Map 1</a></li> <li><a href="wt1m2.php">Writing Task 1 - Map 2</a></li> <li><a href="wt1p1.php">Writing Task 1 - Process Diagram 1</a></li> <li><a href="wt1p2.php">Writing Task 1 - Process Diagram 2</a></li> <li><a href="wt2a1.php">Writing Task 2 - Argument Essay 1</a></li> <li><a href="wt2a2.php">Writing Task 2 - Argument Essay 2</a></li> <li><a href="wt2d1.php">Writing Task 2 - Discussion Essay 1</a></li> <li><a href="wt2d2.php">Writing Task 2 - Discussion Essay 2</a></li> <li><a href="wt2t1.php">Writing Task 2 - Two-Part Question Essay 1</a></li> <li><a href="wt2t2.php">Writing Task 2 - Two-Part Question Essay 2</a></li> <li><a href="wt2ad1.php">WT2Ad1 - Writing Task 2 - Advantage/Disadvantage Essay 1</a></li> <li><a href="wt2ad2.php">WT2Ad2 - Writing Task 2 - Advantage/Disadvantage Essay 2</a></li> </ul> </nav> </header> </div> <div class="col-sm-8"> <div class="container mt-5"> <h1 class="text-center">Bar Graph/ Pie Chart/ Line Graph-Work 1</h1> <form method="POST" action="sendfile.php" enctype="multipart/form-data"> <input type="file" name="wt1b1[]" multiple> <br><br> <textarea rows="10" cols="100" name="studentResponse"></textarea> <br><br> <input type="hidden" name="taskTypeId" value="1"> <input type="submit" name="subwt1b1"> </form> <!-- Displaying student responses, feedback, and associated photos --> <?php if ($tasks): ?> <?php foreach ($tasks as $task): ?> <div class="stdFeedback"> <h2>Upload Time</h2> <p><?php echo htmlspecialchars($task['submitted_at'], ENT_QUOTES, 'UTF-8'); ?></p> <h2>Student Response</h2> <p><?php echo htmlspecialchars($task['studentResponse'], ENT_QUOTES, 'UTF-8'); ?></p> <h2>Feedback</h2> <p><?php echo htmlspecialchars($task['task_feedback'], ENT_QUOTES, 'UTF-8'); ?></p> <h2>Feedback Given At</h2> <p><?php echo htmlspecialchars($task['feedback_given_at'], ENT_QUOTES, 'UTF-8'); ?></p> <h2>Uploaded Photos</h2> <?php // Fetch photos related to this specific task (using task id) $sql_photos = "SELECT filename FROM task_photos WHERE writing_tasks_id = :task_id"; $stmt_photos = $pdo->prepare($sql_photos); $stmt_photos->execute(['task_id' => $task['id']]); $photos = $stmt_photos->fetchAll(PDO::FETCH_ASSOC); ?> <?php if ($photos): ?> <div class="photo-gallery"> <?php foreach ($photos as $photo): ?> <div class="photo"> <img src="uploads/<?php echo htmlspecialchars($photo['filename'], ENT_QUOTES, 'UTF-8'); ?>" alt="Task Photo" style="max-width: 100%; height: auto;"> </div> <?php endforeach; ?> </div> <?php else: ?> <p>No photos uploaded for this task.</p> <?php endif; ?> </div> <?php endforeach; ?> <?php else: ?> <p>No tasks found for this instance.</p> <?php endif; ?> </div> </div> </div> </div> <footer class="text-center"> <p>&copy; 2024 IELTS Writing Feedback System</p> </footer> </body> </html> and my sendfile.php: <?php session_start(); if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit(); } include('db/dbcon.php'); // Include your database connection date_default_timezone_set('Asia/Kathmandu'); // Set timezone to Asia/Kathmandu if (isset($_POST["subwt1b1"])) { $taskTypeId = $_POST["taskTypeId"]; // Ensure this is correctly set as an ID $sid = $_SESSION['user_id']; $Timestamp = date('Y-m-d H:i:s'); // Current timestamp in Asia/Kathmandu timezone $student_response = $_POST['studentResponse']; $status = "unchecked"; try { // Query to get the highest instance number for this task type and user $stmt = $pdo->prepare("SELECT MAX(instance_number) AS max_instance FROM writing_tasks WHERE student_id = :sid AND task_type_id = :task_type"); $stmt->bindParam(':sid', $sid, PDO::PARAM_INT); $stmt->bindParam(':task_type', $taskTypeId, PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); // Set the instance number for the new entry $instanceNumber = $result['max_instance'] ? $result['max_instance'] + 1 : 1; // Insert data into writing_tasks table $stmt = $pdo->prepare("INSERT INTO writing_tasks (student_id, task_type_id, studentResponse, status, instance_number, submitted_at) VALUES (:user_id, :task_type, :student_response, :status, :instance_number, :submitted_at)"); $stmt->bindParam(':user_id', $sid, PDO::PARAM_INT); $stmt->bindParam(':task_type', $taskTypeId, PDO::PARAM_INT); $stmt->bindParam(':student_response', $student_response, PDO::PARAM_STR); $stmt->bindParam(':status', $status, PDO::PARAM_STR); $stmt->bindParam(':instance_number', $instanceNumber, PDO::PARAM_INT); $stmt->bindParam(':submitted_at', $Timestamp, PDO::PARAM_STR); $stmt->execute(); // Get the task ID of the inserted row $writing_tasks_Id = $pdo->lastInsertId(); // Handling file uploads $allFilesUploaded = true; if (isset($_FILES['wt1b1']) && count($_FILES['wt1b1']['name']) > 0) { $uploadDirectory = 'uploads/'; // Ensure this directory exists and is writable $errors = []; // Loop through each file foreach ($_FILES['wt1b1']['tmp_name'] as $key => $tmp_name) { $fileName = $instanceNumber . '_' . basename($_FILES['wt1b1']['name'][$key]); $targetFilePath = $uploadDirectory . $fileName; // Check if the file was uploaded without errors if (is_uploaded_file($tmp_name)) { // Move the file to the desired directory with the new name if (move_uploaded_file($tmp_name, $targetFilePath)) { // Insert the filename into the database $stmt = $pdo->prepare("INSERT INTO task_photos (writing_tasks_Id, filename, instance_number, task_type_id) VALUES (:writing_tasks_Id, :filename, :instance_number, :task_type_id)"); $stmt->bindParam(':writing_tasks_Id', $writing_tasks_Id, PDO::PARAM_INT); $stmt->bindParam(':filename', $fileName, PDO::PARAM_STR); $stmt->bindParam(':instance_number', $instanceNumber, PDO::PARAM_INT); $stmt->bindParam(':task_type_id', $taskTypeId, PDO::PARAM_INT); $stmt->execute(); } else { $allFilesUploaded = false; $errors[] = "Error uploading $fileName.<br>"; } } else { $allFilesUploaded = false; $errors[] = "$fileName was not uploaded correctly.<br>"; } } // If there were any errors, display them if (!empty($errors)) { foreach ($errors as $error) { echo $error; } } // If all files are uploaded and both tables updated, show the alert and redirect if ($allFilesUploaded && empty($errors)) { echo "<script> function showAlertAndRedirect(message, redirectUrl, delay) { alert(message); setTimeout(function() { window.location.href = redirectUrl; }, delay); } </script>"; echo "<script> showAlertAndRedirect('Files uploaded and data updated successfully!', 'landing.php', 2000); </script>"; } } else { echo "No files were uploaded."; } } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } } ?> I made this code out of chat gpt, and sometime my students are able to send their files sometimes they are not able to send!, but from my laptop, i am always able to send file. Where should i work and what should i work? My database: show create TABLE users; CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, `reset_token` varchar(255) DEFAULT NULL, `token_expiry` datetime DEFAULT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci CREATE TABLE `task_photos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `writing_tasks_id` int(11) NOT NULL, `filename` varchar(255) NOT NULL, `instance_number` int(11) NOT NULL, `task_type_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=130 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci CREATE TABLE `writing_tasks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `student_id` int(11) NOT NULL, `task_type_id` int(11) NOT NULL, `instance_number` int(11) NOT NULL DEFAULT 0, `task_feedback` text DEFAULT NULL, `submitted_at` timestamp NULL DEFAULT NULL, `feedback_given_at` timestamp NULL DEFAULT NULL, `studentResponse` text NOT NULL, `status` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.