[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна ваша помощь!
Dyec
Просьба не закрывать тему, сижу с телефона, очень нужна ваша помощь.Здраствуйте. Я конечно не совсем новичок, но все же у меня терпение кончилось 3 дня голову ломаю. Просьба прочесть и помочь. Вобщем проблема такая: У меня движок на файлах. Там есть как обычно простенькая почта. Так вот, я на днях сделал кнопку [жалоба] все супер написал, но одна проблема, вместо того чтобы копировалось любое сообщение, копируеться самое первое по счету. Код щас напишу. Вообщем нажимаю я на любое сообщение [Жалоба] в ссылке храниться значение id например ?id=5. Далее идет перенапровление на другой файл. Код:
$id = filtеr($_GЕТ['id'];//получаем номер сообщения. Фильтруем если пусто, выдает ошибку. Если есть цифра то: 
$inbox_f = @file('../../data/inbox/'.$login.'.php');//открываем почту юзера
$inbox_count = count($inbox_f);//считаем
for($i=2; $i < $inbox_count -2; $i++)//запускаем цикл
{
$inbox[] = $inbox_f[$i];
}
$inbox_f_count = count($inbox);//считаем
for($i=0; $i < $inbox_f_count; $i++)//цикл
{
if($i != $id)//ищем сравнение цифры, если нашлось то
{
$mes_to_file .= trim($inbox[$i])."\r\n" ;
}
}

$mes_to_file = trim($mes_to_file);
if(!empty($mes_to_file))//если есть что то, то
{
$ms = explode('|', $mes_to_file);//передаем информацию, Дата, от кого, сообщение
}

дальше идет код на запись в файл. У меня все прекрасно почти пишет, но текст сообщения копируеться только первое сообщение. Пример: в файле файл.рhр <?рhр /* сообщение1 сообщение2 сообщение3 */ ?> я нажмимаю жалобу скажим на 2 или 3, но копируеться 1 . ПОЖАЛУЙСТА ПОМОГИТЕ.



Спустя 29 минут, 9 секунд (16.11.2011 - 12:18) TranceIT написал(а):
Зайдитескомпьютераинормальноозвучтепроблемувкоденевозможноразобратьсямасломасленное

Спустя 13 минут (16.11.2011 - 12:31) YVSIK написал(а):
biggrin.gif TranceIT зато по русски казал !! +) зачет !!

user posted image

Спустя 45 минут, 34 секунды (16.11.2011 - 13:16) Dyec написал(а):
Ну так кто нибудь поможет? Извените, но я с мобилы сижу, и wар сайт делаю с мобилы. КОМПА НЕТ. Сорри.:-(

Спустя 32 минуты, 9 секунд (16.11.2011 - 13:49) inpost написал(а):
Поэтому трудно было нормальную тему дать теме?
Как ты думаешь, Нужна помощь и помогите - не является содержанием АБСОЛЮТНО ВСЕХ ТЕМ НА ФОРУМЕ?
И надпись на главной странице:
Давайте вменяемые названия вашим темам.
За названия тем: Помагите 3 сутки не сплю!! и им подобные буду раздавать баны, а сами темы закрывать.

Спустя 2 минуты, 22 секунды (16.11.2011 - 13:51) inpost написал(а):
Твой код отформатировал, и в первой строчке уже ошибка, отсутствует скобка!!!

Спустя 9 минут, 45 секунд (16.11.2011 - 14:01) Dуес написал(а):
Скобку забыл дописать сюда, а в реале она есть в скрипте, иначебы я увидел бы фатальную ошибку. Спасибо модератор, за то что отредактировал.:-) Просто сюда я пишу в первый раз, с мобилы неудобно по wеb сайтам лазить.smile.gif У вас на форуме поддерживаеться [соdе]код[/соdе] ? А то в панеле вв кодов не разбириха(изображения выключены).

Спустя 1 минута, 17 секунд (16.11.2011 - 14:02) inpost написал(а):
[ php] [ /php] - без пробелов.

Ну так надо было кое-как копировать код, а не писать вручную.

А так я ничего не понял по коду, что куда копируется, вообще не понятно ничего, лично мне...

Спустя 10 минут, 54 секунды (16.11.2011 - 14:13) Dyec написал(а):
Спасибо, буду знать теперь.:-)



