Помогите написать скрипт (вывод ссылок)
1.
SIR2100 (11.03.2011 / 21:36)
Есть сверху правила
http://prarusyaz.h2m.ru. Нужет скрипт или его кусочек, который при нажатии на эту ссылку переносил на страницу, на которой есть полное описание.
Желаетельно!!!
Чтобы обрезалась строка на энном кол-ве символов и чтобы все запросы выходили на одну и туже страницу.
Вот код вывода правил
<?php
$text = file("local/fakt.dat");
$top = rand (0,count($text)-1);
$out = explode("|",$text[$top]);
print "$out[1]";
?>
с меня за помощь плюс)
2.
Facecontrol (11.03.2011 / 22:03)
Если чесно я не понял что ты хочешь...
3.
ramzes (11.03.2011 / 22:03)
я думаю ни кто не понял
4.
★☆ ИгRok™ ☆★ (11.03.2011 / 22:54)
1.чувак,ты сам понял то,что сказал? %)
Если тебе нужно обуздать текст,то делай,примерно,так:
<?php
$q = mysql_query('SELECT * FROM table ORDER BY id ASC');
while($res = mysql_fetch_assoc($q))
{
echo mb_substr($res['text'], 0, 130, 'UTF-8');
echo '... <a href="ссылка на полный текст">Далее</a><br />';
}
?>
Если я правильно понял
5.
SIR2100 (12.03.2011 / 00:08)
есть текст в дат файле. Он выводится на страницу. Во первых мне нужно чтобы он обрезался.
Во вторых мне нужно, чтобы при нажатии на эту обрезанную строку, пользователь переходил на страницу, на которой содержится полный текст.
Например:
1)пирожки
2)капуста
Обе ссылки ведут на одну страницу. При нажатии на "пирожки" отображается текст о пирожках. При нажатии на "капусту" отображается текст о капусте. Вроде понятно объяснил
Ссылка выглядит как-то типа: название_сайта.рф/скрипт.php?капуста=инфа о ней
Может быть я что-то путаю)
Добавлено через 02:11 сек.
P.s. реально бред какой-то в первом посте хД
извиняюсь
6.
Камиль Ризаев (12.03.2011 / 00:16)
вот ты злодей, интересно, что у тебя в конце выйдет )) база знаний на h2m.ru - соперник википедии ))))))
Добавлено через 07:40 сек.
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;
}
}
$text = file_get_contents(путь);
print '<a href="обработчик">'.text_dl($text, количество отображаемых символов).'</a>'
попробуй так
7.
SIR2100 (12.03.2011 / 07:51)
я там тестирую сайт. Это временно)))
8.
Камиль Ризаев (12.03.2011 / 11:09)
ну что , заработал код???
9.
SIR2100 (12.03.2011 / 15:56)
не пробовал еще. Я еще учусь. Какприеду домой сразу попробую и отпишусь
Добавлено через 01:39 сек.
у меня на сайте все в ютф8. Конвертация не нужна
10.
SIR2100 (12.03.2011 / 18:17)
эмм... дело в том что теперь всроде все работает. Но я не знаю как сделать сам обработчик. Это первое. А второе. Выводится только первая запись из файла. И третье - почему то два раза почеркиваться стала запись))
11.
SIR2100 (12.03.2011 / 18:35)
Проблема!!! выводится весь текст, не зависемо от переходов на новую строку
Добавлено через 03:53 сек.
<?php
$text = file("local/fakt.dat");
$top = rand (0,count($text)-1);
$out = explode("|",$text[$top]);
print "$out[1]";
?>
Переделайте этот код для того чтобы он обрезался на задаваемом кол-ве символов и эти "обрезки" были ссылками
12.
Камиль Ризаев (12.03.2011 / 22:16)
Как я понимаю, у тебя есть текстовый файл типа:
---------
БЛАБЛАБЛА
БЛАБЛАБЛА
БЛАБЛАБЛА
---------
каждая строка в нем отдельное правило, и тебе нужно выводить ссылку на правило выбранное из файла случайным образом на главную с обрезкой до определенного числа символов.
сслка же в свою очередь должна открыть обработчик выводящий полную версию правила ))
я прав???
13.
Камиль Ризаев (13.03.2011 / 01:01)
<?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 'База правил пуста';
}
?>
Отпишись если че то не так пойдет, у меня все пашет!!!
14.
smartvbxos7 (13.03.2011 / 01:16)
play.php $_GET['line'] = '99<>';
echo preg_match('/^[0-9]/i', $_GET['line']) ? 1 : 0; // 1
15.
Камиль Ризаев (13.03.2011 / 01:47)
# ###########################
# # Файл 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 'База правил пуста';
}
?>
вот более безопасный вариант
16.
Камиль Ризаев (13.03.2011 / 03:15)
жду ответа
17.
SIR2100 (13.03.2011 / 12:00)
12, да да да. Это именно то что я и хотел)
проверяю скрипт
18.
SIR2100 (13.03.2011 / 13:14)
Еще вопрос. будет админка. есть проблема
<?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 сек.
тут я уже пытался подобрать свой пароль, который забыл, поэтому код лишний
19.
SIR2100 (13.03.2011 / 13:35)
Фигня какая-то. Не читается файл. В этом и проблема
20.
SIR2100 (13.03.2011 / 14:26)
запись в файл как выглядеть будет?
исправьте
$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>';
21.
Камиль Ризаев (14.03.2011 / 20:06)
20.
SIR2100, смотри в личку
URL:
https://visavi.net/topics/19631