[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись Информацыи в файл!
lawbreaker
Всем привет ! smile.gif
PHP
<?php
    
if ($_GET['addscript'] == '1')
    {
    echo 
'<form action=?addscript=2 method=POST><input type=password name=pass><br><input type=submit></form>';
    }
    if(
$_GET['addscript'] == '2')
    {
    
session_start();
    
$pass $_POST['pass'];
    if (
$pass == 'мой пароль'
    {
    
$_SESSION['admin'] = 'admin';
    echo 
'<form action=?addscript=3 method=POST>Info:<br><input type=text name=info size=30><br>Download-Link<br><input type=text name=link><br>Typ(PHP,Delphi,C++ ...):<br><input type=text name=typ><br>Image-Adress:<br><input type=text name=image><br><input type=submit></form>';
    } else{echo 
'false';}
    }
    if(
$_GET['addscript'] == '3')
    {
    
$s session_start();
    if (isset(
$s))
    {
    
$info $_POST['info'];
    
$link $_POST['link'];
    
$typ $_POST['typ'];
    
$image $_POST['image'];
    
    
$fp fopen("scripts.txt" "a");
    
fwrite($fp,$info);
    
fwrite($fp,"|");
    
fwrite($fp,$link);
    
fwrite($fp,"|");
    
fwrite($fp,$typ);
    
fwrite($fp,"|");
    
fwrite($fp,$image);
    
fclose($fp);
    }else
    {
    echo 
'error';
    }
    }
    

Скрипт работает!
НО! Когда я зашол и отправил инфу на запись в файл
scripts.txt
выглядит так
HTML
reteer|rertert|errertr|rereerer|||
|
какого-то хрена в конце добавляютса ещё три "|"
в чем проблема?



Спустя 1 час, 21 минута, 43 секунды (27.01.2009 - 19:44) Revan написал(а):
Не знаю в чём проблема там у тебя но лично у меня всё отлично работает

Спустя 11 минут, 48 секунд (27.01.2009 - 19:56) kyryll написал(а):
session_start() определяется до вывода какой-либо инфо в браузер - это раз.
Во вторых данные полученные из формы нужно проверять. И последнее - научись делать правильное форматирование, твой код вообще не читаем с первого взгляда!

Спустя 8 минут, 35 секунд (27.01.2009 - 20:05) lawbreaker написал(а):
ок сори! Просто notepad++ так записеут!
так где ошыбка?

Спустя 15 минут, 12 секунд (27.01.2009 - 20:20) kyryll написал(а):
Цитата (lawbreaker @ 27.01.2009 - 17:05)
ок сори! Просто notepad++ так записеут!
так где ошыбка?

Определи session_start() в самой первой строке. Не присваивай $s=session_start(); Пользуйся обычной переменной $ind=1; if($ind){...} !!!!
Ведь переменную сессии ты не удаляешь! Присвоив один раз, она уже есть!
Использую сессию только для опознавания юзера (знаешь, что он в аккаунте)!

Да! В догонку. Не используй для открытия файла параметр "a" (дописывание в конец файла). Или делай корректную обработку такого файла.

Спустя 57 минут, 35 секунд (27.01.2009 - 21:17) lawbreaker написал(а):
а какую тогда функцыю брать? заместь "а" ?? biggrin.gif

Спустя 2 часа, 21 минута, 28 секунд (27.01.2009 - 23:39) kyryll написал(а):
Цитата (lawbreaker @ 27.01.2009 - 18:17)
а какую тогда функцыю брать? заместь "а" ?? biggrin.gif

Делаешь "w". А файл перед этим считываешь, если нужно форматирушь, как тебе нужно. Дописываешь нужную тебе информацию и сохраняешь. А если открываешь через "a", то тогда нужно знать, где будет находиться указатель файла и куда именно тебе нужно дописать.

Спустя 48 минут, 4 секунды (28.01.2009 - 00:27) Guest написал(а):
Цитата (kyryll @ 27.01.2009 - 20:39)
А если открываешь через "a", то тогда нужно знать, где будет находиться указатель файла и куда именно тебе нужно дописать.

режим 'a' - Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.

Уважаемый Кирилл. Вы пытаетесь "лечить" ребенка который и так запутался во всем этом "безобразии" разных значков цифр и непонятных буковок, а вы своими "познаниями" его еще больше "уводите" от . Вам бы обоим не помешало бы еще раз перечитать это http://php.ru/manual/function.fopen.html
Хотя лоубрикеру это не поможет ибо сказано им здесь - http://phpforum.ru/index.php?showtopic=155...t=0&#entry68004
Цитата ("lawbreaker")
бо ямного мануалов читаю ничего не приносит!


Спустя 8 минут, 44 секунды (28.01.2009 - 00:36) twin написал(а):
Вообще, и а и w штуки довольно прихотливые, особенно без блокировки. С ними очень аккуратно надо. Если php пятерка, то лучше file_put_contents() пользовать.

Спустя 1 день, 22 часа, 12 минут, 20 секунд (29.01.2009 - 22:48) kyryll написал(а):
Цитата (Guest @ 27.01.2009 - 21:27)
Цитата (kyryll @ 27.01.2009 - 20:39)
А если открываешь через "a", то тогда нужно знать, где будет находиться указатель файла и куда именно тебе нужно дописать.

режим 'a' - Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.

Уважаемый Кирилл. Вы пытаетесь "лечить" ребенка который и так запутался во всем этом "безобразии" разных значков цифр и непонятных буковок, а вы своими "познаниями" его еще больше "уводите" от . Вам бы обоим не помешало бы еще раз перечитать это http://php.ru/manual/function.fopen.html
Хотя лоубрикеру это не поможет ибо сказано им здесь - http://phpforum.ru/index.php?showtopic=155...5533;entry68004
Цитата ("lawbreaker")
бо ямного мануалов читаю ничего не приносит!

Был записан в файл текст: "Вася молодец"
Нужно дописать текст: "И удалец!"

Теперь суть проблемы: конец файла может быть сразу после "молодец", может быть после знака пробел, а может быть на новой строке. Во всех случаях результат разный. Поэтому нужно четко знать, как у нас в предыдущем записывался файл. Поэтому, уважаемый гость, я рад, что вы можете залезть в help и почитать описание, да вот только этого мало для понимания сути проблемы. Поэтому не стоит меня лечить.

А вообще работа с записью и чтением в файлы - это зло. Нужно использовать MySQL. Проблем будет в разы меньше!

Спустя 18 минут, 37 секунд (29.01.2009 - 23:07) twin написал(а):
Цитата
А вообще работа с записью и чтением в файлы - это зло. Нужно использовать MySQL. Проблем будет в разы меньше!
Это звучит примерно так:
Цитата
А вообще, работать лопатой - это зло. Нужно пользовать эксковатор.

Ямку цветочек на даче посадить, тоже экскаватор вызывать? Нужно просто оптимально использовать имеющиеся в арсенале средства. Каждое для своей задачи.

Спустя 20 минут, 37 секунд (29.01.2009 - 23:27) kyryll написал(а):
Цитата (twin @ 29.01.2009 - 20:07)
Цитата
А вообще работа с записью и чтением в файлы - это зло. Нужно использовать MySQL. Проблем будет в разы меньше!
Это звучит примерно так:
Цитата
А вообще, работать лопатой - это зло. Нужно пользовать эксковатор.

Ямку цветочек на даче посадить, тоже экскаватор вызывать? Нужно просто оптимально использовать имеющиеся в арсенале средства. Каждое для своей задачи.

biggrin.gif Согласен. Если просто хранить настройки, то это не проблема. А вот если организовывать форум или доску объявлений - это уже лажа.

Но, как показывает опыт, постоянная работа с записью и чтением в файлы рано или поздно приводит к каким-то глюкам. А "чинить" потом исковерканный файл, ой как тяжело.


_____________
Я Андрей и мне 14 лет :)
И ни как не дождусь когда HardWoman меня удалит
Быстрый ответ:

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