Спустя 10 часов, 19 минут, 47 секунд Dyec написал(а):
Ну так кто поожет по коду? Что не так? Пожалуйста.



Спустя 1 день, 9 часов, 7 минут, 28 секунд Dуес написал(а):
Мда....

Спустя 1 день, 10 часов, 8 минут, 32 секунды (18.11.2011 - 00:21) inpost написал(а):
Dуес
ну я же сказал, мне ничего не понятно. А это значит, что для меня мог бы более "внятно" расписать что не так и что не то.
Если бы другие поняли тебя, то уже давным давно ответили.

Спустя 12 часов, 47 минут, 22 секунды (18.11.2011 - 13:09) Dyec написал(а):
Там же написано теперь понятно что:
в файле dаtа/$login.рhр
такой код:

<?php
/*
Сообщение1|дата|откого
Сообщение2|дата|откого
Сообщение3|дата|откого
*/

?>

Вместо того чтобы копировалось любое, копируеться первое
"Сообщение1|дата|откого"
В переменной $id номер сообщения.
Функция
if($i !=$id)

должна найти номер сообщения по id и сравнить его, далее идет код на копирование в другой файл. Что не ясно? Код еще раз глянь вверфу, добрый модер его отредактировал.



Спустя 11 часов, 55 минут, 9 секунд Dyec написал(а):
Мда, что за программисты пошли? Лень помочь, чтоб сами в такую подобную ситуацию попали.:-(

Спустя 22 часа, 20 минут, 41 секунда (19.11.2011 - 11:29) inpost написал(а):
Dyec
Мы не попадём по той причине, что мы дадим ВНЯТНЫЙ вопрос, и нам так же внятно помогут smile.gif
У тебя нет копирования данных, никаких copy не используется, хотя ты говоришь "копировалось".
Используй DATA BASE MySQL, и там делай выборку сообщений, а не устраивай себе геморой с хранением данных на файлах. Для этого MySQL люди и придумали, кстати.

Спустя 4 часа, 50 минут, 29 секунд (19.11.2011 - 16:20) Dyec написал(а):
У меня весь движок на файлах, не каких баз.
Вот тебе в крации:
файл - lоgin.рhр
в нем 3 сообщения:

<?рhр
Сообщение1|дата|от_кого
Сообщение2|дата|от_кого
Сообщение3|дата|от_кого
?>

Мне надо чтоб из этого файла копировалось ЛЮБОЕ СООБЩЕНИЕ в файл соmрlаtеs.рhр, но копируеться самоя первая строка "Сообщение1|дата|от_кого" , код в самом вверху, вот скажи что не так?

Спустя 7 минут, 47 секунд (19.11.2011 - 16:28) Игорь_Vasinsky написал(а):
$messages = file_get_contents("Путь/твой файл с сообщениями");

//Перезапишет весь файл назначения
if(file_put_contents("куда пишем", $messages))
echo "Не записалось";

//а если так, то допишет в конец

if(file_put_contents("куда пишем", $messages, FILE_APPEND))
echo "Не записалось";



и на будушее - свой код показываейте



Спустя 47 секунд Игорь_Vasinsky написал(а):
или те любое случайное?

Спустя 38 минут, 14 секунд (19.11.2011 - 17:06) inpost написал(а):
Dyec
Именно поэтому я и говорю, делай не на файлах, а на БД.

Спустя 28 минут, 9 секунд (19.11.2011 - 17:34) Игорь_Vasinsky написал(а):
да погоди, с файлами тоже можно работать, да и не всегда есть БД.
просто надо уметь их готовить.

Ведь скока счастья принесли нам file_get_contents() и file_put_contents(), а будет новый php - будут новые пряники.

Спустя 4 минуты, 53 секунды (19.11.2011 - 17:39) inpost написал(а):
WHERE `id` = 7
И не парься. smile.gif А тут парсить строку надо, или по крайней мере в цикле перебирать до нужной.

Спустя 18 часов, 30 минут, 27 секунд (20.11.2011 - 12:09) Dуес написал(а):
Я так и не понял где писать WHЕRЕ'id'=7 и filе_gеt_соntеnts яж весь основной код написал в начале темы, тот код работал на удаление нужной строки из файла, а вот копировать не получаеться. В $id передаеться номер строки(например: $id=5), а в цикле должно найти и сравнить этот номер функцией if($i !=$id) щас побольше код скопирую.

Спустя 10 минут, 42 секунды (20.11.2011 - 12:20) Dуес написал(а):
Вот часть кода подробнее пишу еще раз.


$inbox_f = @file('../../data/inbox/'.$login.'.php');//открываем почту юзера
$inbox_count = count($inbox_f);//считаем
for($i=2; $i < $inbox_count -2; $i++)//запускаем цикл
{
$inbox[] = $inbox_f[$i];//считываем
}
$inbox_f_count = count($inbox);//считаем
for($i=0; $i < $inbox_f_count; $i++)//запускаем второй цикл
{
if($i != $id)//сравниваем номер строки например $i !=5
{
$mes_to_file .= trim($inbox[$i])."\r\n" ;//тут берем строку нужную если нашли
}
}

$mes_to_file = trim($mes_to_file);//тут тож самое паходу

if(!empty($mes_to_file))//если есть письмо то.
{
$ms = explode('|', $mes_to_file);//разделяем его на "Дата|логин|сообщение" и передаем в переменную $ms
}
else
{
$mes_to_file = '';//если ненашлось, то ничего не делаем.
}

//далее идет код на запись в другой файл, но копируеться первое по списку сообщение вместо любого.

Что не так?

Спустя 8 часов, 27 минут, 2 секунды (20.11.2011 - 20:47) inpost написал(а):
Dуес
Разберись с работой с БД, проблемы все уйдут. Ты же хочешь учиться программировать, или как?

Спустя 56 минут, 57 секунд (20.11.2011 - 21:44) Ramzil_Nixon написал(а):
Dуес, мой тебе совет, перейди на Базу данных, чем с файлами мучаться

Спустя 1 час, 34 минуты, 53 секунды (20.11.2011 - 23:19) Dуес написал(а):
Мне так будут советы довать на базу перейти? Мне и на файлах вполне устраивает, а раз вы не умеете работать с файлами, то какой из вас Программист? Программист должен и файлы знать и как с ними обращаться. Я то самоучка, с базой пользовался, не понравилась, геморой один. И с мобилы не в кайф лазить в сРаnеl и РНРмуАdmin. Так что если вы добрые люди и программисты, то поможете разобраться.

Спустя 35 минут, 11 секунд (20.11.2011 - 23:54) Xakep написал(а):
Ну раз уж человек работает с файлами то значит ему так удобно и он сам этого хочет и это может даже совсем не из за того что он не знает MySQL. Раз уж он просит о помощи с файлами то нужно помощь. Ведь для этого создан этот форум, чтоб людям помогать?

Dуес, лично я тебе ниче не обещаю, с файлами работал очень давно, но попробую щас разобраться.

Кстати, есть целый форум который написан на PHP и работает без БД. Все данные он хранит в файлах(!) www.exbb.org

Спустя 17 минут, 7 секунд (21.11.2011 - 00:11) Placido написал(а):
1. Убери из файла lоgin.рhр теги

Цитата
Сообщение1|дата|от_кого
Сообщение2|дата|от_кого
Сообщение3|дата|от_кого


2. Зачем столько кода?

$id = 2;//например, ищем вторую запись
$output = 'Нет такой записи';
$inbox_f = file('../../data/inbox/'.$login.'.php');
if ($id < count($inbox_f))
$output = $inbox_f[$id - 1];
echo $output;//Сообщение2|дата|от_кого

Спустя 12 минут, 2 секунды (21.11.2011 - 00:23) Xakep написал(а):

<?php
$id = "2"; // например нам нужна вторая строка
$line = $id-1; // вычитываем -1
$file = file("../../data/inbox/'.$login.'.php"); // почта юзера
$id_line = $file[$line]; // нашли нужную строку
// далее уже твой код разбивки строки на Сообщение, Дата, От кого

?>


И почитай вот это. Тебе это будет полезно.

Спустя 3 минуты, 59 секунд (21.11.2011 - 00:27) Ramzil_Nixon написал(а):
Несколько раз перечитал твой код, так и не понял что ты там делаешь

Спустя 2 минуты, 19 секунд (21.11.2011 - 00:30) Ramzil_Nixon написал(а):
Цитата (Dуес @ 20.11.2011 - 20:19)
Мне так будут советы довать на базу перейти? Мне и на файлах вполне устраивает, а раз вы не умеете работать с файлами, то какой из вас Программист? Программист должен и файлы знать и как с ними обращаться. Я то самоучка, с базой пользовался, не понравилась, геморой один. И с мобилы не в кайф лазить в сРаnеl и РНРмуАdmin. Так что если вы добрые люди и программисты, то поможете разобраться.


Эй, я тоже с файлами работал, потом на БД перешел, как ты там говоришь? с базой пользовался, не понравилась, геморой один.? вот ты тут очень сильно заблуждаешься.

Спустя 3 минуты, 53 секунды (21.11.2011 - 00:34) Xakep написал(а):
у него много лишнего в коде.....и не нужного

Спустя 2 минуты, 23 секунды (21.11.2011 - 00:36) Ramzil_Nixon написал(а):
Xakep, да не говори, что он там считает, я так и не понял

Спустя 36 секунд (21.11.2011 - 00:37) Xakep написал(а):
Цитата
как ты там говоришь? с базой пользовался, не понравилась, геморой один.? вот ты тут очень сильно заблуждаешься.


Ну а по большому счету кому как легче. wink.gif Но я сам все равно за БД biggrin.gif

Спустя 3 минуты, 25 секунд (21.11.2011 - 00:40) Ramzil_Nixon написал(а):
Цитата (Xakep @ 20.11.2011 - 21:37)
Ну а по большому счету кому как легче.Но я сам все равно за БД


Я тоже biggrin.gif БД легче)

