[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: edit_questions.php
<?php require_once '../config/database.php'; requireRole('teacher'); $teacher_id = getUserId(); $competition_id = $_GET['id'] ?? null; if (!$competition_id) { header('Location: my_competitions.php'); exit; } // Verify teacher owns this competition $stmt = $pdo->prepare("SELECT * FROM competitions WHERE id = ? AND teacher_id = ?"); $stmt->execute([$competition_id, $teacher_id]); $competition = $stmt->fetch(); if (!$competition) { header('Location: my_competitions.php'); exit; } $message = ''; $error = ''; // Handle form submissions if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (isset($_POST['update_question'])) { $question_id = $_POST['question_id']; $question_text = $_POST['question_text']; $answer1 = sanitize($_POST['answer1']); $answer2 = sanitize($_POST['answer2']); $answer3 = sanitize($_POST['answer3']); $answer4 = sanitize($_POST['answer4']); $correct_answer = $_POST['correct_answer']; if ($competition['competition_type'] == 'group') { $stmt = $pdo->prepare(" UPDATE group_questions SET question_text = ?, answer1 = ?, answer2 = ?, answer3 = ?, answer4 = ?, correct_answer = ? WHERE id = ? AND competition_id = ? "); if ($stmt->execute([$question_text, $answer1, $answer2, $answer3, $answer4, $correct_answer, $question_id, $competition_id])) { $message = 'تم تحديث السؤال بنجاح'; } else { $error = 'حدث خطأ في تحديث السؤال'; } } else { $question_level = $_POST['question_level']; $stmt = $pdo->prepare(" UPDATE millionaire_questions SET question_text = ?, answer1 = ?, answer2 = ?, answer3 = ?, answer4 = ?, correct_answer = ?, question_level = ? WHERE id = ? AND competition_id = ? "); if ($stmt->execute([$question_text, $answer1, $answer2, $answer3, $answer4, $correct_answer, $question_level, $question_id, $competition_id])) { $message = 'تم تحديث السؤال بنجاح'; } else { $error = 'حدث خطأ في تحديث السؤال'; } } } elseif (isset($_POST['delete_question'])) { $question_id = $_POST['question_id']; if ($competition['competition_type'] == 'group') { $stmt = $pdo->prepare("DELETE FROM group_questions WHERE id = ? AND competition_id = ?"); } else { $stmt = $pdo->prepare("DELETE FROM millionaire_questions WHERE id = ? AND competition_id = ?"); } if ($stmt->execute([$question_id, $competition_id])) { $message = 'تم حذف السؤال بنجاح'; } else { $error = 'حدث خطأ في حذف السؤال'; } } } // Get questions if ($competition['competition_type'] == 'group') { $questions = $pdo->prepare("SELECT * FROM group_questions WHERE competition_id = ? ORDER BY created_at"); $questions->execute([$competition_id]); } else { $questions = $pdo->prepare("SELECT * FROM millionaire_questions WHERE competition_id = ? ORDER BY question_level, created_at"); $questions->execute([$competition_id]); } $all_questions = $questions->fetchAll(); ?> <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>تعديل الأسئلة - منصة المسابقات التعليمية</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet"> <link href="../assets/css/style.css" rel="stylesheet"> <style> .question-card { border: 2px solid #e3f2fd; border-radius: 15px; transition: all 0.3s ease; margin-bottom: 1.5rem; } .question-card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.1); } .question-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 1rem 1.5rem; border-radius: 13px 13px 0 0; display: flex; justify-content: space-between; align-items: center; } .question-body { padding: 1.5rem; background: white; } .question-text-preview { font-size: 1.1rem; font-weight: 600; color: #2c3e50; margin-bottom: 1rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .answer-preview { padding: 0.8rem; margin: 0.5rem 0; border-radius: 10px; background: #f8f9fa; border: 2px solid #dee2e6; font-size: 1rem; } .answer-preview.correct { background: #d4edda; border-color: #28a745; font-weight: 600; } .badge-type { font-size: 0.9rem; padding: 0.5rem 1rem; } .add-question-section { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border-radius: 15px; padding: 2rem; margin-top: 2rem; } .btn-action { border-radius: 10px; padding: 0.5rem 1rem; font-weight: 600; } .modal-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .question-number { font-size: 1.5rem; font-weight: 800; } </style> </head> <body> <!-- Navigation --> <nav class="navbar navbar-expand-lg navbar-dark bg-success"> <div class="container-fluid"> <a class="navbar-brand" href="../index.php"> <i class="fas fa-trophy me-2"></i> منصة المسابقات التعليمية </a> <div class="navbar-nav me-auto"> <span class="navbar-text"> <i class="fas fa-chalkboard-teacher me-1"></i> مرحباً، <?= sanitize($_SESSION['user_name']) ?> </span> </div> <div class="navbar-nav"> <a class="nav-link" href="../auth/logout.php"> <i class="fas fa-sign-out-alt me-1"></i> تسجيل الخروج </a> </div> </div> </nav> <div class="container-fluid py-4"> <div class="row mb-4"> <div class="col-md-8"> <h1 class="h3"> <i class="fas fa-edit me-2"></i> تعديل أسئلة المسابقة </h1> </div> <div class="col-md-4 text-end"> <a href="my_competitions.php" class="btn btn-outline-secondary btn-action"> <i class="fas fa-arrow-right me-1"></i> العودة للمسابقات </a> </div> </div> <?php if ($message): ?> <div class="alert alert-success alert-dismissible fade show"> <i class="fas fa-check-circle me-2"></i> <?= $message ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <?php if ($error): ?> <div class="alert alert-danger alert-dismissible fade show"> <i class="fas fa-exclamation-circle me-2"></i> <?= $error ?> <button type="button" class="btn-close" data-bs-dismiss="alert"></button> </div> <?php endif; ?> <!-- Competition Info --> <div class="card mb-4 shadow"> <div class="card-body"> <div class="row align-items-center"> <div class="col-md-8"> <h4 class="mb-2"> <i class="fas fa-trophy text-warning me-2"></i> <?= sanitize($competition['title']) ?> </h4> <p class="text-muted mb-0"> <i class="fas fa-gamepad me-1"></i> <?= $competition['competition_type'] == 'group' ? 'مسابقة المجموعات' : 'من سيربح المليون' ?> <span class="mx-2">|</span> <i class="fas fa-clock me-1"></i> مدة السؤال: <?= $competition['question_time'] ?? 30 ?> ثانية <span class="mx-2">|</span> <i class="fas fa-question-circle me-1"></i> عدد الأسئلة: <?= count($all_questions) ?> </p> </div> <div class="col-md-4 text-end"> <a href="#addQuestionSection" class="btn btn-success btn-action"> <i class="fas fa-plus-circle me-1"></i> إضافة سؤال جديد </a> </div> </div> </div> </div> <!-- Questions List --> <div class="row"> <?php foreach ($all_questions as $index => $question): ?> <div class="col-lg-6 mb-4"> <div class="question-card shadow"> <div class="question-header"> <div> <span class="question-number"> <?php if ($question['card_type'] ?? '' == 'question' || !isset($question['card_type'])): ?> <i class="fas fa-question-circle me-2"></i> السؤال <?= $index + 1 ?> <?php else: ?> <i class="fas fa-star me-2"></i> بطاقة <?= $question['card_type'] == 'bonus' ? 'مكافأة' : ($question['card_type'] == 'deduction' ? 'خصم' : 'سرقة') ?> <?php endif; ?> </span> <?php if ($competition['competition_type'] == 'millionaire' && isset($question['question_level'])): ?> <span class="badge bg-warning badge-type me-2">المستوى <?= $question['question_level'] ?></span> <?php endif; ?> <?php if (isset($question['question_type']) && $question['question_type'] != 'normal'): ?> <span class="badge bg-info badge-type"> <?= $question['question_type'] == 'speed' ? 'سؤال سرعة' : 'سؤال مقالي' ?> </span> <?php endif; ?> </div> <div class="btn-group"> <?php if ($question['card_type'] ?? '' == 'question' || !isset($question['card_type'])): ?> <button class="btn btn-sm btn-light btn-action edit-question" data-id="<?= $question['id'] ?>" data-question="<?= htmlspecialchars($question['question_text']) ?>" data-answer1="<?= htmlspecialchars($question['answer1']) ?>" data-answer2="<?= htmlspecialchars($question['answer2']) ?>" data-answer3="<?= htmlspecialchars($question['answer3']) ?>" data-answer4="<?= htmlspecialchars($question['answer4']) ?>" data-correct="<?= $question['correct_answer'] ?>" data-question-type="<?= $question['question_type'] ?? 'normal' ?>" <?php if ($competition['competition_type'] == 'millionaire'): ?> data-level="<?= $question['question_level'] ?>" <?php endif; ?>> <i class="fas fa-edit"></i> تعديل </button> <?php endif; ?> <button class="btn btn-sm btn-danger btn-action delete-question" data-id="<?= $question['id'] ?>"> <i class="fas fa-trash"></i> حذف </button> </div> </div> <div class="question-body"> <?php if ($question['card_type'] ?? '' == 'question' || !isset($question['card_type'])): ?> <div class="question-text-preview"> <?= strip_tags($question['question_text'] ?? '') ?> </div> <div class="row"> <div class="col-md-6 mb-2"> <div class="answer-preview <?= $question['correct_answer'] == 1 ? 'correct' : '' ?>"> <strong>أ:</strong> <?= $question['answer1'] ?? 'غير محدد' ?> </div> </div> <div class="col-md-6 mb-2"> <div class="answer-preview <?= $question['correct_answer'] == 2 ? 'correct' : '' ?>"> <strong>ب:</strong> <?= $question['answer2'] ?? 'غير محدد' ?> </div> </div> <div class="col-md-6 mb-2"> <div class="answer-preview <?= $question['correct_answer'] == 3 ? 'correct' : '' ?>"> <strong>ج:</strong> <?= $question['answer3'] ?? 'غير محدد' ?> </div> </div> <div class="col-md-6 mb-2"> <div class="answer-preview <?= $question['correct_answer'] == 4 ? 'correct' : '' ?>"> <strong>د:</strong> <?= $question['answer4'] ?? 'غير محدد' ?> </div> </div> </div> <?php else: ?> <div class="text-center py-4"> <i class="fas fa-star fa-3x text-warning mb-2"></i> <h5><?= $question['points_value'] ?> نقطة</h5> </div> <?php endif; ?> </div> </div> </div> <?php endforeach; ?> </div> <!-- Add New Question Section --> <div class="add-question-section shadow" id="addQuestionSection"> <h4 class="mb-4"> <i class="fas fa-plus-circle me-2"></i> إضافة سؤال أو بطاقة جديدة </h4> <p class="text-muted mb-4"> يمكنك إضافة أسئلة جديدة من خلال الانتقال إلى صفحة الإضافة </p> <a href="<?= $competition['competition_type'] == 'group' ? 'add_group_questions.php' : 'add_millionaire_questions.php' ?>?id=<?= $competition_id ?>" class="btn btn-success btn-lg btn-action"> <i class="fas fa-plus-circle me-2"></i> الانتقال إلى صفحة إضافة الأسئلة </a> </div> </div> <!-- Edit Question Modal --> <div class="modal fade" id="editQuestionModal" tabindex="-1"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <form method="POST"> <div class="modal-header"> <h5 class="modal-title"> <i class="fas fa-edit me-2"></i> تعديل السؤال </h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <input type="hidden" name="question_id" id="editQuestionId"> <?php if ($competition['competition_type'] == 'millionaire'): ?> <div class="mb-3"> <label for="editQuestionLevel" class="form-label"> <i class="fas fa-layer-group me-1"></i> مستوى الصعوبة </label> <select class="form-select" id="editQuestionLevel" name="question_level"> <?php for ($i = 1; $i <= 15; $i++): ?> <option value="<?= $i ?>">المستوى <?= $i ?></option> <?php endfor; ?> </select> </div> <?php else: ?> <div class="mb-3"> <label for="editQuestionType" class="form-label"> <i class="fas fa-tag me-1"></i> نوع السؤال </label> <select class="form-select" id="editQuestionType" name="question_type"> <option value="normal">سؤال عادي</option> <option value="speed">سؤال سرعة</option> <option value="essay">سؤال مقالي</option> </select> </div> <?php endif; ?> <div class="mb-3"> <label for="editQuestionText" class="form-label"> <i class="fas fa-question-circle me-1"></i> نص السؤال </label> <textarea class="form-control" id="editQuestionText" name="question_text" rows="4"></textarea> </div> <div class="row" id="editAnswersSection"> <div class="col-md-6 mb-3"> <label for="editAnswer1" class="form-label">الإجابة الأولى</label> <input type="text" class="form-control" id="editAnswer1" name="answer1"> </div> <div class="col-md-6 mb-3"> <label for="editAnswer2" class="form-label">الإجابة الثانية</label> <input type="text" class="form-control" id="editAnswer2" name="answer2"> </div> <div class="col-md-6 mb-3"> <label for="editAnswer3" class="form-label">الإجابة الثالثة</label> <input type="text" class="form-control" id="editAnswer3" name="answer3"> </div> <div class="col-md-6 mb-3"> <label for="editAnswer4" class="form-label">الإجابة الرابعة</label> <input type="text" class="form-control" id="editAnswer4" name="answer4"> </div> </div> <div class="mb-3" id="editCorrectAnswerSection"> <label for="editCorrectAnswer" class="form-label"> <i class="fas fa-check-circle me-1"></i> الإجابة الصحيحة </label> <select class="form-select" id="editCorrectAnswer" name="correct_answer"> <option value="1">الإجابة الأولى</option> <option value="2">الإجابة الثانية</option> <option value="3">الإجابة الثالثة</option> <option value="4">الإجابة الرابعة</option> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary btn-action" data-bs-dismiss="modal"> <i class="fas fa-times me-1"></i> إلغاء </button> <button type="submit" name="update_question" class="btn btn-primary btn-action"> <i class="fas fa-save me-1"></i> حفظ التغييرات </button> </div> </form> </div> </div> </div> <!-- Delete Question Modal --> <div class="modal fade" id="deleteQuestionModal" tabindex="-1"> <div class="modal-dialog"> <div class="modal-content"> <form method="POST"> <div class="modal-header bg-danger text-white"> <h5 class="modal-title"> <i class="fas fa-exclamation-triangle me-2"></i> حذف السؤال </h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <input type="hidden" name="question_id" id="deleteQuestionId"> <p class="mb-3">هل أنت متأكد من حذف هذا السؤال؟</p> <div class="alert alert-warning mb-0"> <i class="fas fa-exclamation-triangle me-2"></i> هذا الإجراء لا يمكن التراجع عنه! </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary btn-action" data-bs-dismiss="modal"> <i class="fas fa-times me-1"></i> إلغاء </button> <button type="submit" name="delete_question" class="btn btn-danger btn-action"> <i class="fas fa-trash me-1"></i> حذف السؤال </button> </div> </form> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script> <script src="../assets/js/main.js"></script> <script> $(document).ready(function() { // Edit question $('.edit-question').click(function() { const id = $(this).data('id'); const question = $(this).data('question'); const answer1 = $(this).data('answer1'); const answer2 = $(this).data('answer2'); const answer3 = $(this).data('answer3'); const answer4 = $(this).data('answer4'); const correct = $(this).data('correct'); const level = $(this).data('level'); const questionType = $(this).data('question-type'); $('#editQuestionId').val(id); $('#editQuestionText').val(question); $('#editAnswer1').val(answer1); $('#editAnswer2').val(answer2); $('#editAnswer3').val(answer3); $('#editAnswer4').val(answer4); $('#editCorrectAnswer').val(correct); if (level) { $('#editQuestionLevel').val(level); } if (questionType) { $('#editQuestionType').val(questionType); // Handle essay questions in edit mode if (questionType === 'essay') { $('#editAnswersSection').hide(); $('#editCorrectAnswerSection').hide(); } else { $('#editAnswersSection').show(); $('#editCorrectAnswerSection').show(); } } $('#editQuestionModal').modal('show'); }); // Handle question type change in edit modal $('#editQuestionType').change(function() { const questionType = $(this).val(); if (questionType === 'essay') { $('#editAnswersSection').hide(); $('#editCorrectAnswerSection').hide(); // Set default values for essay questions $('#editAnswer1').val('إجابة مفتوحة'); $('#editAnswer2').val('إجابة مفتوحة'); $('#editAnswer3').val('إجابة مفتوحة'); $('#editAnswer4').val('إجابة مفتوحة'); $('#editCorrectAnswer').val('1'); } else { $('#editAnswersSection').show(); $('#editCorrectAnswerSection').show(); // Clear default values if they were set for essay if ($('#editAnswer1').val() === 'إجابة مفتوحة') { $('#editAnswer1, #editAnswer2, #editAnswer3, #editAnswer4').val(''); $('#editCorrectAnswer').val(''); } } }); // Delete question $('.delete-question').click(function() { const id = $(this).data('id'); $('#deleteQuestionId').val(id); $('#deleteQuestionModal').modal('show'); }); }); </script> </body> </html>
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.87 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285