Помогите написать скрипт (вывод ссылок)

Печать RSS
495

S
Автор
Землянин
0
Проблема!!! выводится весь текст, не зависемо от переходов на новую строку

Добавлено через 03:53 сек.
      <?php
$text = file("local/fakt.dat");
$top = rand (0,count($text)-1);
$out = explode("|",$text[$top]);
print "$out[1]";
?>
Переделайте этот код для того чтобы он обрезался на задаваемом кол-ве символов и эти "обрезки" были ссылками

Пришелец
0
Как я понимаю, у тебя есть текстовый файл типа:
---------
БЛАБЛАБЛА
БЛАБЛАБЛА
БЛАБЛАБЛА
---------
каждая строка в нем отдельное правило, и тебе нужно выводить ссылку на правило выбранное из файла случайным образом на главную с обрезкой до определенного числа символов.
сслка же в свою очередь должна открыть обработчик выводящий полную версию правила ))

я прав???

Пришелец
0
<?php 
# ###########################
# #  Файл index.php         #
# ###########################

// функция обрезки строки
function text_dl ($text, $dl)
{
	$text = iconv("utf-8", "cp1251", $text);
	if (strlen($text)>$dl)
	{
		$rest = substr($text, 0, $dl);
		$rest = iconv("cp1251", "utf-8", $rest);
		return $rest.'...';
	}
	else
	{
		$rest = iconv("cp1251", "utf-8", $text);
		return $rest;
	}
}

// заносим файл в массив
$file = file("local/fakt.dat");

// проверяем, есть ли текст в базе
if (count($file))
{
	// выбираем произвольную строку
	$line = rand(0, count($file) - 1);
	
	// выводим укороченную до 15 символов ссылку
	print '<a href="/play.php?line='.$line.'">'.text_dl($file[ $line ], 15).'</a>';
}
else
{
	// сообщение пустой базы
	print 'База правил пуста';
}
?>

<?php
# ###########################
# #  Файл play.php          #
# ###########################

// заносим файл в массив
$file = file("local/fakt.dat");

// проверяем, есть ли текст в базе
if (count($file))
{
	// проверяем, является ли значение переменной
	// указывающей номер строки в файое числовым
	if (preg_match('/^[0-9]/i', $_GET['line']))
	{
		// проверяем на существование строки
		if ($_GET['line'] < count($file))
		{
	  		// выводим полный текст правила
	  		print $file[ $_GET['line'] ];
	  	}
	  	else
	  	{
	  		// выводим текст в случае отстуствия 
	  		// указанной строки в файле
	  		print 'Такого правила нет в базе!';
	  	}
	}
	else
	{
	  	// выводим текст в случае если значение переменной
	  	// указывающей номер строки в файле не является числовым
		print 'Попытка взлома!!!';
	}
}
else
{
	// сообщение пустой базы
	print 'База правил пуста';
}
?>
Отпишись если че то не так пойдет, у меня все пашет!!! smile
S

Чатланин
0
play.php $_GET['line'] = '99<>';
echo preg_match('/^[0-9]/i', $_GET['line']) ? 1 : 0; // 1

Пришелец
0
# ########################### 
# #  Файл play.php          # 
# ########################### 

<?php
// заносим файл в массив
$file = file("local/fakt.dat");

// проверяем, есть ли текст в базе
if (count($file))
{
	// проверяем, является ли значение переменной
	// указывающей номер строки в файое числовым
	if (preg_match("/^[0-9]$/", $_GET['line']))
	{
		// проверяем на существование строки
		if ($_GET['line'] < count($file))
		{
	  		// выводим полный текст правила
	  		print $file[ $_GET['line'] ];
	  	}
	  	else
	  	{
	  		// выводим текст в случае отстуствия 
	  		// указанной строки в файле
	  		print 'Такого правила нет в базе!';
	  	}
	}
	else
	{
	  	// выводим текст в случае если значение переменной
	  	// указывающей номер строки в файле не является числовым
		print 'Попытка взлома!!!';
	}
}
else
{
	// сообщение пустой базы
	print 'База правил пуста';
}
?>

вот более безопасный вариант

Пришелец
0
жду ответа
S
Автор
Землянин
0
12, да да да. Это именно то что я и хотел) smile проверяю скрипт
S
Автор
Землянин
0
Еще вопрос. будет админка. есть проблема

     <?php 
$password = fopen("../local/adminpass.dat" , "r"); 
$pass=md5($_POST['pass']); 
if(!isset($pass)) 
{ 
echo'<form action="?" method="POST"> 
<input type="pass" name="pass"> 
<input type="submit" value="Готово"> 
</form>'; 
$password=$pass;
} 
elseif($pass == $password)	
{ 
echo '<font class=gtext >Админка</font><br>'; 
print md5($_POST['password']);
echo '</br>'; 
print md5($_POST['pass']); 
} 
else 
{ 
echo '<font class=gtext >Введите секретный код:</br></font>'; 
echo'<form action="?" method="POST"> 
<input type="password" name="pass"> 
<input type="submit" value="Готово"> 
</form>'; 
echo '<font class=gtext >Ошибка! Попробуйте ввести Введите секретный код заново!<br></font>'; 
print md5($_POST['password']);
print '</br>'; 
print md5($_POST['pass']); 
print '</br>';
print 'Вы не вошли';
} 
?>
вот код.
В файле у меня лежит пароль в зашифрованном виде. НО!!! я его изменил. Потом запускаю скрипт. Хэш старый остается. Почему? и что с этим делать?

Добавлено через 00:57 сек.
тут я уже пытался подобрать свой пароль, который забыл, поэтому код лишний smile
Изменил: SIR2100 (13.03.2011 / 13:16)
S
Автор
Землянин
0
Фигня какая-то. Не читается файл. В этом и проблема
S
Автор
Землянин
0
запись в файл как выглядеть будет?
исправьте
$file = file('../local/adminpass.dat'); 
echo '<font class=gtext>Изменить пароль:</font>';
$str=md5($_POST['wpassword']); 
fwrite($file,$str);
echo '<input type="text" maxlength="30" name="wpassword"><br>';
echo '<input type="submit" value="Добавить"><br>';
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск