[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание файла на сервере.
ViaScientarium
Приветствую!
PHP
function subs_file(){
    if (
file_exists("subscribe.txt")){
        
$fp fopen ("subscribe.txt""r+");
        
$test fwrite($fp$subs_mail);
        
fclose($fp);
    }else{
        
$fp fopen("subscribe.txt""w");
        
$test fwrite($fp$subs_mail);
        if (
$test) echo 'Данные в файл успешно занесены.';
            else echo 
'Ошибка при записи в файл.';
        
fclose($fp);
    }
}

С помощью этой функции я хочу создать файл на сервере. Но каждый раз выдается ошибка...
Поэтому появились вопросы:
1) Необходимо ли указывать логин и пароль от ftp при записи файла?
2) Файл subscribe.txt создается в той же папке, где и исполняемый php-файл лежит?
3) Может в функции какие ошибки?)
Заранее спасибо.



Спустя 11 минут, 3 секунды (20.06.2009 - 10:14) glock18 написал(а):
Привет.

Собственно, ты не сказал самое главное smile.gif - какая ошибка выдается?

Спустя 5 минут, 10 секунд (20.06.2009 - 10:19) ViaScientarium написал(а):
А каким образом можно узнать тип ошибки?

Спустя 18 минут, 52 секунды (20.06.2009 - 10:38) stepan написал(а):
Запустить и посмотреть что он тебе напишит, если ни чего тогда все работает.
1 нет
2 смотря какой путь скажеш
3 я не увидел входных параметров т.е. он тебе в текстовый документ запишит пустоту.

Спустя 39 минут, 10 секунд (20.06.2009 - 11:17) ViaScientarium написал(а):
Спасибо. Разобрался)

Спустя 32 минуты, 47 секунд (20.06.2009 - 11:50) ViaScientarium написал(а):
И возник еще один вопрос:
есть переменная
PHP
$subs_mail $_POST['subs_mail'];

В эту переменную записывается определенная строка.
Но функция
PHP
fwrite($fp$subs_mail);
не записывает значение $subs_mail.
Но
PHP
fwrite($fp"test");
срабатывает.

Спустя 6 минут, 7 секунд (20.06.2009 - 11:56) gletscherl написал(а):
а зачем
PHP
$subs_mail = $_POST['subs_mail'];
fwrite($fp, $subs_mail);

если можно
PHP
fwrite($fp, $_POST['subs_mail']);

и какая у тебя версия PHP?

Спустя 8 минут, 29 секунд (20.06.2009 - 12:04) ViaScientarium написал(а):
Переменная $subs_mail еще в некоторых местах у меня используется, поэтому решил сделать так.
Версия PHP - 5.2.6-0.5

Спустя 9 секунд (20.06.2009 - 12:04) glock18 написал(а):
Цитата (gletscherl @ 20.06.2009 - 08:56)
а зачем
PHP
$subs_mail $_POST['subs_mail'];
fwrite($fp$subs_mail);

если можно
PHP
fwrite($fp$_POST['subs_mail']);

и какая у тебя версия PHP?

А вот это очень неправильно.

переменная может быть не передана постом.

в любом случае нужно проверять была ли переменная инициализирована, если это не известно однозначно.

ViaScientarium, ты пробовал выводить содержимое этой переменной на экран перед тем как писать ее в файл? в ней точно есть то, что тебе нужно?

Спустя 7 минут, 6 секунд (20.06.2009 - 12:11) ViaScientarium написал(а):
Да, содержимое переменной определяется. Например:
PHP
echo''.$subs_mail.'';

выдает: test@mail.ru

Значение переменной определяется вводом в форму. После нажатия на кнопку, происходит выполнение записи в файл. Переменная получает необходимое значение. Но не записывается в файл...

Спустя 38 минут, 12 секунд (20.06.2009 - 12:50) glock18 написал(а):
PHP
fwrite($fp$subs_mail);


а файлик то у вас открыт уже? fopen'ом

Спустя 9 минут, 46 секунд (20.06.2009 - 12:59) ViaScientarium написал(а):
Вот полный код:
PHP
$subs_mail $_POST['subs_mail'];

function 
subs_file(){
    
$path "uploads/subscribe.txt";
    if (
file_exists($path)){
        
$fp fopen ($path"r+");
        
$test fwrite($fp$subs_mail);
        
//if (!$test) echo "Cannot write to file";
        
fclose($fp);
    }else{
        
$fp fopen($path"w");
        
$test fwrite($fp$subs_mail);
        
fclose($fp);
    }
}

If (
$_POST["subs_button"]){
        
subs_file();
.....
}

Спустя 8 минут, 7 секунд (20.06.2009 - 13:07) ViaScientarium написал(а):
Проблема разрешилась..
Оказывается надо было добавить в саму функцию строку:
PHP
$subs_mail $_POST['subs_mail'];

Спустя 11 минут, 41 секунда (20.06.2009 - 13:19) glock18 написал(а):
Цитата (ViaScientarium @ 20.06.2009 - 10:07)
Оказывается надо было добавить в саму функцию строку:


Лучше параметром функции передать.

Спустя 13 минут, 46 секунд (20.06.2009 - 13:33) stepan написал(а):
Это не правильное решение я же тебе написал что укажи входной параметр т.е.
PHP
function subs_file($wr){
...
fwrite($fp, $wr)


...
}

а саму функцию тогда вызываеш subs_file($subs_mail) а если пользоваться твоим решением то тогда функция будет предназначена только для записи мыла.

Спустя 31 минута, 31 секунда (20.06.2009 - 14:04) ViaScientarium написал(а):
Ок, спасибо за подсказку.
Я думал, что глобальные переменные можно использовать в самих функциях.
Быстрый ответ:

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