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;
}
}
}
}
}
?>