query($sql); $member = $result->fetch_assoc(); // Check if member has access $payment_amount = get_setting('payment_amount'); $has_access = ($member['is_approved'] == 1 && ($member['payment_status'] == 1 || $payment_amount == 0)); if (!$has_access) { redirect(SITE_URL . '/dashboard.php'); } // Get survey site details if (!isset($_GET['id'])) { redirect(SITE_URL . '/dashboard.php'); } $survey_id = (int)$_GET['id']; $survey_sql = "SELECT s.*, COALESCE(AVG(r.rating), 0) as avg_rating, COUNT(r.id) as review_count FROM survey_sites s LEFT JOIN survey_reviews r ON s.id = r.survey_id AND r.is_approved = 1 WHERE s.id = $survey_id GROUP BY s.id"; $survey_result = $conn->query($survey_sql); if ($survey_result->num_rows == 0) { redirect(SITE_URL . '/dashboard.php'); } $survey = $survey_result->fetch_assoc(); // Check if user already reviewed $check_review_sql = "SELECT * FROM survey_reviews WHERE survey_id = $survey_id AND member_id = $member_id"; $check_review_result = $conn->query($check_review_sql); $has_reviewed = $check_review_result->num_rows > 0; $user_review = $has_reviewed ? $check_review_result->fetch_assoc() : null; // Handle review submission $error = ''; $success = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && !$has_reviewed) { $rating = (int)$_POST['rating']; $feedback = clean_input($_POST['feedback']); if ($rating < 1 || $rating > 5) { $error = "Please select a rating between 1 and 5 stars"; } elseif (empty($feedback)) { $error = "Please provide your feedback"; } else { $insert_sql = "INSERT INTO survey_reviews (survey_id, member_id, rating, feedback) VALUES ($survey_id, $member_id, $rating, '$feedback')"; if ($conn->query($insert_sql)) { $success = "Thank you! Your review has been submitted and is pending approval."; $has_reviewed = true; // Refresh user review data $check_review_result = $conn->query($check_review_sql); $user_review = $check_review_result->fetch_assoc(); } else { $error = "Failed to submit review. Please try again."; } } } // Get approved reviews $reviews_sql = "SELECT r.*, m.full_name FROM survey_reviews r JOIN members m ON r.member_id = m.id WHERE r.survey_id = $survey_id AND r.is_approved = 1 ORDER BY r.created_at DESC"; $reviews_result = $conn->query($reviews_sql); $page_title = htmlspecialchars($survey['title']); include 'includes/header.php'; ?>
Share your experience with this survey site to help other members!