В общем взял готовую регу и приделал к другому скрипту, зарегистрироваться вышло, а вот выйти нет. Хотя в самой реге выход работает, а при моем скрипте нет. В чем может быть проблема?
Логоут встроен после начала вывода, если рега чисто на куках, как вариант
Ну дак сессия должна удаляться, значит она у тебя не удаляется
profi_php,
<?php
define('WBCAT',1);
$title = 'Страница авторизации';
require_once ('../inc/head.php');
switch ($act)
{
default:
unreg();
if(!isset($_POST['ok']))
{
echo '<div class="main">';
echo'
<form action="enter.php" method="POST">
Ваш логин:<br/>
<input type="text" class="input" name="login" maxlength="30" value="" size="20" maxlength="50" /><br/>
Ваш пароль:<br/>
<input type="text" class="input" name="password" maxlength="30" value="" size="20" maxlength="50" /><br/>
<input name="ok" type="submit" value="Войти" /><br/>
';
echo '</div>';
}
else
{
if(empty($_POST['login']) OR empty($_POST['password']))
{
$error = 'Одно из полей не было заполнено!';
}
if(mb_strlen($_POST['login']) > 30 OR mb_strlen($_POST['login']) < 4)
{
$error.='Поле "Логин" должно быть не меньше 5 и не больше 30 символов!<br/>';
}
if(mb_strlen($_POST['password']) > 30 OR mb_strlen($_POST['password']) < 4)
{
$error.='Поле "Пароль" должно быть не меньше 5 и не больше 30 символов!<br/>';
}
if(isset($error))
{
echo '<div class="error">';
echo $error;
echo '<a href="'.$home.'/user/enter.php">Назад<a/><br/>';
echo '</div>';
}
else
{
$login = filter($_POST['login']);
$password = md5(filter($_POST['password']));
$user_isset = mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' AND `password` = '".$password."'"
if(mysql_num_rows($user_isset) > 0)
{
$row = mysql_fetch_array($user_isset);
SetCookie('login',$login,time()+3600*24*365, '/');
SetCookie('password',$password,time()+3600*24*365, '/');
echo '
<div class="main">
Здравствуйте , <font color="green"><strong>'.$row['login'].'</strong></font><br/>
Ваш IP: <font color="green"><strong>'.getip().'</strong></font><br/>
Ваш User-Agent: <font color="green"><strong>'.$ua.'</strong></font><br/>
<br/>
<a href="'.$home.'/user/office.php">Мой кабинет</a><br/>
</div>
';
}
else
{
echo '<div class="error">';
echo 'Пользователь не найден в базе , или данные не верны!<br/>';
echo '<a href="'.$home.'/user/enter.php">Назад<a/><br/>';
echo '</div>';
}
}
}
break;
case 'exit':
if(isset($_COOKIE['login']) AND isset($_COOKIE['password']))
{
SetCookie('login','',time(), '/');
SetCookie('password','',time(), '/');
echo '<div class="main">';
echo 'Вы успешно вышли! <br/>';
echo '</div>';
}
else
{
echo '<div class="error">';
echo 'Вы не авторизованы для выхода! <br/>';
echo '</div>';
}
break;
}
require_once ('../inc/foot.php');
?>
Хотя лучше делай сайт на вордпресс, там в код вообще лазить не нужно, все модули ставятся через админку в пару кликов
нет, мне надо знать как скрипт пашет моего сайта, а не тупо ставить модули.
Во блин, я угадал
Действительно логоут после начала вывода о_О
ты про это SetCookie('login','',time(), '/');
SetCookie('password','',time(), '/');
echo '<div class="main">';
echo 'Вы успешно вышли! <br/>';
echo '</div>';
setcookie() должны быть в самом верху, до всех инклудов с echo()
Добавлено 11.08.16 в 14:07:49:
Странно что вход работает
Добавлено 11.08.16 в 14:09:45:
Хотя, можно в хеадере тупо включить буферизацию ob_start(); и всё будет ок