Спустя 2 минуты, 25 секунд (21.11.2011 - 00:42) Xakep написал(а):
Цитата
БД легче)


Да и по безопасности в плюсе wink.gif

Спустя 5 часов, 33 минуты, 23 секунды (21.11.2011 - 06:16) inpost написал(а):
Ты бы хоть изучил, как строятся БД, прежде чем свою изобретать...
Тебе не удобно лазить в PMA? А кто заставляет? Прям из скрипта всё пишешь, раз такой умный.
На файлах я умею работать, но у тебя там тихий ужас, и то, что можно было бы написать в одну строчку, я убью пол дня, чтобы объяснить по полочкам, что ты не так делаешь, и как правильно надо с файловой базой работать. Как минимум тебе надо понимать, что делают такие функции как file, while, foreach, explode wink.gif

Что такое MySQL? Это созданная БД на ФАЙЛАХ, которая за тебя отвечает за нормальное построение, структурирование. Тебе достаточно лишь запросы в неё писать не ломая голову.
Нужна упрощенная форма БД: посмотри в сторону SQLite.

И самое-самое-самое главное, форум создан, чтобы помогать новичкам ПОЛЕЗНЫМИ И НУЖНЫМИ советами. Если ты пытаешься из задницы достать пирожок - видимо ты делаешь что-то неправильно, потому что пирожки находятся сейчас в духовке...

