Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PHP скрипт не записывает данные в текстовый файл

Данила Пшеничников Ученик (223), открыт 3 недели назад
здравствуйте! у меня такая проблема: в текстовый файл не записываются данные из формы. скорее всего php файл не корректно работает((( помогите пожалуйста решить проблему) p.s никаких дополнительных скриптов не создавал...
вот код php фала:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$website = $_POST["website"];
$dob = $_POST["dob"];
$color = $_POST["color"];
$rating = $_POST["rating"];
$comment = $_POST["comment"];
$date = date("Y-m-d H:i:s");
$ip = $_SERVER["REMOTE_ADDR"];
$userAgent = $_SERVER["HTTP_USER_AGENT"];

// Форматирование данных для сохранения в файл
$data = "Дата и время прихода данных: $date\n";
$data .= "IP-адрес узла: $ip\n";
$data .= "Информация о клиенте: $userAgent\n";
$data .= "Имя: $name\n";
$data .= "Email: $email\n";
$data .= "Телефон: $phone\n";
$data .= "Вебсайт: $website\n";
$data .= "Дата рождения: $dob\n";
$data .= "Любимый цвет: $color\n";
$data .= "Оценка файла: $rating\n";
$data .= "Комментарий: $comment\n";
$data .= "---\n";

// Открытие файла для записи данных
$filename = "lab4_Pshenichnikov.txt";
file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);

// Перенаправление на страницу с выводом данных
header("Location: show_data.php");
exit;
}
?>
5 ответов
Роман Данилов Мудрец (10218) 3 недели назад
Вы указываете относительный путь, то есть пытаетесь писать в текущий каталог. Наверное в этот каталог (откуда запускается php-файл) нет прав писать. Попробуйте куда-нибудь еще или дайте пользователю, от имени которого работает php или вебсервер, права записи.
Татьяна Просветленный (32658) 3 недели назад
Для того чтобы решить проблему с записью данных из формы в текстовый файл в PHP, нужно проверить несколько аспектов. Давайте рассмотрим несколько шагов для отладки и решения этой проблемы:

Проверка прав доступа к файлу: Убедитесь, что веб-сервер имеет права на запись в директорию, где находится файл lab4_Pshenichnikov.txt. Обычно, это можно сделать через команду chmod в командной строке:
 chmod 777 /path/to/directory 
или через изменение прав доступа через FTP или панель управления хостингом.

Проверка ошибок в PHP: Убедитесь, что в PHP включено отображение ошибок, чтобы видеть возможные проблемы в коде. Для этого можно добавить в начало вашего PHP файла следующие строки:
 ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Проверка данных формы: Убедитесь, что форма, отправляющая данные, корректно настроена и использует метод POST. Пример HTML формы:
 












Проверка перенаправления: Убедитесь, что файл show_data.php существует и находится в правильной директории.

Теперь давайте обновим ваш PHP код с добавлением проверки ошибок:
 ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"] ?? '';
$email = $_POST["email"] ?? '';
$phone = $_POST["phone"] ?? '';
$website = $_POST["website"] ?? '';
$dob = $_POST["dob"] ?? '';
$color = $_POST["color"] ?? '';
$rating = $_POST["rating"] ?? '';
$comment = $_POST["comment"] ?? '';
$date = date("Y-m-d H:i:s");
$ip = $_SERVER["REMOTE_ADDR"] ?? '';
$userAgent = $_SERVER["HTTP_USER_AGENT"] ?? '';

// Форматирование данных для сохранения в файл
$data = "Дата и время прихода данных: $date\n";
$data .= "IP-адрес узла: $ip\n";
$data .= "Информация о клиенте: $userAgent\n";
$data .= "Имя: $name\n";
$data .= "Email: $email\n";
$data .= "Телефон: $phone\n";
$data .= "Вебсайт: $website\n";
$data .= "Дата рождения: $dob\n";
$data .= "Любимый цвет: $color\n";
$data .= "Оценка файла: $rating\n";
$data .= "Комментарий: $comment\n";
$data .= "---\n";

// Открытие файла для записи данных
$filename = "lab4_Pshenichnikov.txt";

// Проверка записи данных в файл
if (file_put_contents($filename, $data, FILE_APPEND | LOCK_EX) === false) {
echo "Ошибка при записи данных в файл.";
} else {
// Перенаправление на страницу с выводом данных
header("Location: show_data.php");
exit;
}
}
?>
Данила ПшеничниковУченик (223) 3 недели назад
вроде все права есть, форма сделана так, как вы и написали, код php файла поменял, но все еще не работает((((
Данила Пшеничников, а какие ошибки выводит?
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (249332) 3 недели назад
проверить права не запись и добавить отладку
Похожие вопросы