Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2012, 12:06   #1
mike5703
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 17
По умолчанию Авторизация

Привет всем.Вчера я дописал старый скрипт редактирования новостей,и привентил к ней авторизацию.Проблема в том,что при каждом обновление страницы,приходиться авторизоваться заново.Так,как голова у меня уже не варит,после стольких то дел,я хочу попросить мне помочь других знающих людей;3
Ссылка на скрипт
Надеюсь мне помогут:)
Ну и вот по совету человек,код:
Код:
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<style type="text/css">
body { background-image: url(bg.jpg);background-repeat: no-repeat; }
input.right3 { position: absolute;left: 40%;top: 30px;margin-right: 500px;width:250px;overflow:hidden;color: #fff;background: url(transparent_bg.png) repeat;padding: 10px;margin: 10px; }
input.right4 { position: absolute;left: 40%;top: 90px;margin-right: 500px;width:250px;overflow:hidden;color: #fff;background: url(transparent_bg.png) repeat;padding: 10px;margin: 10px; }
.text {text-align: center;}
input.center { padding: 3px 7px;color: #333;-moz-border-radius: 5px; border-radius:  5px;border: 2px inset #f0f0f0;background: -moz-linear-gradient(#e6e7e8, #e9e9ea, #bec0c2);background: -webkit-gradient(linear, 0 0, 0 100%, from(#e6e7e8), to(#bec0c2), color-stop(0.5, #e9e9ea));position: absolute;left: 830px;height: 100px;top: 40px;margin-right: 500px;width:80px;overflow:hidden;}
</style>

<?php

function draw_form($bad_login = false) {
    ?>
    <form action="" method="post">
<p><br /><div class="text">Логин:</div><br /><input type="text" name="login" class="right3"></input><br/><br /></p>
<p><div class="text">Пароль:</div><br /><input type="password" name="pass" class="right4"></input><br /></p>
     <br /><input type="submit" class="center" name="submit"></input>
    </form>
    <?php
    if ($bad_login)
        echo 'неправильный логин и/или пароль';
}


function check_login($login, $pass) {
    return ($_POST['login'] == 'admin') && ($_POST['pass'] == 'qwerty');
}

session_start();

if (isset($_GET['logout'])) {
    session_unset();
    session_destroy();
    header("Location: index.php");
    exit();
}

if (!isset($_SESSION['login'])) {

    $login = $_POST['login'];
    $pass = $_POST['pass'];

    if (count($_POST) <= 0)
        draw_form();
    else {
        if (check_login($login, $pass))
            $_SESSION['login'] = $login;
        else
            draw_form(true);
    }
}

isset($_SESSION['login']) or die();

echo '<font color=#FFFFFF face="Arial"><b>Здравствуйте, ' . $_SESSION['login'] ;

?>
<br/>
<font color=#FFFFFF face="Arial"><b>это страница редактирования новостей</b></font>
<br/>
<a href="http://rubukkit.org/threads/%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B5%D0%B9.10456/">Тема разработчика|</a>
<a href="index.php?logout">Выход|</a>
  <style type="text/css">
   .right2 {
    position: absolute;
	left: 10px;
    top: 50px;
	margin-right: 500px;
	width:500px;
	overflow:hidden;
	color: #fff;
	background: url(transparent_bg.png) repeat;
	padding: 10px;
    margin: 10px;
   }
    P {
    text-indent: 1.5em;
	left: 10px;
   }
  </style>
<?php

if(isset($_POST['edit']) && isset($_POST['text']))
file_put_contents($_GET['news'], $_POST['text'] );

if(isset($_GET['news']))
$text = file_get_contents($_GET['news']);


?>

   <script language="JavaScript">
            function add(text){
          document.form.text.value+=text;
          }
            function add2(text){
          document.form.text.value+=text;
          }		  
  </script>
<a href="?news=news.txt" >Текст новостей|</a>
<a href="?news=sidebar.txt" >Боковая колонка</a>
<form name=form action="" method="post" enctype="multipart/form-data" >
<textarea name="text" class="right2" rows="20" cols="60" style="background: url(transparent_bg.png) repeat" placeholder="Ваш текст" style="margin-left: 50px; width: 300px; height: 150px;" font color="red"><?php echo htmlspecialchars($text) ?></textarea><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><p><input name="edit" type="submit" />
<input type=button value="Добавить заголовок" onClick="add('[title]Заголовок[/title]<br>')"><input type=button value="Добавить текст в новость" onClick="add2('[text]Текст новости[/text]')"></p>
</form>
			<div id='right'>
				<h1>Новости лаунчера</h1><br />
<?php
require "news.php";
	?>

Последний раз редактировалось mike5703; 26.03.2012 в 12:48.
mike5703 вне форума Ответить с цитированием
Старый 26.03.2012, 12:36   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от mike5703 Посмотреть сообщение
Надеюсь мне помогут
Вам помогут с бОльшей вероятностью, если вы просто разместите проблемный участок кода в своем посте.
Ваша ссылка на архив с кодом - сегодня работает, а завтра нет, а без кода этот топик бесполезен для сообщества.
Одна из главных задач форума - предоставить другим посетителям возможность решать подобные проблемы, используя ваш пример кода и предложенные в этом топике решения.
Andkorol вне форума Ответить с цитированием
Старый 26.03.2012, 12:49   #3
mike5703
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Вам помогут с бОльшей вероятностью, если вы просто разместите проблемный участок кода в своем посте.
Ваша ссылка на архив с кодом - сегодня работает, а завтра нет, а без кода этот топик бесполезен для сообщества.
Одна из главных задач форума - предоставить другим посетителям возможность решать подобные проблемы, используя ваш пример кода и предложенные в этом топике решения.
Спасибо за совет.
mike5703 вне форума Ответить с цитированием
Старый 26.03.2012, 13:10   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

ужасная мешанина всего и вся.... в начале, после session_start поставьте вывод сесии var_dump($_SESSION); и смотрите что там у вас, после смотрите свою логику проверки авторизован или нет пользователь
ADSoft вне форума Ответить с цитированием
Старый 26.03.2012, 13:22   #5
mike5703
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 17
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
ужасная мешанина всего и вся.... в начале, после session_start поставьте вывод сесии var_dump($_SESSION); и смотрите что там у вас, после смотрите свою логику проверки авторизован или нет пользователь
Вывел,выдает в углу надпись
Код:
array(1) { ["login"]=> string(5) "admin" }
mike5703 вне форума Ответить с цитированием
Старый 26.03.2012, 16:31   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Код:
isset($_SESSION['login']) or die();
коробит....
неужто нельзя сравнением?
Код:
if (!(isset($_SESSION['login']))) {die();}
ADSoft вне форума Ответить с цитированием
Старый 26.03.2012, 20:43   #7
mike5703
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 17
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Код:
isset($_SESSION['login']) or die();
коробит....
неужто нельзя сравнением?
Код:
if (!(isset($_SESSION['login']))) {die();}
Заменил,всё равно приходиться каждый раз авторизироваться.
mike5703 вне форума Ответить с цитированием
Старый 26.03.2012, 21:21   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Запустил ваш php-код у себя для проверки - всё работает как надо, авторизация срабатывает,
сессия работает нормально - авторизация при каждом обновлении страницы не требуется, данные об авторизации сохраняются.
Так что это у вас что-то программно барахлит - код не при чем.
Andkorol вне форума Ответить с цитированием
Старый 26.03.2012, 21:43   #9
mike5703
Пользователь
 
Регистрация: 26.03.2012
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Запустил ваш php-код у себя для проверки - всё работает как надо, авторизация срабатывает,
сессия работает нормально - авторизация при каждом обновлении страницы не требуется, данные об авторизации сохраняются.
Так что это у вас что-то программно барахлит - код не при чем.
Если честно,то у меня всё тоже работает.Дело в том,что у других это не работает.Вот пример.
Я могу Вам дать даже FTP доступ к этой папке,чтобы вы мне помогли
mike5703 вне форума Ответить с цитированием
Старый 26.03.2012, 22:02   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от mike5703 Посмотреть сообщение
Если честно,то у меня всё тоже работает.Дело в том,что у других это не работает.Вот пример.
Я могу Вам дать даже FTP доступ к этой папке,чтобы вы мне помогли
Ваш код работает, проблема в настройках конкретного сервера.
Конфигурирование серверного ПО выходит за рамки данного топика, и к PHP отношения не имеет.
Обратитесь в поддержку хостинга - это их работа.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авторизация Жека_ Общие вопросы C/C++ 3 11.10.2011 01:47
Авторизация Fiber Visual C++ 1 14.03.2011 16:30
Авторизация SergeyWR Фриланс 12 01.03.2011 08:50
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
Авторизация GoldmasteR PHP 9 22.11.2010 21:13