Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Как удалять строки?
ТвойWeb » WebMaster класс » PHP/Perl » Как удалять строки?

Страниц (3): [1] 2 3 »
 

1. victor - 18 Марта, 2005 - 08:46:45 - перейти к сообщению
Чего тут не хватает
CODE:

<?php
if($del == "del&mail")
{
if ($id == "$del"){
$id--;
$file = file("/usr/www/region45/cms/htdocs/scripts/mail.txt"); //Считываем файл в массив
for($i=0;$i<sizeof($file);$i++){
if($i==$id) unset($file[$i]); //удаляет элемент из массива
}
$fp=fopen("/usr/www/region45/cms/htdocs/scripts/mail.txt","w"); //Открываем наш файл и удаляеем все из него
fputs($fp,implode("$id","$file")); //Переписываем наш файл с новыми данными
fclose($fp); //Закрываем файл
}
}
?>

Почему не хочет выполняться.
Cылка на нее вот такая:
CODE:

http://cms.region45.ru/scripts/deletmail.php?action=del&mail=fonarik@zauralmedia.ru
2. Ray Wen - 18 Марта, 2005 - 10:02:19 - перейти к сообщению
victor
Я не совсем понял от куда береться переменная $del и не совсем понимаю сравнения $del == "del&mail"... и это только начало, а ведь дальше тоже не все ясно.
3. TvoyWeb - 18 Марта, 2005 - 16:39:53 - перейти к сообщению
victor
Извини, но у меня создается впечатление, что ты делаешь все бездумно или не понимая что делаешь.
Почитай о передаче параметров методами POST и GET
Вот твой код который должен работать, если я правильно понял твой пост:
CODE:
УПС ..... СТОП...... ЕСТЬ ОШИБКА......
\n\n(Добавление)
victor
В каком формате записаны данные в файле mail.txt ? Покажи часть текста в этом файле.
4. ETC - 19 Марта, 2005 - 02:01:39 - перейти к сообщению
Что-то я не понял ничего из этого кода, лучше бы, конечно, mail.txt показать. Я так думаю, что наверняка там всё записано построчно, а это проще.
5. TvoyWeb - 19 Марта, 2005 - 03:33:54 - перейти к сообщению
ETC
Да он напутал с параметрами GET.
Я исправил код, но помимо параметров, там еще напутано с чтением и записью в файл.
Поэтому, victor давай-ка покажи как записаны данные в mail.txt .
6. victor - 21 Марта, 2005 - 02:27:49 - перейти к сообщению
Естественно все записываеться построчно
вот внутренности файла txt
CODE:

fonarik@zauralmedia.ru
sobesednict@list.ru

А где я напутал, я же беру построчно из файла. Сравниваю переменные и переписываю файл с нуля.
А переменную $del я взял для удобства.
7. TvoyWeb - 21 Марта, 2005 - 09:35:31 - перейти к сообщению
victor пишет:
А где я напутал, я же беру построчно из файла.

А ты посмотри свой код. Что ты с чем сравниваешь?
Вот держи код который должен у тебя нормально работать
CODE:
if(isset($_GET['action']) && $_GET['action'] == "del"){//если существует в запросе параметр action
//и этот парметр равен del
if (isset($_GET['mail']) && !empty($_GET['mail'])){//Если в запросе существует параметр mail и он не пустой
$delmail = $_GET['mail']."\r\n"; //Строка для поиска в массиве
$file = file("/usr/www/region45/cms/htdocs/scripts/mail.txt"); //Считываем файл в массив
if ($key = array_search($delmail, $file)){//Если в массиве есть элемент равноый строке поиска $delmail
unset($file[$key]);//То удаляем эту строку
$fp=fopen("/usr/www/region45/cms/htdocs/scripts/mail.txt","w"); //Открываем файл для записи
foreach ($file as $mail){
fwrite($fp,$mail); //Переписываем файл с новыми данными
}
fclose($fp); //Закрываем файл
} else {//Если такого адреса нет в базе выведем ошибку.
echo "<span style=\"font: bold 10pt Arial;color:Red;\">Ошибка!<BR>Такого адреса нет в базе.</span>";
}
} else {//Если в строке запроса не введен e-mail выведен соответсвующую оршибку
echo "<span style=\"font: bold 10pt Arial;color:Red;\">Ошибка!<BR>Не указан E-mail</span>";
}
} else {//Если файл был вызван без GET параметров, перенаправим пользователя на главную страницу сайта
Header("Location:index.php");
}
8. victor - 21 Марта, 2005 - 11:21:48 - перейти к сообщению
Переменная $del&mail содержит строчку об получателе. А у тебя это две переменные.
У меня такой вопрос. Мне код менять:
CODE:

http://cms.region45.ru/scripts/deletmail.php?action=del&mail=fonarik@zauralmedia.ru

fonarik@zauralmedia.ru подставляется автоматически. При помощи переменной $file_array[$i].
Этот код показывает, что адрес удаляется правильный. Адрес получателя.
На самом деле код выглядет так:
CODE:

http://cms.region45.ru/scripts/deletmail.php?action=del&mail=$file_array[$i].

9. TvoyWeb - 21 Марта, 2005 - 17:25:23 - перейти к сообщению
victor
Цитата:
Переменная $del&mail

Где в твоем коде такая переменная?
И потом
Выдержка из мануала по PHP
Цитата:
Правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания

Ты же сейчас использовал недопустимый знак ("&"Подмигивание в имени переменной!!!
Это грубейшая ошибка!!!
Я уже неоднократно говорил тебе чтобы ты почитал о передаче данных методом GET и POST.
Вот посмотри, твоя ссылка
CODE:
http://cms.region45.ru/scripts/deletmail.php?action=del&mail=fonarik@zauralmedia.ru

Она состоит из двух частей:
1. URL до исполняемого файла http://cms.region45.ru/scripts/deletmail.php
2. GET запрос ?action=del&mail=fonarik@zauralmedia
В свою очередь GET запрос у тебя состоит из двух элементов данных запроса
? - символ разделения URL и запроса
action=del - первый элемент данных запроса
& - разделитель данных в запросе
mail=fonarik@zauralmedia - второй элемент данных запроса
Так какая же переменная
Цитата:
содержит строчку об получателе

Ссылки на отписку от рассылки? Нет не надо, я же писал под твою ссылку.
Цитата:
У меня такой вопрос. Мне код менять:

10. victor - 22 Марта, 2005 - 01:16:11 - перейти к сообщению
TvoyWeb тогда скажи чего нехватает твоему файлу, почему он неможет найти строчку.
CODE:

Ошибка!
Такого адреса нет в базе.

И извини, я просто неправильно задал вопрос. Там я хотел спросить нужно ли указывать метод GET.

Теперь вернемся к нашему файлу. Я его проверил при помощи echo
CODE:

Удаляем sobesednict@list.ru // переменная $delmail
В файле: Array // переменная $file
Ошибка!
Такого адреса нет в базе.

К переменной $delmail притензий нет
А переменная $file так должна писаться? Или должна написать содержимое файла.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0446]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33