Loading...
Обучение/Помощь новичкам | Помогите исправить ошибку
суть проблемы в том что когда захожу на главную страницу сайта пользователь разлогонируеться! Кто сталкивался подскажите

Файл входа


<?php

include 'inc/h.php';
# Функция для генерации случайной строки
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}

# Если есть куки с ошибкой то выводим их в переменную и удаляем куки
if (isset($_COOKIE['errors'])){
$errors = $_COOKIE['errors'];
setcookie('errors', '', time() - 60*24*30*12, '/');
}

# Подключаем конфиг
include 'conf.php';

if(isset($_POST['submit']))
{

# Вытаскиваем из БД запись, у которой логин равняеться введенному
$data = mysql_fetch_assoc(mysql_query("SELECT users_id, users_password FROM `users` WHERE `users_login`='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"));

# Соавниваем пароли
if($data['users_password'] === md5(md5($_POST['password'])))
{
# Генерируем случайное число и шифруем его
$hash = md5(generateCode(10));

# Записываем в БД новый хеш авторизации и IP
mysql_query("UPDATE users SET users_hash='".$hash."' WHERE users_id='".$data['users_id']."'") or die("MySQL Error: " . mysql_error());

# Ставим куки
setcookie("id", $data['users_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);

# Переадресовываем браузер на страницу проверки нашего скрипта
header("Location: check.php"); exit();
}
else
{
print "Вы ввели неправильный логин/пароль<br>";
}
}
?>


<div class='header'>


<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div><div class='block'>
Говоришь ты уже бывал, у нас? Эхх, да говоришь? Ну тогда назовись, и иди в строй!!!




<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
<input name="submit" type="submit" value="Войти в город"> </form></div>

<?php
require_once('inc/f.php');

# Проверяем наличие в куках номера ошибки
if (isset($errors)) {print '<h4>'.$error[$errors].'</h4>';}



?>



Файл реги


<?php

# Подключаем конфиг

require_once('inc/h.php');



include 'conf.php';



if(isset($_POST['submit']))

{



$err = array();



# проверям логин

if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))

{

$err[] = "Эхх, парень! Логин пишеться у нас только буквами и цыфрами!!!";

}



if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)

{

$err[] = "Что то очень маленький твой логин, либо большой!";

}



# проверяем, не сущестует ли пользователя с таким именем

$query = mysql_query("SELECT COUNT(users_id) FROM users WHERE users_login='".mysql_real_escape_string($_POST['login'])."'")or die ("<br>Invalid query: " . mysql_error());

if(mysql_result($query, 0) > 0)

{

$err[] = "Пользователь с таким логином уже существует в Городе";

}





# Если нет ошибок, то добавляем в БД нового пользователя

if(count($err) == 0)

{



$login = $_POST['login'];



# Убераем лишние пробелы и делаем двойное шифрование

$password = md5(md5(trim($_POST['password'])));



mysql_query("INSERT INTO users SET users_login='".$login."', users_password='".$password."'");

header("Location: login.php"); exit();

}

}

?>



<div class='header'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div><div class='block'>
Здравствуйте путник, я могу узнать как вас по имени величать? Если да? Прошу внимательно заполнить форму регистрации!!!

<form action='' method='post'>
<p>
Как зовут: <input type="text" name="login" id="reg_inp" /><br />
</p>
<p>
Секретный код: <input type="password" name="password" id="reg_inp" /><br />
</p>
<p>
<input name="submit" type="submit" value="Ответить наставнику">
</p></form></div>



<?php

require_once('inc/f.php');
if (isset($err)) {

print "<b>При регистрации произошли следующие ошибки:</b><br>";

foreach($err AS $error)

{

print $error."<br>";

}

}

?>




Файл удачного входа



[q]<?php
include 'online.php';

# подключаем конфиг
include 'conf.php';
require_once('inc/h.php');


# проверка авторизации
if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
{
$userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE users_id = '".intval($_COOKIE['id'])."' LIMIT 1"));

if(($userdata['users_hash'] !== $_COOKIE['hash']) or ($userdata['users_id'] !== $_COOKIE['id']))
{
setcookie('id', '', time() - 60*24*30*12, '/');
setcookie('hash', '', time() - 60*24*30*12, '/');
setcookie('errors', '1', time() + 60*24*30*12, '/');
header('Location: login.php'); exit();
}
}
else
{
setcookie('errors', '2', time() + 60*24*30*12, '/');
header('Location: login.php'); exit();
}
?>
<!DOCTYPE html PUBLIC "
Покажи код главной
________
посл. ред. 09.08.2017 в 18:47; всего 1 раз(а); by Gazro
Gazro , <?php
require_once('inc/h.php');
?>
<div class='head'>
<a href='/'><img src='images/logo.jpg' alt='logo'></a>
</div>
<div class='block'>
Добро пожаловать в Вальхаллу, в этой стране ты научишься быть героем! Начинай путь, и стань защитником своего города.<br>
<a href='register.php' class='button'>Начать Путь</a><a href='login.php' class='button'>Войти</a>
</div>


<?php

require_once('inc/f.php');
?>
когда именно на главную переходишь ?после реги?
Apofias , Когда заново заходишь на сайт
Apofias , после авторизации вот такая ссылка rmhero.ru/check.php
когда ввожу просто rmhero.ru
Нужно заново заходить
Sacrifice justice , потому что главная у тебя статическая. Нужно проверять по кукам. Например: проверяешь наличие кук у юзера, если есть, выводишь то-то, если нету, что-то другое.
а в профиль заходит?
мб у него тут проверка require_once('inc/h.php');
Apofias , это как бы подключается голова ,а не проверка
Онлайн: 4
Время:
Gen. 0.1219
(c) Bym.Guru 2010-2026