Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: PHP. Полезные скрипты ( Заказываем :) )  (Прочитано 97373 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Люсь
Команда клуба

ru
Offline Offline
Пол: Женский

« Ответ #30 : 31-05-2005 13:06 » 

Вот сегодня думала о надобности скрипта статьи с комментариями...
Записан

Посторонним просьба не беспокоить!
-------------------------------------------------
O (I) Rh +
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #31 : 31-05-2005 13:14 » 

schnibbl, подробнее - о чем речь?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
schnibbl
Гость
« Ответ #32 : 01-06-2005 12:31 » 

ну вот Dracul  его так назвал - постраничный вывод. (типа страница 1,2,3,4,5) вот как здесь если сообщений очень много то они закладываются типа по 5/10/20 сообщений на страницы а далее несколько страниц в виде ссылок.
Записан
Люсь
Команда клуба

ru
Offline Offline
Пол: Женский

« Ответ #33 : 01-06-2005 13:15 » 

касательно постраничного вывода текста:

для того чтобы сделать постраничный вывод, тебе нужно определить какие-то критерии деления на страницы. если у тебя просто текст, без всяких заморочек, - то  это какой-то разделитель, или это определённое количество строк.
например:

Код:
<?

if (!isset($_GET["sdvig"])) { $_GET["sdvig"] = 0; } /* проверяем установлена ли переменная для сдвига.

$f = fopen("file.txt, "r");                                    /* открываем необходимый файл
$count = -1;                                                    /* устанавливаем счётчик на 0 (правда у меня почему то в таком случае на страницу     
                                                                      /*получается информации на 1 текст меньше, поэтому я установила хитрый -1
while ($str = fgets($f)) {                                   /* пока файл ещё можно читать, то
if (trim($str) == "* * *") {                          /* ищем разделитель, от чего нам считать?
$count += 1;                                   
if ($count == ($_GET["sdvig"]+5)) {    /* если сдвиг достиг 5 (это кол-во выводимого текста), прервать цикл и начать заново
break;
}
}
if (($count >= $_GET["sdvig"]) and ($count < ($_GET["sdvig"]+5))) {    /* после каждого текста включить символ брейка
echo $str."<br>";
}
}
echo "<br>";
if ($_GET["sdvig"] > 0) {
echo "<a href='index.php?action=".$_GET["action"]."&action2=".$_GET["action2"]."&sdvig=".($_GET["sdvig"]-5)."'>Предыдущая</a>";
}
if ($str != FALSE) {
echo "&nbsp;&nbsp;|&nbsp;&nbsp;<a href='index.php?action=".$_GET["action"]."&action2=".$_GET["action2"]."&sdvig=".($_GET["sdvig"]+5)."'>Следующая</a>";
}

?>

немного переделай, для того, чтобы выводить номера страниц - и наверное ты будешь доволен Улыбаюсь

« Последнее редактирование: 20-12-2007 18:43 от Алексей1153++ » Записан

Посторонним просьба не беспокоить!
-------------------------------------------------
O (I) Rh +
schnibbl
Гость
« Ответ #34 : 26-10-2005 06:44 » 

м что то я эту тему из виду упустил, Buu спасибо за помощ.
Есть у кого нить наброски тех времен когда он учился с сессиями работать ? очень интерессно посмотреть как осуществлять аутентификацию, когда выполняется скрипт на новой старнице (очень многие всю работу ведут одним файлом который сам к себе обращается каждый раз с новыми параметрами, а дальше идет case или много условий, там вроде бы с безопасностью решен вопрос, а вот как быть когда страниц много, как защититься от заведомо правильной ссылки на новую страницу, но в обход авторизации ??)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #35 : 26-10-2005 15:54 » 

schnibbl, сессия тебя тут и должна спасти: после успешной авторизации создай какую-нибудь переменную в сессии и проверяй во всех файлах ее наличие. Отсутствие оной - не авторизован и показывать только допустимую инфу, либо послать на страницу логина.
Конечно, занесение идентификатора сессии в url - дибилизм - не допусти такого. Для этого существуют cookie.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
xelos
Гость
« Ответ #36 : 26-10-2005 20:43 » 

пример файла логина:

<?
require_once(&#39;functions.php&#39;);

	
if (isset($_POST[&#39;Submited&#39;]))
	
{
	
	
$errors = array();
	
	
if (empty($_POST[&#39;name&#39;]))
	
	
{
	
	
	
$errors[] = &#39;Vous avez oubli&#38;#233; de rentrer votre identifiant&#39;;
	
	
}else{
	
	
	
$ident=escape_data($_POST[&#39;name&#39;]);
	
	
}
	
	
if (empty($_POST[&#39;pass&#39;]))
	
	
{
	
	
	
$errors[] = &#39;Vous avez oubli&#38;#233; de rentrer votre mot de passe&#39;;
	
	
}else{
	
	
	
$pas = escape_data($_POST[&#39;pass&#39;]);
	
	
}
	
	

	
	

	
	

	
	
if (!empty($errors))
	
	
{
	
	
	
echo &#39;<h1 class="error">Erreur!</h1>
   
	
	
	
	
<p class="error">Les erreurs suivantes sont d&#38;#233;t&#38;#233;ct&#38;#233;es:<br />&#39;;
   
	
	
	
	
foreach ($errors as $msg) {
    
	
	
	
	
echo " - $msg<br />\n";
  
	
	
	
	
}
  
	
	
	
echo &#39;</p><p class="error">Essayez encore une fois.</p>&#39;;
	
	
	
exit();
	
	
}else{
	
	
	
require(&#39;sql_connection.php&#39;);
	
	
	
$query = "SELECT * FROM badm_users WHERE user_nom=&#39;$ident&#39; AND user_password=MD5(&#39;$pas&#39;)";
	
	
	
$result = @mysql_query ($query);
	
	
	
$row = @mysql_fetch_array($result);
	
	
	

	
	
	
if($row)
	
	
	
{
	
	
	
	
echo &#39;<p class="bienvenu">Bienvenu &#39;.$row[&#39;user_nom&#39;].&#39;</p>&#39;;
	
	
	
	

	
	
	
	
$_SESSION[&#39;user_name&#39;] = $row[&#39;user_nom&#39;];
	
	
	
	
$_SESSION[&#39;user_news&#39;] = $row[&#39;news&#39;];
	
	
	
	

	
	
	
	
exit();
	
	
	
}else
	
	
	
{
	
	
	
	
echo &#39;<p class="error">L\&#39;utilisateur n\&#39;a pas &#38;#233;t&#38;#233; trouv&#38;#233;</p>&#39;;
	
	
	
	
exit();
	
	
	
}
	
	
	

	
	
	
mysql_close();

	
	
}
	
	

	
}
	

	
if(isset($_POST[&#39;Dcn&#39;])){
	
	
$errors = NULL;
	
	
$_SESSION = array();
	
	
session_destroy();
	
	
echo &#39;<p class="bienvenu">Vous &#38;#234;tes d&#38;#233;connect&#38;#233; </p>&#39;;
	
}
	

?>
только не забыть start_session() вызывать на каждой странице! у меня не указано, т.к. этот файл заинклюден в другой!


а потом на каждой странице
<?
	
start_session();
?>
<h1 class="entete">Actualit&#38;#233;s du site</h1>
<?

	
require(&#39;sql_connection.php&#39;);
	
$query = "Select * from news order by news_date DESC";
	

	
$result = @mysql_query($query);
..............

	
	
if ((isset($_SESSION[&#39;user_news&#39;]))&&($_SESSION[&#39;user_news&#39;]==1))
	
	
{
	
	
	
echo &#39;<p>&#39;;
	
	
	
echo &#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?mod_name=news_add" class="news_admin">Ajouter une actualit&#38;#233;</a>      &#39;;
	
	
	
echo &#39;</p>&#39;;
	
	
}
	

	

?>

до версии php 4.1, работа с сессиями отличалась:
session_start();

$name = &#39;Jessica&#39;;

session_register(&#39;name&#39;);

//доступ к переменной
$HTTP_SESSION_VARS[&#39;name&#39;]
« Последнее редактирование: 20-12-2007 18:47 от Алексей1153++ » Записан
xelos
Гость
« Ответ #37 : 26-10-2005 20:54 » 

schnibbl, посмотрел свои книжки по php, имхо, тебе помочь может:

VISUAL QUICKPRO GUIDE PHP and MySQL FOR DYNAMIC WEB SITES, Second Edition
By Larry Ullman

там на примере создания сайта ответы на твои последние вопросы разобраны детально. Если надо, могу выслать
Записан
schnibbl
Гость
« Ответ #38 : 27-10-2005 08:10 » 

RXL у нас же у каждого клиента каждый раз идентификатор сессии генериться новый-отличный от других. на что же проверять переменную если и правда только на то, что она не нулевая. Но таким образом можно на своей стороне неважно что ей присвоить и проверка пройдена Не понял
xelos спасибо за код щас буду разбираться... тогда что нибуть и напишу Улыбаюсь

P.S. Прастите вам шум в моей голове не мешает ? Улыбаюсь
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #39 : 27-10-2005 09:03 » 

RXL у нас же у каждого клиента каждый раз идентификатор сессии генериться новый-отличный от других. на что же проверять переменную если и правда только на то, что она не нулевая. Но таким образом можно на своей стороне неважно что ей присвоить и проверка пройдена Не понял

schnibbl , о чём ты говориш ? Может стоило тебе начать с вопроса что такое вообще сессия ?
Идентификатор сессии и переменная в сессии - это разные вещи. Идентификатор сесси генерится сервером, а переменные туда ты пихаеш какие хочеш.

Почитай сначала про то что это такое и как работает. В рунете навалом статей на эту тему. Как только ты поймёш что это, вопросы такие пропадут сразу.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #40 : 27-10-2005 12:04 » new

RXL у нас же у каждого клиента каждый раз идентификатор сессии генериться новый-отличный от других. на что же проверять переменную если и правда только на то, что она не нулевая. Но таким образом можно на своей стороне неважно что ей присвоить и проверка пройдена Не понял
xelos спасибо за код щас буду разбираться... тогда что нибуть и напишу Улыбаюсь

P.S. Прастите вам шум в моей голове не мешает ? Улыбаюсь
Мешает-мешает, но не нам...  :razz:
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines