[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема при создании файла
Андрей2405
Прописал на странице:
$save=fopen("$login/pass.txt","w+");
flock($save,LOCK_EX);
$count=fread($save,100);
$count=$password;
ftruncate($save,0);
fwrite($save,$count);
flock($save,LOCK_UN);
fclose($save);

Пишет, что файла нет(Хотя судя по мануалу, php сервер должен создать новый файл).
Что делать? Если задаю глупый вопрос, извините)



Спустя 1 час, 13 минут, 43 секунды (2.03.2011 - 01:37) Invis1ble написал(а):
существует ли директория с именем, содеращимся в $login ?
и если файл новый, то что ты там пытаешься прочесть?
режим w+ открывает существующий файл
Вобщем много путанницы там у тебя в коде.

Спустя 28 минут, 7 секунд (2.03.2011 - 02:06) Андрей2405 написал(а):
1. Директории реально нет, спасибо
2. А как тогда открыть файл для создания?

Спустя 10 минут, 53 секунды (2.03.2011 - 02:16) Андрей2405 написал(а):
Все, спасибо огромное)) Получилось... Было 2 ошибки:
1. Перед открытием файла прописать
mkdir ($login)

2. Режим открытия файла не "w", а "x"

Спустя 10 минут, 44 секунды (2.03.2011 - 02:27) Invis1ble написал(а):
Андрей2405
да, и fread() тебе ни к чему, раз создается новый файл + ftruncate() тоже не нужен

Спустя 11 минут, 21 секунда (2.03.2011 - 02:39) Guest написал(а):
Ок, уберу, спасибо, но появилась еще одна фигня: Warning: Division by zero in site.ru/WWW/ registration2.php on line 17

Спустя 2 минуты, 8 секунд (2.03.2011 - 02:41) Андрей2405 написал(а):
Ок, уберу, спасибо, но появилась еще одна фигня: Warning: Division by zero in site.ru/WWW/ registration2.php on line 17

Спустя 19 минут, 3 секунды (2.03.2011 - 03:00) Invis1ble написал(а):
я не экстрасенс, откуда я знаю, что у тебя там на 17 строке

Спустя 11 минут, 16 секунд (2.03.2011 - 03:11) Андрей2405 написал(а):
Я файл с этой страницей прикрепил)
<html>
<head>
<title>
Регистрация</title>
</head>
<body>
<?php
&#8233;$login= "";
if (isset($_POST['login']) && is_string($_POST['login']))
$login=$_POST['login'];
$password= "";
if (isset($_POST['password']) && is_string($_POST['password']))
$password=$_POST['password'];
$password2= "";
if (isset($_POST['password2']) && is_string($_POST['password2']))
$password2=$_POST['password2'];
if(file_exists($login/pas s.txt))
{
echo "Такой пользователь уже зарегистрирован<p>";
}
else
{
if($password=$password2)
{
if(file_exists($login))
{
do_nothin g;
}
else
{
mkdir ("$login");
}
$save=fopen("$login/pass.txt","x");
flo ck($save,LOCK_EX);
$count=fread($save,100);
$count=$password;
ftruncate($save,0);
fwrite($save,$count);
flock($save,LOCK_UN);
fclose($save);
}
else echo "Пароли не совпадают<p>";
}
?>
</body>
</html>

И такое еще в 1 месте есть (при входе на сайт)

Спустя 3 минуты, 21 секунда (2.03.2011 - 03:14) Bezdna написал(а):
В 16-ой строке: if(file_exists($login/pass.txt))

ЗЫ Даже подсветка кода подсказывает. wink.gif

Спустя 12 минут, 21 секунда (2.03.2011 - 03:27) Андрей2405 написал(а):
Эээ... стыдно в этом признаваться, но я так и не понял, в чем ошибка?) На этой строчке сервер проверяет существование файла pass.txt, но не делит на 0)

Спустя 1 минута, 7 секунд (2.03.2011 - 03:28) inpost написал(а):
Андрей2405
текст брать в кавычки надо, как показали тебе.

Спустя 2 минуты, 42 секунды (2.03.2011 - 03:30) Андрей2405 написал(а):
Я знаю, это у меня запланировано следующим пунктом (чистка кода) =)

Спустя 4 минуты, 43 секунды (2.03.2011 - 03:35) Invis1ble написал(а):
Андрей2405
как раз таки у тебя в коде идет деление значения из переменной $login на неизвестную костанту pas s.txt, которая интерпретируется как false, соответственно получается деление на 0. Вот так надо:
if (file_exists($login . '/pass.txt'))

Спустя 2 минуты, 20 секунд (2.03.2011 - 03:38) Андрей2405 написал(а):
Спасибо)) А я-то сижу, смотрю на выделенный черным текст и думаю, где ошибка)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.