Спустя 13 часов, 32 минуты, 16 секунд (21.11.2011 - 19:48) Dуес написал(а):
Хаkер, папробывал твой код, и опять тажа фигня, копируеться первое сообщение.:-( Щас протесть вариант Рlасidо . Спасибо что варианты пишите.smile.gif

Спустя 2 часа, 53 минуты, 54 секунды (21.11.2011 - 22:42) bodja написал(а):
Dуес
Фигасе :blink: ,а зачем столько текста ?

$f=file('./file.txt');
list($msg,$dat,$from)=explode("|",$f[$id]);


Все.

Спустя 13 часов, 27 минут, 1 секунда (22.11.2011 - 12:09) Xakep написал(а):
Dуес, незнаю че у тебя там не работает но у меня и как я понял у всех остальных все норм работает..смотри свою переменную $id тогда..че она передает? проблема в ней

Спустя 4 часа, 53 минуты, 32 секунды (22.11.2011 - 17:02) Dуес написал(а):
Я тот код скопировал для удаления нужной строки, в почте идет цикл и нумероется цифрами в $id передаеться цифра например 7, скрипт обрабатывает и удаляет хорошо, вот и стого кода я хотел сделать копирование строки, а копируеться первое сообщение. Сегодня попробую ваши варианты, если что напишу.smile.gif Спасибо.



Спустя 4 минуты Dуес написал(а):
Пробывал вариант от Рlасidо, но на 3 строки отстает. Тоесть например:
Сообщение1
Сообщение2
Сообщение3
Сообщение4
Сообщение5

жму я на Сообщение5, а копируеться Сообщение3. Пробывал вместо -1 на -3, то вообще пустота.



Спустя 29 минут, 34 секунды Dуес написал(а):
bоdjа, ты внимательнее читай что надо из файла .рhр извлечь, а ты пишешь .tхt, sad.gif

Спустя 1 час, 14 минут, 2 секунды (22.11.2011 - 18:17) Xakep написал(а):
эм..а че у тебя обычный текст хранится в файле .php?
т.е. твое вот это:


Сообщение1|дата|откого
Сообщение2|дата|откого
Сообщение3|дата|откого


это и есть все содержимое файла *.php ?
незнаю как другие думают по этому поводу но помоему такое содержимое более актуальным будет хранить в обычном .txt

Спустя 52 минуты, 36 секунд (22.11.2011 - 19:09) Placido написал(а):
Держи код.
$id = 2;//например, ищем вторую запись
$output = 'Нет такой записи';
$inbox_f = file('test.txt');
if ($id <= count($inbox_f) and $id > 0)
$output = $inbox_f[$id-1];
echo $output;//Сообщение2|дата|от_кого

Держи файл test.txt.

Сообщение1|дата|от_кого
Сообщение2|дата|от_кого
Сообщение3|дата|от_кого
Сообщение4|дата|от_кого
Сообщение5|дата|от_кого

Пробуй.
Если не получится, значит у тебя в компьютере живет шайтан.

Спустя 10 минут, 46 секунд (22.11.2011 - 19:20) bodja написал(а):
Цитата
bоdjа, ты внимательнее читай что надо из файла .рhр извлечь, а ты пишешь .tхt,


Dуес
Кто то тут недавно кричал ,что умеет с файлами работать. <_<

<?php
$id=1;
$f=file('./file.php');
list($msg,$dat,$from)=explode("|",$f[$id]);
echo $msg;
?>

Спустя 17 часов, 10 минут, 23 секунды (23.11.2011 - 12:30) Dуес написал(а):
Мда, вы вообще тему мою не читали или читали, но не внимательно.
Почта храниться в файлах .рhр, а не в .tхt, т.к. любой мог бы читать чужие лс(личные сообщения).
А в файле .рhр
такой код:

<?php
/*
Сообщение1|Дата|Откого
Сообщение2|Дата|Откого
Сообщение3|Дата|Откого
*/

?>


Вот.

Спустя 13 минут, 36 секунд (23.11.2011 - 12:44) inpost написал(а):
Dуес
Тебе уже и код дали, а ты всё равно на своём стоишь smile.gif

Спустя 8 минут, 27 секунд (23.11.2011 - 12:52) bodja написал(а):
Яка невдача biggrin.gif
Караул!!! две лишних строчки в файле!!! biggrin.gif biggrin.gif biggrin.gif

<?php
$id=1;
$f=file('./file.php');
list($msg,$dat,$from)=explode("|",$f[$id+2]);
echo $msg;
?>

Спустя 22 часа, 16 минут, 22 секунды (24.11.2011 - 11:09) Dуес написал(а):
bоdjа, спасибо большое, теперь все работает как часы.smile.gif
Быстрый ответ:

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