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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2019, 11:31   #1
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию Авторизация

привет, пытаюсь сделать авторизацию и регистрацию на сайте, нашел статью, там 3 странички reg, login, check... повторил как в статье работает, пытаюсь все это впихнуть на одну страницу и получаю ошибку мол слишком поздно передавать заголовки... хочу просто сделать блок где вводишь логин и пароль, если ты новый пользователь то тебя регистрирует и авторизовывает, а если не новый то только авторизовывает. для этого написал вот такой код и снова та же ошибка, помогите ее решить пожалуйста
Код:
<div class="block">
	<?php 
	if(isset($_POST['submit']))
   {
	$query = mysqli_query($conn,"SELECT user_id, user_password FROM isusers WHERE user_login='".$_POST['login']."' LIMIT 1");
		$data = mysqli_fetch_assoc($query);
	if ($data['user_id'] != ''){
		
		if($data['user_password'] === md5(md5($_POST['password'])))
		{
		$hash = md5(generateCode(10));
		mysqli_query($conn,"UPDATE isusers SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
		setcookie("id", $data['user_id'], time()+60*60*24*30);
		setcookie("hash", $hash, time()+60*60*24*30);					
		}
	}
	else
	{
		$err = array();
		# проверям логин
		if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
		{
			$err[] = "Логин может состоять только из букв английского алфавита и цифр";
		}
		if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
		{
			$err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
		}
			
			$login = $_POST['login'];
			# Убераем лишние пробелы и делаем двойное шифрование
			$password = md5(md5(trim($_POST['password'])));
			mysqli_query($conn,"INSERT INTO isusers SET user_login='".$login."', user_password='".$password."'");
			//header("Location: login.php"); exit();
		
	}
   }
	?>
	<form method="POST">
	<table>
	<tr>
	<th>Логин</th> <th><input name="login" type="textm"><br></th>
	</tr>
	<tr>
	<th>Пароль</th> <th><input name="password" type="password"><br></th>
	</tr>
	<tr>
	<th></th><th><button name="submit" type="submit" >Войти</button></th>
	</tr>
	</table>
	</form>
	
</div>
PTyTb32 вне форума Ответить с цитированием
Старый 24.01.2019, 11:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вы уже часть html отправили, какие заголовки? Выносите в отдельный файл и обращайтесь к нему из JS.
p51x вне форума Ответить с цитированием
Старый 24.01.2019, 12:24   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,218
По умолчанию

Такие вещи, как setcookie() и header() надо делать до вывода в браузер, то есть до первого echo или первого куска текста за пределами блока <?php ... ?>. У вас до PHP идет вывод <div class="block">.

Конечно, есть еще вариант включить буферизацию вывода. Но лучше перенести весь вывод после установки куки и отправки заголовков.

P.S. Еще в вашем коде присутствует потенциальная SQL-инъекция.
Arigato на форуме Ответить с цитированием
Старый 24.01.2019, 13:16   #4
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
P.S. Еще в вашем коде присутствует потенциальная SQL-инъекция.
Да, знаю) все эти защиты полей сделаю когда закончу авторизацию. спасибо)
PTyTb32 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация Rockot PHP 5 19.11.2013 21:04
Авторизация SkrudjMakdak PHP 6 27.03.2011 20:41
Авторизация trad C++ Builder 3 13.01.2011 01:27
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
Авторизация? Gromsky PHP 5 07.08.2009 19:27