articolo2

Category: Marketing | Author: Anonymous | Published: December 13, 2024

// Enable error reporting for debugging
ini_set('display_error        $slug = $originalSlug . '-' . $counter;
        $counter++;
    }


    return $slug;
}


// Function to generate a basic slug
function generateSlug($string) {
    $slug = strtolower($string);
    $slug = preg_replace('/[^a-z0-9]+/i', '-', $slug);
    $slug = trim($slug, '-');
    return $slug;
}


// Fetch all categories for the dropdown
$categories = [];
$result = $conn->query("SELECT id, name FROM categories");
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $categories[] = $row;
    }
}


$errorMessage = '';
$successMessage = '';


// Handle form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $userId = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null; // Default to NULL for anonymous users
    $title = $conn->real_escape_string($_POST['title'] ?? '');
    $body = $conn->real_escape_string($_POST['body'] ?? '');
    $link = $conn->real_escape_string($_POST['link'] ?? '');
    $anchor = $conn->real_escape_string($_POST['anchor'] ?? '');
    $category_id = (int)($_POST['category'] ?? 0);


    // Check if all required fields are filled
    if (!$title || !$body || !$link || !$anchor || !$category_id) {
        $errorMessage = "All fields are required.";
    } else {
        // Insert article and its content
        $slug = generateUniqueSlug($conn, $title, $category_id);


        if ($userId) {
            // Check daily submission limit
            $dailyLimitQuery = $conn->query("SELECT daily_limit FROM users WHERE id = $userId");
            $dailyLimit = $dailyLimitQuery->fetch_assoc()['daily_limit'] ?? 1;


            $checkLimit = $conn->query("SELECT COUNT(*) as article_count FROM articles WHERE user_id = $userId AND DATE(created_at) = CURDATE()");
            if ($checkLimit->fetch_assoc()['article_count'] >= $dailyLimit) {
                $errorMessage = "You have reached your daily submission limit.";
            } else {
                // Insert article metadata
                $sql = "INSERT INTO articles (title, user_id, category_id, slug, status) 
                        VALUES ('$title', $userId, $category_id, '$slug', 'approved')";
                if ($conn->query($sql)) {
                    $articleId = $conn->insert_id;
                    // Insert article content
                    $contentSql = "INSERT INTO articles_content (article_id, body, link, anchor) 
                                   VALUES ($articleId, '$body', '$link', '$anchor')";
                    if ($conn->query($contentSql)) {
                        $successMessage = "Article submitted successfully!";
                    } else {
                        $errorMessage = "Error saving article content: " . $conn->error;
                    }
                } else {
                    $errorMessage = "Error submitting article: " . $conn->error;
                }
            }
        } else {
            $email = $conn->real_escape_string($_POST['email'] ?? '');
            if (!$email) {
                $errorMessage = "Email is required for guest submissions.";
            } else {
                // Insert article metadata
                $sql = "INSERT INTO articles (title, user_id, email, category_id, slug, status) 
                        VALUES ('$title', NULL, '$email', $category_id, '$slug', 'approved')";
                if ($conn->query($sql)) {
                    $articleId = $conn->insert_id;
                    // Insert article content
                    $contentSql = "INSERT INTO articles_content (article_id, body, link, anchor) 
                                   VALUES ($articleId, '$body', '$link', '$anchor')";
                    if ($conn->query($contentSql)) {
                        // Send confirmation email
                        $to = $email;
                        $subject = "Article Submission Confirmation";
                        $message = "Thank you for submitting your article: $title.";
                        $headers = "From: no-reply@yourdomain.com";
                        mail($to, $subject, $message, $headers);


                        $successMessage = "Article submitted successfully! Please check your email for confirmation.";
                    } else {
                        $errorMessage = "Error saving article content: " . $conn->error;
                    }
                } else {
                    $errorMessage = "Error submitting article: " . $conn->error;
                }
            }
        }
    }
}
?>

errorMessage