Редирект авторизованного пользователя со страницы регистрации

12
S
На сайте с 08.02.2017
Offline
7
2095

Помогите пожалуйста, нужно чтобы сразу после регистрации пользователя перекидывало уже авторизованным на секретную страницу intropage.php

А также после авторизации перекидывало на страницу intropage.php, в файле login.php редирект на intropage.php есть, но ничего не происходит.

Регистрация


<?php require_once("includes/connection.php"); ?>
<?php include("includes/header.php"); ?>


<?php

if(isset($_POST["register"])){


if(!empty($_POST['full_name']) && !empty($_POST['email']) && !empty($_POST['username']) && !empty($_POST['password'])) {
$full_name=$_POST['full_name'];
$email=$_POST['email'];
$username=$_POST['username'];
$password=$_POST['password'];



$query=mysql_query("SELECT * FROM usertbl WHERE username='".$username."'");
$numrows=mysql_num_rows($query);

if($numrows==0)
{
$sql="INSERT INTO usertbl
(full_name, email, username,password)
VALUES('$full_name','$email', '$username', '$password')";

$result=mysql_query($sql);


if($result){
$message = "Account Successfully Created";
} else {
$message = "Failed to insert data information!";
}

} else {
$message = "That username already exists! Please try another one!";
}

} else {
$message = "All fields are required!";
}
}
?>


<?php if (!empty($message)) {echo "<p class=\"error\">" . "MESSAGE: ". $message . "</p>";} ?>

<div class="container mregister">
<div id="login">
<h1>REGISTER</h1>
<form name="registerform" id="registerform" action="register.php" method="post">
<p>
<label for="user_login">Full Name<br />
<input type="text" name="full_name" id="full_name" class="input" size="32" value="" /></label>
</p>


<p>
<label for="user_pass">Email<br />
<input type="email" name="email" id="email" class="input" value="" size="32" /></label>
</p>

<p>
<label for="user_pass">Username<br />
<input type="text" name="username" id="username" class="input" value="" size="20" /></label>
</p>

<p>
<label for="user_pass">Password<br />
<input type="password" name="password" id="password" class="input" value="" size="32" /></label>
</p>


<p class="submit">
<input type="submit" name="register" id="register" class="button" value="Register" />
</p>

<p class="regtext">Already have an account? <a href="login.php" >Login Here</a>!</p>
</form>

</div>
</div>



<?php include("includes/footer.php"); ?>

Авторизация


<?php
session_start();
?>

<?php require_once("includes/connection.php"); ?>
<?php include("includes/header.php"); ?>

<?php

if(isset($_SESSION["session_username"])){
// echo "Session is set"; // for testing purposes
header("Location: intropage.php");
}

if(isset($_POST["login"])){

if(!empty($_POST['username']) && !empty($_POST['password'])) {
$username=$_POST['username'];
$password=$_POST['password'];

$query =mysql_query("SELECT * FROM usertbl WHERE username='".$username."' AND password='".$password."'");

$numrows=mysql_num_rows($query);
if($numrows!=0)

{
while($row=mysql_fetch_assoc($query))
{
$dbusername=$row['username'];
$dbpassword=$row['password'];
}

if($username == $dbusername && $password == $dbpassword)

{


$_SESSION['session_username']=$username;

/* Redirect browser */
header("Location: intropage.php");
}
} else {

$message = "Invalid username or password!";
}

} else {
$message = "All fields are required!";
}
}
?>




<div class="container mlogin">
<div id="login">
<h1>LOGIN</h1>
<form name="loginform" id="loginform" action="" method="POST">
<p>
<label for="user_login">Username<br />
<input type="text" name="username" id="username" class="input" value="" size="20" /></label>
</p>
<p>
<label for="user_pass">Password<br />
<input type="password" name="password" id="password" class="input" value="" size="20" /></label>
</p>
<p class="submit">
<input type="submit" name="login" class="button" value="Log In" />
</p>
<p class="regtext">No account yet? <a href="register.php" >Register Here</a>!</p>
</form>

</div>

</div>

<?php include("includes/footer.php"); ?>

<?php if (!empty($message)) {echo "<p class=\"error\">" . "MESSAGE: ". $message . "</p>";} ?>

S
На сайте с 30.09.2016
Offline
469
#1

header("Location: intropage.php");
exit;
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
danforth
На сайте с 18.12.2015
Offline
153
#2


if (isset($_SESSION['session_username'])) {
header("Location: /intropage.php");
return;
}

Так проходит редирект?

Вставьте в тег CODE а не PHP.

И ещё, не подставляйте так в запрос $username и $password. А то это дыра в безопасности.

Почитайте prepared statements.

Если что-то не работает, в начало файла вставляйте:


error_reporting(-1);
ini_set('display_errors', '1');
Junior Web Developer
S
На сайте с 08.02.2017
Offline
7
#3
danforth:


Так проходит редирект?

Все равно не работает

S
На сайте с 30.09.2016
Offline
469
#4

Что, и с exit не работает? Не может быть такого. Не верю.

S
На сайте с 08.02.2017
Offline
7
#5
Sitealert:
Что, и с exit не работает? Не может быть такого. Не верю.

Может я что-то не так делаю, не туда прописываю, если не трудно, можете исправленные кода кинуть для логин и регистрации?

LEOnidUKG
На сайте с 25.11.2006
Offline
1767
#6

В начале файла попробуйте вставить:

<?php

ob_start();

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
S
На сайте с 30.09.2016
Offline
469
#7

А зачем там буферизация?

---------- Добавлено 13.05.2017 в 15:52 ----------

siew:
Может я что-то не так делаю, не туда прописываю
Понимаете, если Вы прописали редирект и после него завершение работы скрипта, то без вариантов дальше этого места программа не пойдёт. Если конечно выполнено условие для редиректа. Может быть, у Вас там с сессиями что-то не то? Хотя при авторизации редирект уже по условию найденного пользователя - опять же должен без вариантов срабатывать.
S
На сайте с 08.02.2017
Offline
7
#8
LEOnidUKG:
В начале файла попробуйте вставить:

<?php
ob_start();

На странице авторизации это отлично работает.

А со страницей регистрации проблема: Появляется сообщение, об успешной регистрации,


if($result){
$message = "Account Successfully Created";
}

но ты остаешься на этой же странице.

Надо чтобы после сообщения его через пару секунд перекидывало на на страницу intropage.php авторизованным.

---------- Добавлено 13.05.2017 в 16:06 ----------

Sitealert:
А зачем там буферизация?

---------- Добавлено 13.05.2017 в 15:52 ----------

Понимаете, если Вы прописали редирект и после него завершение работы скрипта, то без вариантов дальше этого места программа не пойдёт. Если конечно выполнено условие для редиректа. Может быть, у Вас там с сессиями что-то не то? Хотя при авторизации редирект уже по условию найденного пользователя - опять же должен без вариантов срабатывать.

О какой буферизации вы говорите? Просто для меня это достаточно темный лес, поэтому и прошу показать сразу готовый, исправленный код.

S
На сайте с 30.09.2016
Offline
469
#9
siew:
но ты остаешься на этой же странице

Так у Вас там и не прописано ничего.

---------- Добавлено 13.05.2017 в 16:12 ----------

siew:
О какой буферизации вы говорите?
Это я не Вам, а предыдущему оратору :)

---------- Добавлено 13.05.2017 в 16:13 ----------

siew:
прошу показать сразу готовый, исправленный код.
Вставляйте везде, где надо
header("Location: intropage.php");

exit;
S
На сайте с 08.02.2017
Offline
7
#10
Sitealert:
Вставляйте везде, где надо
header("Location: intropage.php");

exit;

Вот вставил (внизу):


<?php require_once("includes/connection.php"); ?>
<?php include("includes/header.php"); ?>


<?php

if(isset($_POST["register"])){


if(!empty($_POST['full_name']) && !empty($_POST['email']) && !empty($_POST['username']) && !empty($_POST['password'])) {
$full_name=$_POST['full_name'];
$email=$_POST['email'];
$username=$_POST['username'];
$password=$_POST['password'];



$query=mysql_query("SELECT * FROM usertbl WHERE username='".$username."'");
$numrows=mysql_num_rows($query);

if($numrows==0)
{
$sql="INSERT INTO usertbl
(full_name, email, username,password)
VALUES('$full_name','$email', '$username', '$password')";

$result=mysql_query($sql);


if($result){
$message = "Account Successfully Created";
} else {
$message = "Failed to insert data information!";
}

} else {
$message = "That username already exists! Please try another one!";
}

} else {
$message = "All fields are required!";
}
}
?>


<?php if (!empty($message)) {echo "<p class=\"error\">" . "MESSAGE: ". $message . "</p>";} ?>

<div class="container mregister">
<div id="login">
<h1>REGISTER</h1>
<form name="registerform" id="registerform" action="register.php" method="post">
<p>
<label for="user_login">Full Name<br />
<input type="text" name="full_name" id="full_name" class="input" size="32" value="" /></label>
</p>


<p>
<label for="user_pass">Email<br />
<input type="email" name="email" id="email" class="input" value="" size="32" /></label>
</p>

<p>
<label for="user_pass">Username<br />
<input type="text" name="username" id="username" class="input" value="" size="20" /></label>
</p>

<p>
<label for="user_pass">Password<br />
<input type="password" name="password" id="password" class="input" value="" size="32" /></label>
</p>


<p class="submit">
<input type="submit" name="register" id="register" class="button" value="Register" />
</p>

<p class="regtext">Already have an account? <a href="login.php" >Login Here</a>!</p>
</form>

</div>
</div>



<?php include("includes/footer.php"); ?>


<?php
header("Location: intropage.php");
exit;
?>

Регистрация прошла успешно, появилось сообщение "MESSAGE: Account Successfully Created" но никуда со страницы register.php так и не ушел.

jpg bbbbbbbbbbbb.jpg
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий