![]() |
Трабла со скриптом на локалхосте
есть скриптик:
<? $script="file.php"; $file="file.txt"; if(isset($knopka)){ $fl = fopen($file,"a+"); flock($fl,LOCK_EX); fputs($fl,"$name\n"); flock($fl,LOCK_UN); fclose($fl); } ?> форма посылает ему данные: <form action="test.php" method="post"> <textarea name="name" cols="30"></textarea> <input type="submit" name="knopka" value="Отправить"> </form> Все очень просто но вот засада на localhoste под виндой не пашет:-( Заливаю на нормальный хостинг все работает. А очень нужно запустить это на локалхосте. Может кто чо посоветует. В кратце, необходимо заполненные данные из формочки записать в txt файл. |
flock наверно глючит под окнами.
|
RaZEr
Убрал нафиг всю блокировку все равно не записывает в файл. <? $file="file.txt"; if(isset($knopka)){ $fl = fopen($file,"a+"); fputs($fl,"$name\n"); fclose($fl); } ?> |
Хмм ... странно ... так а ошибки то какие выдает ?
|
в том то и дело, что никаких ошибок не выдает.
все так как и должно быть, но в файлик ничего не пишет. Я уже 2 дня парюсь. :confused: |
fputs замени на fwrite от греха подальше. И вот еще, скажи вот если ты удалишь пустой файл и запустишь скрипт, новый пустой файл создается ?
|
Заменил на fwrite - теже яйца.
ага а новый файл не создается. Чтобы это значило? |
А это значит что проблема в fopen. Он попросту не открывает файл, или открывает но не тот. Ты посмотри, может где в корневухе создался файл. Вообщем поищи его на винте ...
|
нифига, такого файла нет.
Блин, а почему на нормальном хосте все пашет. Да, давно я такого гемороя не встречал. |
Попробуй создавать с абсолютным путем: C:\test.txt
PS: А вообще создаваться должно везде. Ты кстати еще зайди в php.ini и посмотри что там за incude_path если он раскоментирован (сюда процитируй). |
С абсолютным путем тоже болт.
в php.ini incude_path вообще нет. |
Цитата:
|
нет не закоментирован.
такой строки вообще нет. |
Ну раз нет, то и хорошо. Все-равно не нужна. Главное чтобы в php_info было:
Код:
include_path .;c:\php4\pear |
может у тебя стоит более новая версия PHP,
там переменные из формы надо брать так: import_request_variables('p', 'p_'); #take the POST variables to the global scope. 'p' for the POST теперь у тебя есть $p_knopka, ну и дальше как обычно. П.С. Хотя у меня тоже такой глюк был, я его правда не решил а обошел, стал записивать все что надо в БД, а потом оттуда распечатывал. |
непашееееееееет
вот что было ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" include_path = ".;c:\Program Files\php\includes" Добавил: include_path = ".;c:\Program Files\php\pear" все равно болт |
Странные вещи происходят у тебя. Создай файлик в директории со скриптом, который сам скрипт создать не может, и напиши туда чего-нибудь. А затем в скрипте открой его с параметром r (вместо "a+"), и сделай fread($fp,filesize($filename)). И в echo выведи это дело.
Выводит содержимое файла ? |
jutky
вот молодца. пасибо. все заработало. :yees: Добавлено через 3 минуты: RaZEr вот так все прекрасно пашет: Спасибо jutky .:yees: <? $script="file.php"; $file="file.txt"; import_request_variables('p', 'p_'); if(isset($p_knopka)){ $fl = fopen($file,"a+"); fwrite($fl,"$p_name\n"); fclose($fl); } ?> вообще странно конечно все это |
Мдя ... блин :p :biggrin: у тебя он до fopen просто не доходил ... видать register_globals не стоит и конструкция:
if(isset($knopka)){ ... } просто пропускалась ... м-да ... |
RaZEr
да хрен его знает, теперь прекрасно создается и дополняется. может просто он данные из формы не хавал и из за отсутствия таковых решал не создавать файл. спасибо тебе за помошь. ;) |
isset($knopka) проверяет существует ли переменная $knopka. Ее не существовало, так как у тебя не включен register_globals (в php.ini). Нужно было проверять не:
Код:
isset($knopka)Код:
isset($POST['knopka'])Код:
register_globals = On |
RaZEr
усе понял СПАСИБО |
| Часовой пояс GMT +4, время: 08:30. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.