ОБСУЖДЕНИЕ

INDEX

15 сообщений1 просмотровОткрыта
#1
Вот код:
Все норм,сделал регистрацию,но вот что то с авторизацией не могу разобратся)Что тут может не так?Или что добавить?)

<?php
include_once ('config.php');

if(isset($user)){

echo '<div class="menuxa">';

echo '
<div class="test"><img src="img/0.png" alt="*" /> <a href="/"> Беседка</a><br /></div>
<div class="test"><img src="img/0.png" alt="*" /> <a href="/"> Знакомства</a><br /></div>
<div class="test"><img src="img/0.png" alt="*" /> <a href="/"> Беспредел</a><br /></div>
<div class="test"><a href="exit.php"> Выход</a>
</div>';

echo '</div>';

} else {

if(!empty($_POST['login']) AND !empty($_POST['pass']))
{

$login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));

$q = mysql_query("SELECT `id` FROM `users` WHERE `login` = '".$login."' AND `pass` = '".md5($pass)."' LIMIT 1");
if (mysql_num_rows($q) != 0) {
$_SESSION['id'] = mysql_result($q, 0);

header('Location: index.php');

}
else header('Location: err.php');
}


echo '<div class="head"><center>Чат</center></div>';

echo '<div class="menuxa">';



echo '<center><h2><b>'.$_SERVER[HTTP_HOST].'</b></h2></center></div></br>';

echo '<div class="head"><center>Вход</center></div>';
echo '<div class="menuxa">';
echo '<center>

<form action="index.php" method="POST">
Введите ник:<br />
<input name="login" id="login" type="text" placeholder="Ваш ник" /><br />
Введите пароль:<br />
<input name="pass" id="password" type="password" placeholder="Ваш пароль" /><br />

<input type="submit" value="Войти">
</form>

</center><br />';
echo '</div>';

echo '<div class="test"><a href="reg.php">Регистрация</a><br />';

echo '</div>';

}

include_once ('include/foot.php');

?>
#2
После авторизации не входит на главную там где
<div class="test"><img src="img/0.png" alt="*" /> <a href="/"> Беседка</a><br /></div>
<div class="test"><img src="img/0.png" alt="*" /> <a href="/"> Знакомства</a><br /></div>
<div class="test"><img src="img/0.png" alt="*" /> <a href="/"> Беспредел</a><br /></div>
<div class="test"><a href="exit.php"> Выход</a>
#3
Мои глаза..О Боже...
#4
bage, .слюни. гКод )Зато все просто..)
#5
PHP

<?
if(isset($user)){
//тут не определена переменная $user, отсюда и нет всего того, что ты пытаешься увидеть
?>

#6
Zimus, bage я не сомневаюсь что вы когда то тоже проходили через такой гКод =)
#7
она определена у него
#8
LVC2, Я ее инклудом вывожу

$user=mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '$_POST[nick]' OR `nick` = '$_POST[nick]' LIMIT 1"));
#9
bage, Есть какието грубые ошибки?)Буду с ходу править и нотировать правильно =)
#10
ну это будет работать только при пост передаче, а дельше она у тебя отпадет
#11
LVC2, Ну я все даные вродь передаю через пост)
#12
а вот определена то неправильно , стартуй сесию и вместо пост сравнений делай сравнения с сесией,или еще проще делай инициализацию ввида
PHP

session_start();
$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '".$_SESSION['id']."' LIMIT 1"));

#13
PHP

<?
//инклудим конфиг
//проверяем на наличие логина и пасса а так же на валидность этих данных (сессия + куки)
//при отсутствии данных выкидываем окошко авторизации и прием пост переменных


//так же isset не всегда бывает срабатывает как нужно, обходим его if(!$user) или if(!empty($user))
?>

#14
Недавно для своих нужд писал))для примера сойдет...
PHP

if(isset($_COOKIE['id']) AND isset($_COOKIE['ps']) OR isset($_REQUEST['id']) AND isset($_REQUEST['ps']))
    {/* Проверка на наличие куков с данными или данных из форм/url */
     if(isset($_COOKIE['id']) AND isset($_COOKIE['ps']))
        {/*  если поймали куки */
         $id = $_COOKIE['id'];
         $ps = $_COOKIE['ps'];
        }
     elseif(isset($_REQUEST['id']) AND isset($_REQUEST['ps']))
        {/* формы/url */
         $id = $_REQUEST['id'];
         $ps = $_REQUEST['ps'];
        }
     if(DB::run()->querySingle("SELECT COUNT(`id`) FROM `users` WHERE `id` = ? AND `pass` = ?",array(check($id),check($ps)))==1)
        {/* если пользователь найден */
         $user = DB::run()->queryFetch("SELECT `id`,`user`,`pass`,`online`,`admin` FROM `users` WHERE `id` = ? AND `pass` = ? ",array(check($id),check($ps))); //создаем массив
         /* пишем куки */
         setcookie('id', $user['id'], time()+3600*24*365);
         setcookie('ps', $user['pass'], time()+3600*24*365);
        }
     else
        {/* если пользователь не найден */
         $user = false;
         setcookie('id', '');
         setcookie('ps', '');
        }
    }

#15
Всем спасибо с пк буду все осмотрю))Тему не крою может кто то еще что то подскажет)