چطور میتونم یک فرم ساده با PHP بسازم که اطلاعات ورودی رو دریافت و در یک فایل ذخیره کنه؟
<?php
/**
// مسیر فایل مقصد (میتوانید مسیر را تغییر دهید)
$dataFile = DIR . '/formData.txt';
// بررسی نوع درخواست (GET برای نمایش فرم، POST برای پردازش دادهها)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// دریافت و پاکسازی دادههای ارسالی
$name = trim(htmlspecialchars($_POST['name'] ?? '', ENT_QUOTES, 'UTF-8'));
$email = trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL));
$message = trim(htmlspecialchars($_POST['message'] ?? '', ENT_QUOTES, 'UTF-8'));
// اعتبارسنجی دادهها
$errors = [];
if (empty($name)) {
$errors[] = 'نام الزامی است.';
}
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = 'ایمیل معتبر وارد کنید.';
}
if (empty($message)) {
$errors[] = 'پیام الزامی است.';
}
// اگر خطایی وجود نداشت، دادهها را ذخیره کنید
if (empty($errors)) {
// ساخت رشته داده با فرمت منظم
$dataLine = sprintf(
"[%s] نام: %s | ایمیل: %s | پیام: %s\n",
date('Y-m-d H:i:s'), // تاریخ و ساعت فعلی
$name,
$email,
$message
);
// ذخیره در فایل (افزودن به انتهای فایل)
if (file_put_contents($dataFile, $dataLine, FILE_APPEND | LOCK_EX)) {
$successMessage = 'اطلاعات با موفقیت ثبت شد!';
} else {
$errors[] = 'خطا در ذخیره اطلاعات. لطفاً مجدد تلاش کنید.';
}
}
}
?>
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>فرم ثبت اطلاعات</title>
<style>
body { font-family: Arial, sans-serif; max-width: 600px; margin: 20px auto; padding: 20px; }
.error { color: #d32f2f; background-color: #ffebee; padding: 10px; border-radius: 5px; margin-bottom: 15px; }
.success { color: #388e3c; background-color: #e8f5e9; padding: 10px; border-radius: 5px; margin-bottom: 15px; }
input, textarea { width: 100%; padding: 8px; margin-bottom: 10px; box-sizing: border-box; }
button { background-color: #1976d2; color: white; padding: 10px 15px; border: none; cursor: pointer; }
button:hover { background-color: #1565c0; }
</style>
</head>
<body>
<h1>فرم ثبت اطلاعات</h1>
<!-- نمایش خطاها -->
<?php if (!empty($errors)): ?>
<div class="error">
<?php foreach ($errors as $error): ?>
<p><?= $error ?></p>
<?php endforeach; ?>
</div>
<?php endif; ?>
<!-- نمایش موفقیت -->
<?php if (isset($successMessage)): ?>
<div class="success"><?= $successMessage ?></div>
<?php endif; ?>
<!-- فرم HTML -->
<form method="post" action="<?= htmlspecialchars($_SERVER['PHP_SELF']) ?>">
<label for="name">نام:</label>
<input type="text" id="name" name="name" value="<?= isset($name) ? htmlspecialchars($name) : '' ?>" required>
<label for="email">ایمیل:</label>
<input type="email" id="email" name="email" value="<?= isset($email) ? htmlspecialchars($email) : '' ?>" required>
<label for="message">پیام:</label>
<textarea id="message" name="message" rows="5" required><?= isset($message) ? htmlspecialchars($message) : '' ?></textarea>
<button type="submit">ارسال</button>
</form>
</body>
</html>
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