|
|
|
| Есть фаил:
<?php
#|AVTORITET|ce9e8dc8a|guest
#|Rus|6f2268bd1|guest
#|111|b59c67bf1|guest
#|rolex|b59c67bf1|guest
#|sef0491|3c1f1428c|guest
#|Roksi|fbade9e36|guest
#|vadim|1225483c9|guest
?>
Вывожу его через скрипт:
<?
$url="data/users/".$name."_cnf.php";
$file=fopen($url, "r");
$data=fread($file, filesize($url));
fclose($file);
$data_massiv=explode("\n",$data);
for($i=0;$i<sizeof($data_massiv);$i++)
{
if(substr($data_massiv[$i], 0, 1)=="#")
{
$temp=explode("|",$data_massiv[$i]);
if($temp[1]=="refresh")
{
$temp[1]="Обновление главного окна (в секундах)";
}
if($temp[1]=="dr")
{
$temp[1]="День Рождения";
}
if($temp[1]=="enter")
{
$temp[1]="Подпись при входе";
}
if($temp[1]=="info")
{
$temp[1]="Дополнительная информация";
}
if($temp[1]=="ignors")
{
$temp[1]="Список игноров";
}
if($temp[1]=="sex")
{
$temp[1]="Пол чатовца";
}
if($temp[1]=="bg")
{
$temp[1]="Подкрашивать сообщения";
}
if($temp[2]=="1")
{
$temp[2]="Да";
}
if($temp[2]=="0")
{
$temp[2]="Нет";
}
if($temp[2]=="m")
{
$temp[2]="Он";
}
if($temp[2]=="w")
{
$temp[2]="Она";
}
if($temp[2]=="u")
{
$temp[2]="Нечто!";
}
if($temp[2]=="")
{
$temp[2]="<font color=#A8B6F7><b>неизвесно</b></font>";
}
if($temp[1]=="foto")
{
$temp[2]="<font color=#A8B6F7><b>Фото!!!</b></font>";
}
echo "<LI><font size=3 ><b>".$temp[1]."</b></font> <b>-</b> <font size=3
color=#336699><b>".$temp[2]."</b></font>";
}
}
?><br>
</td></tr></table>
</body></html>
Получается примерно следующее:
alex_ml_lt имеет статус Гость
qpblpa имеет статус Гость
Ddevil имеет статус Гость
Marfusha имеет статус Гость
Anton2006 имеет статус Гость
belaya_sova имеет статус Гость
AVTORITET имеет статус Гость
Rus имеет статус Гость
111 имеет статус Гость
rolex имеет статус Гость
sef0491 имеет статус Гость
Roksi имеет статус Гость
vadim имеет статус Гость
Вопрос:
как этот фаил (список) выводить по алфавиту?
Если кто знает, подскажите плизз.... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(25.09.2006 в 22:48)
| | Можно сделать примерно следующие
$url="data/users/".$name."_cnf.php";
$data_massiv=file($url);
sort($data_massiv);
for($i=0;$i<sizeof($data_massiv);$i++)
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(25.09.2006 в 23:12)
| | Блин, опять накосячил... не тот скрипт написал...
Вот правельный!
<?
$url="data/chat_db.php";
$file=fopen($url, "r");
$data=fread($file, filesize($url));
fclose($file);
$data_massiv=explode("\n",$data);
for($i=0;$i<sizeof($data_massiv);$i++)
{
if(substr($data_massiv[$i], 0, 1)=="#")
{
$temp=explode("|",$data_massiv[$i]);
if($temp[3]=="guest")
{
$temp[3]="<font color=#17A818><b>Гость</b></font>";
}
if($temp[3]=="master")
{
$temp[3]="<font color=#CF0F18><b>Админ</b></font>";
}
echo "<LI><font size=3 color=#336699><b><a href=infa.php?name=$temp[1]>".$temp[1]."</a></b></font> имеет статус ".$temp[3]." </ol>";
}
}
?> | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(26.09.2006 в 14:01)
| | Но он не выводит по алфавиту.... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(26.09.2006 в 14:01)
| |
.....
$data_massiv=explode("\n",$data);
sort($data_massiv);
for($i=0;$i<sizeof($data_massiv);$i++)
.....
|
| |
|
|
|
|
|
|
|
для: Trianon
(26.09.2006 в 14:13)
| | Вот спасибо!!! Работает! =) | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(26.09.2006 в 14:36)
| | Есть ещё вопрос! А как можно в этом файле, спомощю этого скрипта приделать к каждому имени кнопку с удалением этой строки?
Но, Плюс к этому удаляется не только строка, но ещё и 2 файла?
Это вообще возможно? | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(26.09.2006 в 14:40)
| | Неа, не возможно :)
Как удалить конкретную строку из файла?
Удалить файл можно при помощи unlink | |
|
|
|
|
|
|
|
для: kasmanaft
(26.09.2006 в 16:21)
| | А если я не знаю порядкового номера строки в файле? А знаю только имя до "палки" - "|"?
Пример:
#|vadim|1225483c9|guest
тоесть знаю только "vadim" | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(26.09.2006 в 20:24)
| | Примерно так:
<?
$name2del = 'Rus';
$filename = 'file.txt';
$file = file($filename);
foreach ($file as $key => $str)
{
list(,$name) = explode('|', $str);
if ($name == $name2del)
unset($file[$key]);
}
$fd = fopen($filename, "w");
if($fd)
{
fwrite($fd,implode("",$file));
fclose($fd);
}
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(26.09.2006 в 20:46)
| | Я извеняюсь... но можно по подробнее...
Дапустим есть список имён и их статус:
alex_ml_lt имеет статус Гость
qpblpa имеет статус Гость
Ddevil имеет статус Гость
Marfusha имеет статус Гость
Anton2006 имеет статус Гость
belaya_sova имеет статус Гость
AVTORITET имеет статус Гость
Rus имеет статус Гость
111 имеет статус Гость
rolex имеет статус Гость
sef0491 имеет статус Гость
Roksi имеет статус Гость
vadim имеет статус Гость
в нутри он выглядит так:
<?php
#|AVTORITET|ce9e8dc8a|guest
#|Rus|6f2268bd1|guest
#|111|b59c67bf1|guest
#|rolex|b59c67bf1|guest
#|sef0491|3c1f1428c|guest
#|Roksi|fbade9e36|guest
#|vadim|1225483c9|guest
?>
Дак как можно после каждой выведенной строки поставить кнопку удалить, и это имя и статус удалится? | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(26.09.2006 в 21:33)
| | Имена можно сделать ссылками (или рядом кнопок наставить - не важно ...), через которые методом GET передавать имя, которое нужно удалить из файла ..
примерно так:
<a href='index.php?name=Rus'>Rus</a>
|
И немного изменить скрипт
<?
// $name2del = preg_replace("#[^\w ]#", "", $_GET['name']);
$name2del = $_GET['name'];
$filename = 'file.txt';
$file = file($filename);
* * * * *
?>
|
Если в имени могут быть только цифры и буквы и пробелы, то лучше его обработать рег. выражением ... | |
|
|
|
|
|
|
|
для: kasmanaft
(27.09.2006 в 00:12)
| | Я не понял... а можно весь скрипт? или это сложновато?.... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(27.09.2006 в 20:15)
| | Воть ...
<?
$url="data/chat_db.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 "<LI><font size=3 color=#336699><b><a href="
.$_SERVER['PHP_SELF']."?name=$temp[1]>".$temp[1]."</a></b></font> имеет статус "
.$temp[3]." <input type=button onClick=document.location.href='ds.php?name=$temp[1]'
value='Убить $temp[1]'></ol>";
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(27.09.2006 в 22:59)
| | Вот здесь есть маленький ньюансик! Удаляет, когда нажимешь на имя, а не на кнопку убить.... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(28.09.2006 в 02:04)
| | ой, сорри :)) ... в торопях не тот "href" изменил ...
echo "<LI><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]'></ol>";
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(28.09.2006 в 07:53)
| | А разве нельзя впихнуть в этот скрипт вот эту функцию к примеру(Для удаления не только строки, но и файла)?:
<?php
foreach ( glob ( "data/users/$name*cnf.*" ) as $filename )
{
$files=filesize($filename);
$filed=date ( "d-m-Y H:i:s" , filemtime ( $filename ));
echo ".$filename.";
echo "<br>".$files."<br>" ;
echo "<br>". $filed . "\n" ;
echo "
<form enctype='multipart/form-data' action='delet.php' method='post'>
<input type='hidden' name='filename' value='$filename'>
<input name='delpict' type='submit' value='Удалить'>
</form>
" ;
}
?>
Если это возможно, то как? Я же видел скрипты, которые удаляли не только строчку в файле... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(28.09.2006 в 21:18)
| | Такую громоздкую функцию использовать не зачем, если нужно просто удалить файл (имя которого известно). Для этого можно использовать ф-ю unlink() ... которой в скобках указать имя файла для удаления (в кавычках)
(а для удаления строки из файла ее никак не применить) | |
|
|
|
|
|
|
|
для: kasmanaft
(28.09.2006 в 21:55)
| | Дак а тогда к одной кнопке как то можно приделать? Ведь точно можно!!! | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(28.09.2006 в 22:01)
| | Понимаете, при удалении так сказать юзера, нужно удалить ещё 2 файла... вот например
<?php
foreach ( glob ( "data/user/$name*.*" ) as $filename )
{
$files=filesize($filename);
$filed=date ( "d-m-Y H:i:s" , filemtime ( $filename ));
echo ".$filename.";
echo "<b>Размер в байтах:</b><br>".$files."" ;
echo "" . $filed . "\n" ;
echo "
<form enctype='multipart/form-data' action='delet.php' method='post'>
<input type='hidden' name='filename' value='$filename'>
<input name='delpict' type='submit' value='Удалить'>
</form>
" ;
}
?>
как это можно связать? просто очень хочется.... | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(28.09.2006 в 22:01)
| | Тогда в качестве адреса в кнопке следует передать еще и название файла (имя, номер .. или чего там еще)
document.location.href='".$_SERVER['PHP_SELF']."?name=$temp[1]&filename=XXXX'
Потом в скрипте удалять файл $_GET['filename'] (только нужно бы содержимое переменной проверить, чтобы взломщик не мог удалить того, чего не следовало бы, просто подставив туда имя другого файла) | |
|
|
|
|
|
|
|
для: kasmanaft
(28.09.2006 в 22:06)
| | Хм... действительно.... но можно этот фаил и скриптом опять же защитить...
Но дело не в этом...
Я в этом деле совсем новичёк! И я не совсем ещё доконца понимаю в этом! Так сказать учусь сразу на деле! Хотелось бы понять как это прикрепить...
Вот вы поставили кнопку "Убить $name" а как к этой кнопке приделать функцию удаления? Вы можете подсказать? | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(28.09.2006 в 22:13)
| | А чего удалять нужно? В смысле как определять имя файла, которого нужно удалить? Оно как-то привязано к имени пользователя, которого "убиваем" ? | |
|
|
|
|
|
|
|
для: kasmanaft
(28.09.2006 в 22:31)
| | Так точно! Имя определяется Вот в такой строке:
foreach ( glob ( "data/user/$name*.*" ) as $filename )
тоесть имя файла начинается как $name и продолжает его " * " | |
|
|
|
|
|
|
|
для: Alex_Sidneff
(28.09.2006 в 22:48)
| | <?
$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>";
}
}
}
?>
//Убить
<?php
foreach ( glob ( "data/user/$name*.*" ) as $filename )
{
$files=filesize($filename);
$filed=date ( "d-m-Y H:i:s" , filemtime ( $filename ));
echo ".$filename.";
echo " <form enctype='multipart/form-data' action='delet.php' method='post'>
<input type='hidden' name='filename' value='$filename'>
<input name='delpict' type='submit' value='Удалить'>
</form>" ;
}
?>
Вообщем вот! И это надо как то смешать в одно целое!
Здесь он выводит сначало имена которые удаляются, а потом он выводит файлы, у которых стоит кнопка удалить! и после нажатия на неё, он обращается к следующиму:
<?php
if (isset($delpict) and $delpict=="Удалить") {
echo "Удален файл: ".$filename;
unlink ($filename);
unset($delpict);
exit;
}
?>
Дак может зделать, чтоб он при удалении строки и файла, обращался к другому файлу и прописывал, мол типа Юзер такойто удалён, Фаил такойто удалён!!! | |
|
|
|