Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/43: Рейтинг темы: голосов - 43, средняя оценка - 4.72
 Аватар для Edik_hacker
14 / 13 / 5
Регистрация: 24.03.2009
Сообщений: 80

Сохранение в файл (права на файл и папку)

09.06.2010, 15:21. Показов 9160. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма. Данные с форму передаются скрипту. Скрипт записывает данные с формы в файл.
Скрипт:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$filename = "news.php"; 
// Если файл существует и в него возможна запись 
if ( is_writeable($filename) ) : 
// Открыть файл и установить указатель текущей позиции в конец файла 
$fh = fopen($filename, "a+"); 
// Записать содержимое $data в файл 
$success - fwrite($fh, $data); 
// Закрыть файл 
fclose($fh);
echo "Ошибка";
endif; 
exit; 
$news
?>
У себя на компютере все работает. Но на сервере незаписывается в файл.
В тех. поддержке пишут что нужно проверить доступ к файлу и папке.
В Total Commander изменял атрибуты папки и файлов и без результатно.

Что нужно делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2010, 15:21
Ответы с готовыми решениями:

При сохранение файла word (права доступа на сохранение ограничены) появляется пустой файл
Добрый день! Проблема такая: Допустим есть пользователь, у которого ограничены права (может просматривать документ, но удалять и...

Как поменять права на файл или папку по FTP?
Много времени провел в гугле и не нашел внятного ответа. Как поменять права на файл или папку по FTP?

Как скопировать файл в папку system\app, root права есть
Надо перенести файл supersu из папки data\app в папку system\app, но как-то надо открыть эту папку на запись, а как не знаю...root cheker...

11
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
09.06.2010, 15:27
Цитата Сообщение от Edik_hacker Посмотреть сообщение
$success - fwrite($fh, $data);
замените на:
PHP
1
2
3
4
5
<?php
...
fwrite($fh, $data);
...
?>
Добавлено через 2 минуты
И у Вас там еще не понятно с if:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$filename = "news.php"; 
// Если файл существует и в него возможна запись 
if ( is_writeable($filename) ){
// Открыть файл и установить указатель текущей позиции в конец файла 
$fh = fopen($filename, "a+"); 
// Записать содержимое $data в файл 
fwrite($fh, $data); 
// Закрыть файл 
fclose($fh);
}
else
    exit( 'Ошибка' );
$news //Что это?
?>
1
 Аватар для Pafos
97 / 97 / 17
Регистрация: 18.10.2009
Сообщений: 453
09.06.2010, 15:33
Наверно неправильно указанЫ права доступа, я когдато 4итал об этом, но 4то-то както не вникал
Вот по4итай...моЖет помоЖет: [сылка удалена!]
Добавлено через 2 минуты
Хотя я могу и оШибатся...
0
633 / 376 / 7
Регистрация: 25.05.2010
Сообщений: 1,372
09.06.2010, 15:35
Цитата Сообщение от Edik_hacker Посмотреть сообщение
В Total Commander изменял атрибуты папки и файлов и без результатно.
Безрезультатно что? Не изменяются права или не работает запись в файл?
0
 Аватар для Edik_hacker
14 / 13 / 5
Регистрация: 24.03.2009
Сообщений: 80
09.06.2010, 16:26  [ТС]
Цитата Сообщение от ValeryB Посмотреть сообщение
Безрезультатно что? Не изменяются права или не работает запись в файл?
Запись в файл.

Добавлено через 19 минут
Почти ВСЕ! Теперь записывается в файл.
Вот только переменные из таблицы не передаются в
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$filename = "news.php"; 
// Если файл существует и в него возможна запись 
if ( is_writeable($filename) ) : 
// Открыть файл и установить указатель текущей позиции в конец файла 
$fh = fopen($filename, "a+"); 
// Записать содержимое $data в файл 
fwrite($fh, $data); 
// Закрыть файл 
fclose($fh);
echo "Ошибка";
endif; 
exit; 
$news
и в файл записи news.php.
Через переменную $GLOBALS тоже.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
09.06.2010, 16:42
Edik_hacker, из какой таблицы? как Вы их достаете? Что с ними потом делаете? В общем приведите весь код. И к чему $news? Я не вижу связи с выше указанным кодом.
0
 Аватар для Edik_hacker
14 / 13 / 5
Регистрация: 24.03.2009
Сообщений: 80
09.06.2010, 16:54  [ТС]
Извеняюсь. Не из таблицы а ФОРМЫ.

HTML5
1
2
3
4
5
<form action="zapis.php">
Имя: <input type="text" name="name" />
Фамилия: <input type="text" name="surname" />
<input type="submit" />
</form>

Файл zapis.php
PHP
1
2
$data = "Фамилия: $surname
Имя: $name";
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$filename = "news.php"; 
// Если файл существует и в него возможна запись 
if ( is_writeable($filename) ) : 
// Открыть файл и установить указатель текущей позиции в конец файла 
$fh = fopen($filename, "a+"); 
// Записать содержимое $data в файл 
fwrite($fh, $data); 
// Закрыть файл 
fclose($fh);
echo "Ошибка";
endif; 
exit;
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
09.06.2010, 16:58
Если указать в форме метод POST
PHP
1
2
3
4
5
6
<?php
...
$data = "Фамилия: {$_POST['surname']}
Имя: {$_POST['name']}";
...
?>
Добавлено через 1 минуту
Т.е. так:
HTML5
1
2
3
4
5
<form action="zapis.php" method="POST">
Имя: <input type="text" name="name" />
Фамилия: <input type="text" name="surname" />
<input type="submit" />
</form>
1
Swetlana_N
17.06.2010, 19:41
Помогите пожалуйста!
Установила сервер ч/з Denwer. создаю форму регистрации почемуто данные не сохраняет в текстовый файл.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
 
<body>
<?php
 
 
$email = $_POST['email'];// собираем введенные данные и записываемв переменные
$login = $_POST['login'];
$pass = $_POST['pass'];
$name = $_POST['name']; 
$sename = $_POST['sename'];
$text .= "Е mail: $email \n"; // записываем в переменную то что собираемся писать в файл 
$text .= "Логин: $login \n"; 
$text .= "Пароль:$pass  \n"; 
$text .= "Имя: $name \n"; 
$text .= "Фамилия: $sename \n";
$text .= 
 
"------------------------------------------------------------------------------------ \n"; 
 
// разделитель для удобства восприятия полученного текста (необязательный элемент)
 function chek()
    {
        var 
        email = getElementById('email').value ;
        login= getElementById('login').value ;
pass = getElementById('pass').value ;
        name= getElementById('name').value ;
        sename= getElementById('sename').value ;
 
        if (email != '' || login!= '' || pass!= '' || name!= '' || sename!= '')// если 
 
хотя бы 1 из полей заполненно
 
            {
                getElementById('submit').disabled = "false" ;// то кнопка включается
            }
        else // если нет
            {
                getElementById('submit').disabled = "true" ; // выключается
            }
    }  
//если все переменные имеют значения выполняем запись в файл
    {
  $file = fopen ("reg.txt", "a+"); //открываем для дозаписи файл reg.txt лежаший в одной 
 
папке с текущей страницей
    fwrite ($file,$text); // пишем в файл
    fclose ($file); // закрываем файл
 
}
?>
<form name="form1" method="get" action="" onClick="chek()">
  <label for="textfield"></label>  
  <table border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><label for="textfield">E mail</label></td>
      <td><input type="text" name="email" id="email"></td>
    </tr>
    <tr>
      <td>Логин</td>
      <td><input type="text" name="login" id="login"></td>
    </tr>
    <tr>
      <td>Пароль</td>
      <td><input type="text" name="pass" id="pass"></td>
    </tr>
    <tr>
      <td>Имя</td>
      <td><input type="text" name="name" id="name"></td>
    </tr>
    <tr>
      <td>Фамилия</td>
      <td><input type="text" name="sename" id="sename"></td>
    </tr>
  </table>
  <p>
    <label for="Submit"></label>
    <input type="submit" name="Submit" value="Сохранить" id="Submit">
  </p>
</form>
</body>
</html>
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.06.2010, 22:20
Вот php код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if ( isset ( $_POST['email'], $_POST['login'], $_POST['pass'], $_POST['name'], $_POST['sename'] ) ) {
   $email = $_POST['email'];// собираем введенные данные и записываемв переменные
   $login = $_POST['login'];
   $pass = $_POST['pass'];
   $name = $_POST['name']; 
   $sename = $_POST['sename'];
   $text = "Е mail: $email \n"; // записываем в переменную то, что собираемся писать в файл 
   $text .= "Логин: $login \n"; //Конечно, перед записью в файл
   $text .= "Пароль:$pass  \n"; //, необходимо обезопасить данные
   $text .= "Имя: $name \n"; //введенные пользователем
   $text .= "Фамилия: $sename \n";//но тут мы этого делать не будем
   //открываем для дозаписи файл reg.txt
   //лежаший в одной папке с текущей страницей
   $file = fopen ("reg.txt", "a+") or die( 'Ошибка при открытии файла!' );
   // пишем в файл
    fwrite ($file,$text) or die( 'Ошибка при записи в файл!' );
    // закрываем файл
    fclose ($file);
}//Этот код просто не может не работать!:)
?>
Попробуйте такой вариант

Добавлено через 1 минуту
Если будет писать ошибку, то скажите какую
0
 Аватар для cxsm
21 / 21 / 6
Регистрация: 19.06.2010
Сообщений: 230
20.06.2010, 15:16
Вот php код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if ( isset ( $_POST['email'], $_POST['login'], $_POST['pass'], $_POST['name'], $_POST['sename'] ) ) {
   $email = $_POST['email'];// собираем введенные данные и записываемв переменные
   $login = $_POST['login'];
   $pass = $_POST['pass'];
   $name = $_POST['name']; 
   $sename = $_POST['sename'];
   $text = "Е mail: $email \n"; // записываем в переменную то, что собираемся писать в файл 
   $text .= "Логин: $login \n"; //Конечно, перед записью в файл
   $text .= "Пароль:$pass  \n"; //, необходимо обезопасить данные
   $text .= "Имя: $name \n"; //введенные пользователем
   $text .= "Фамилия: $sename \n";//но тут мы этого делать не будем
   //открываем для дозаписи файл reg.txt
   //лежаший в одной папке с текущей страницей
   $file = fopen ("reg.txt", "a+") or die( 'Ошибка при открытии файла!' );
   // пишем в файл
    fwrite ($file,$text) or die( 'Ошибка при записи в файл!' );
    // закрываем файл
    fclose ($file);
}//Этот код просто не может не работать!:)
Попробуйте такой вариант
Все верно, только хотелось бы подправить и верстку html имеются ошибки.
Если скрипт проверяет $_POST, то и следует передавать POST, а не GET данные
HTML5
1
2
3
...
<form name="form1" method="post" action="">
...
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 6
14.09.2011, 13:07
помогите плз, не сохраняет веденные данные в новый фаил.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
$d = dir("records");
$i=0;
while($entry=$d->read()) {
    if (substr($entry,0,1)=="rec") {
        $names[$i]=substr($entry,2);
        $i++;
        }
    }
$d->close();
@rsort($names);
$count=$i;
$cnt=$count;
if (empty($start)) $start=0;
$start=intval($start);
if ($start<0) $start=0;
 
print "<center>";
if ($count>$start+10) $count=$start+10;
if ($start!=0)
    print "[ <A href=index.php?start=".($start-10).">Предыдущие</A> ]";
print " [ <a href=add.php>Добавить запись</A>] ";
if ($cnt>$start+10)
    print "[ <A href=index.php?start=".($start+10).">Следующие</A> ]\n";
print "</center><br>";
 
for ($i=$start;$i<$count;$i++) {
    $entry=$names[$i];
    $data=file("records/rec.".$entry);
    $date=$entry;
    $name=trim($data[0]);
    $surname=trim($data[1]);
    $question=trim($data[2]);
    $answer=trim($data[3]);
 
    print "<table border=0 cellspacing=0 cellpadding=2 width=100%><tr bgcolor=#F0F0F0><td>&nbsp;";
    print "</td><td align=right>".date("H-i-s <b>d-m-Y</b>",$date)."</td></tr>\n<tr><td colspan=2>\n";
    print "<P>".$question."</P>\n";
    if (!empty($answer)) print "<P><B><I>$answer</I></B></P>\n";
    print "</td></tr></table>\n<br><br>\n";
    }
 
print "<center>";
if ($start!=0) print "[ <A href=index.php?start=".($start-10).">Предыдущие</A> ]";
print " [ <a href=add.php>Добавить запись</A>] ";
if ($cnt>$start+10) print "[ <A href=index.php?start=".($start+10).">Следующие</A> ]\n";
print "</center>";
?>
</BODY>
</HTML>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2011, 13:07
Помогаю со студенческими работами здесь

Найти файл, и в папку где лежит этот файл скопировать другой файл)
Задача описана в названии, но повторюсь. Надо найти папку с известным названием файла (123.txt), после того как этот файл найден, в папку...

Сохранить файл в папку, а ссылку на его в БД, открыть файл по ссылке из Бд
Здравствуйте. Не получается сохранить файлы в папку Data (c записью ссылки на него в БД),а затем его открыть по данной ссылке. Задача в...

Сохранение листа книги в новый файл с определенным названием в новую папку с таким же названием в определенной папке
Привет всем профи и любителям! Прошу помочь с написанием макроса. Имеется книга с 2 листами. На лист1 вводятся данные (типа...

При записи в файл, в какую папку записывается файл?
При записи текста в файл в какой папке создается файл и туда записываются данные, записываю так: FileOutputStream fos; fos =...

Если файл содержит текст, удовлетворяющий определённым условиям, то скопировать этот файл в заданную папку
Задачка такая Есть файл 123.txt открываем и если там текст начиная с 1 или 3 и содержащим 27-34 буквенно-цифровых латинских символов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru