|
|
|
| есть Фаил, в котором есть строки, и есть просто файлы но уже в другой дериктории!
Возможно ли одной кнопкой удалить нужную строку и 2 файла?
Есть 2 скрипта которые это делают! Вот только не могу их связать воедино...
1) удоление строки в файле:
<?
$url="data/chat_d.php";
if (!empty($_GET['name']))
{
//$name2del = preg_replace("#[^\w ]#", "", $_GET['name']);
$name2del = $_GET['name'];
$file = file($url);
foreach ($file as $key => $str)
{
@list(,$name) = explode('|', $str);
if ($name == $name2del)
unset($file[$key]);
}
$fd = fopen($url, "w");
if($fd)
{
fwrite($fd,implode("",$file));
fclose($fd);
}
}
if (filesize($url) > 0)
{
$data_massiv=file($url);
sort($data_massiv);
for($i=0;$i<sizeof($data_massiv);$i++)
{
if(substr($data_massiv[$i], 0, 1)=="#")
{
$temp=explode("|",$data_massiv[$i]);
if(trim($temp[3])=="guest")
{
$temp[3]="<font color=#17A818><b>Гость</b></font>";
}
if(trim($temp[3])=="master")
{
$temp[3]="<font color=#CF0F18><b>Админ</b></font>";
}
echo "<font size=3 color=#336699><b><a href=infa.php?name=$temp[1]>"
.$temp[1]."</a></b></font> имеет статус ".$temp[3].
"<input type=button onClick=document.location.href='"
.$_SERVER['PHP_SELF']."?name=$temp[1]' value='Убить $temp[1]'><br>";
}
}
}
?>
2) Удаление файла:
<?php
foreach ( glob ( "data/user/$name*.*" ) as $filename )
{
$files=filesize($filename);
$filed=date ( "d-m-Y H:i:s" , filemtime ( $filename ));
echo " <form enctype='multipart/form-data' action='kickusers.php' method='post'>
<input type='hidden' name='filename' value='$filename'>
<input name='delpict' type='submit' value='Удалить'>$filename
</form>" ;
}
?>
3) переход после удаления файла:
<?php
if (isset($delpict) and $delpict=="Удалить") {
echo "Удален файл: ".$filename;
unlink ($filename);
unset($delpict);
exit;
}
?>
И как это всё, можно связать в одну кнопку?
P.S. - Я новичёк в пхп.... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(29.09.2006 в 03:22)
| | Обязательно нужно нажимать на кнопку, чтобы удалить файл?
если нет, то можно поступить примерно так:
* * * * *
if($fd)
{
fwrite($fd,implode("",$file));
fclose($fd);
}
foreach ( glob ( "data/user/$name2del*.*" ) as $filename )
{
unlink($filename);
}
}
* * * * *
|
Только имя чела и начало имени файла должны совпадать ... регистрозависимо ... | |
|
|
|
|
|
|
|
для: kasmanaft
(29.09.2006 в 06:36)
| | ну вот так выглядит текстовый фаил:
<?php
#|AVTORITET|ce9e8dc8a|guest
#|Rus|6f2268bd1|guest
#|111|b59c67bf1|guest
#|rolex|b59c67bf1|guest
#|sef0491|3c1f1428c|guest
#|Roksi|fbade9e36|guest
#|vadim|1225483c9|guest
?>
А так называются файлы:
AVTORITET_cnf.php
AVTORITET_prv.php
Rus_cnf.php
Rus_prv.php
...............
Ну и так далее...
Вот допустим надо удалить одновременно строчку и два таких файла:
#|AVTORITET|ce9e8dc8a|guest
AVTORITET_cnf.php
AVTORITET_prv.php | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(29.09.2006 в 12:49)
| | (дубль) | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(29.09.2006 в 12:49)
| | Имеется ввиду, что если в первом файле чела зовут Rus, то и в
названии этих двух файлов тоже должно быть Rus, а не rus, RUS и т.д. | |
|
|
|
|
|
|
|
для: kasmanaft
(29.09.2006 в 14:02)
| | Виноват, описался.... так оно и есть - какое имя, такое и первоночальне название файла!!! | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(29.09.2006 в 20:15)
| | :)
Тогда должно работать...
* * * * *
if($fd)
{
fwrite($fd,implode("",$file));
fclose($fd);
}
foreach ( glob ( "data/user/$name2del*.*" ) as $filename )
{
unlink($filename);
}
}
* * * * *
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(29.09.2006 в 20:24)
| | ...я стесьняюсь спросить.... а это в первый фаил вставлять или во второй? | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(29.09.2006 в 20:55)
| | Это в тот скрипт вставлять, который мы получили в теме "Как вывести по алфавиту содержимое файла" ... где-то вначале можно найти похожий кусоук...
При нажатии на кнопку "убить ..." будет удаляться строка из файла и 2 файла, в начале имени которых будет имя пользователя, которого убиваем. (вернее даже не 2 файла, а все, где в начале есть его имя - конечно, лежащие в папке data/user/ )
То есть мы обойдемся одним файлом ... так сойдет, или нужно задействовать второй? | |
|
|
|
|
|
|
|
для: kasmanaft
(30.09.2006 в 06:42)
| | Вот это да!!!!=)))) Суппер!!! Всё работает! Спасибо большое! Понравился мне этот форум! Буду всегда с вами!!!
Огромное Вам спасибо, kasmanaft !!! | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(30.09.2006 в 14:42)
| | пожалуста :)
зы: если попадется несколько похожих ников например Alex и Alex_Sidneff, то при удалении первого, удалятся файлы относящиеся ко второму пользователю ... (а если первого пользователя будут звать "A", то вообще страшно представить =)) по этому, если известно полное имя файла, лучше удалять именно его, а не так, как сейчас ...
* * * * *
if($fd)
{
fwrite($fd,implode("",$file));
fclose($fd);
}
unlink ( "data/user/".$name2del."_cnf.php" );
unlink ( "data/user/".$name2del."_prv.php" );
}
* * * * *
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(30.09.2006 в 17:11)
| | С этим сккриптом вообще ничего не выводит.....
И кстате по поводу защиты! не могу приделать... когда нажимаеш убить, он переходит на страницу ввода пароля. когда ввожу пароль имя торчит и ничего не удаляет..... как можно защитить и при этом удалять.... вообще не врубаюсь....
Я вот подумал, может можно зделать через <form action=..........
И так сказать активизировать другую страницу? может так? | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(30.09.2006 в 20:16)
| | В смысле не выводит?
>когда нажимаеш убить, он переходит на страницу ввода пароля. когда ввожу пароль
>имя торчит и ничего не удаляет.....
Поподробней пожалуста :) .. как он переходит ? | |
|
|
|
|
|
|
|
для: kasmanaft
(30.09.2006 в 22:57)
| | После удаления он переходит как бы на страницу по такой ссылке:
ЕСЛИ УДАЛЯЕМ ИМЯ Dmitrisss ТО ОН ПЕРЕХОДИТ ВОТ ТАК:
http://МОЙ_САЙТ/admin.php?name=Dmitrisss
а ОН ДОЛЖЕН ПРОПИСЫВАТЬ
http://МОЙ_САЙТ/admin.php?pswrd=пароль
вот... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(30.09.2006 в 23:22)
| | Можно объединить ...
http://МОЙ_САЙТ/admin.php?pswrd=пароль&name=Dmitrisss
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(01.10.2006 в 00:08)
| | Вы гений!!!!!!!! Спасибо! Всё работает!!!!! Суппер!!! | |
|
|
|