Razorvin
@Razorvin
Распи...й

Что не так с кодом, не делается редирект?

Каким образом можно сделать редирект, после регистраций ?
index.php
include_once('lib/config.php');
include_once('lib/db.php');
include_once('lib/model.php');

// Внутрений шаблон
$page = $_GET['page'];

switch($page){
	case 'reg':$title = 'Регистрация :: Сообщество растаманов';
			$content = view_include('modules/reg.php',array('db' => $db));break;
			
	default:$title = 'Главная :: Сообщество растаманов';
			$content = view_include('template\v_index.php');
}

// Внешний шаблон.
$tpl = view_include('template/v_main.php',array('content' => $content,'title' => $title));

// Вывод.
echo $tpl;


контролер
model.php
// Подключение шаблона.
function view_include($fileName /*v_reg.php*/, $vars = array()){
		
	// Установка переменных для шаблона.
	foreach($vars as $key => $values){	
		$$key = $values; //http://php.net/manual/ru/language.variables.variable.php
	}
	
	// Генерация HTML в строку.
	ob_start();
	include $fileName; //v_reg.php
	return ob_get_clean();
}

// Регистрация 
function reg_user($login,$email,$pass,$checkpass,$db){
// Подключится к бд	
	 //include('db.php');
// Подготовка 
	$login = clean($login);
	$email = clean($email);
	$pass = clean($pass);
	$checkpass = clean($checkpass);
	$date = date('Y-m-d');
	$time = date('H:i:s');
// Проверки
	$error = array();
	
	if(strlen($login) > 30 || strlen($login) < 3){
		$error[] = 'Недопустимая длина имени. Логин не может быть менее 3 символов и более 30 символов!';
	}
	else{
		if(preg_match("/^[A-z0-9А-я]+$/",$login) == false)
			$error[] = 'В логине допустимы буквы латинского алфавита, цифры и символы "_-"';
	}
	
	$sql = "SELECT `login` FROM `users` WHERE login='%s'";	
	$format = sprintf($sql,mysqli_real_escape_string($db,$login));	
	$query = mysqli_query($db,$format);
	$res = mysqli_fetch_assoc($query);
	if(strlen($res['login']) > 0){
		$error[] = 'Пользователь с таким именем уже существует!';
	}
	
	$sql = "SELECT `email` FROM `users` WHERE email='%s'";		
	$format = sprintf($sql,mysqli_real_escape_string($db,$email));	
	$query = mysqli_query($db,$format);
	$res = mysqli_fetch_assoc($query);
	if(strlen($res['email']) > 0){
		$error[] = 'Пользователь с такой почтой уже существует!';
	}
	
	if(empty($email)){
		$error[] = "Не указан email адрес.";
	}
	else{
		if(preg_match("/^\w+[\w-_.]*@[\w.]+\.[\w+]{2,}/",$email) == false)
			$error[] = "Email адрес указан неверно.";
	}
	
	if($pass !== $checkpass){
		$error[] = 'Оба введенных пароля должны быть идентичны!';
	}
		
	if(strlen($pass) < 6)
		$error[] = 'Пароль не должен быть менее шести символов!';
	
	$recapcha = recapcha();
	if($recapcha == false)
		$error[] = 'Необходимо разгадать капчу!';
	//Если что то не правильно заполнили 
	if(!empty($error)){
		return $error;
	}
	else{	
		$pass = md5(md5($pass));
		$query = mysqli_query($db,"INSERT INTO `users` 		
			(`login`,`email`,`password`,`date`,`group`,`time`)
				values('$login','$email','$pass','$date','user','$time')");	
		header('Location:/');
	}
}
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
@entermix
Добавьте exit/die;
header('Location:/');
exit();
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
bigton
@bigton
Web-программист
Ответ написан
Комментировать
DmitryVoronkov
@DmitryVoronkov
Python Developer
Если регистрация успешна, путь функция возвращает например True. И присвой переменной результат функции. Потом в шаблоне, если переменная равна True, сделай редирект с помощью js.
<?php if ($regStatus === true): ?>
<script>
window.location.href = '/site/login';
</script>
<?php endif;?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы