Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> не работает header
davi  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43485
На форуме: 1 месяц, 19 дней
Карма:




Всю голову сломал подскажите что не так не перенаправляет header('Location: /'); кодировка без ВОМ


<?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;
header('Location: /');
exit();

}
}
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>";}


?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
davi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43485
На форуме: 1 месяц, 19 дней
Карма:




http://www.money-number.ru/my/login.php логин и пароль d
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 6 дней
Карма: 170




и не будет, у тебя вывод уже был до отправки заголовка.

включи отображение ошибок, сразу всё увидишь
в самом начале скрипта:
error_reporting(-1);
ini_set("display_errors", 1);


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
davi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43485
На форуме: 1 месяц, 19 дней
Карма:




закоментил
if(isset($_SESSION["session_username"])){
// echo "Session is set"; // for testing purposes
//header("Location: intropage.php");

}

теперь Warning: Cannot modify header information - headers already sent by (output started at /home/c/ck80061/public_html/my/login.php:2) in /home/c/ck80061/public_html/my/login.php on line 39

на строку
header('Location: /');
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14962
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 25 дней
Карма: 443




Вот этот код
<?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");
}

замени на
<?php
session_start();

require_once('includes/connection.php');
include('includes/header.php');

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

то есть, убери все "лишние" открывания и закрывания тэгов ПХП. Между тэгами у тебя выводятся знаки "новая строка" и, возможно, пробелы. И ты получаешь, что на самом деле перед header() у тебя произошел вывод данных.
Перед самым первым тэгом <?php тоже не должно быть никаких символов.

PS. Более логично будет сделать так
<?php
session_start();

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

потому что зачем ты подключаешь файлы и тут же делаешь переход на другую страницу? Смысла нет.
Вызов exit() также важен.

Это сообщение отредактировал sergeiss - 14.10.2016 - 11:12


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
davi  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43485
На форуме: 1 месяц, 19 дней
Карма:




вот что у меня получилось и с первого раза не работает когда я обновляю страницу и подтверждаю повторный ввод данных только тогда у меня переходит
<?php
session_start();

if(isset($_SESSION["session_username"])){
// echo "Session is set"; // for testing purposes
header("Location: index.html");
exit();
}
require_once('includes/connection.php');
include('includes/header.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;
header('Location: index.html');
exit();

}
}
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>";}


?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14962
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 25 дней
Карма: 443




Цитата (davi @ 14.10.2016 - 17:34)
вот что у меня получилось и с первого раза не работает когда я обновляю страницу и подтверждаю повторный ввод данных только тогда у меня переходит

"Казнить нельзя помиловать" (с) wink.gif Запятые поставь! А то реально не понятно, что ты имел ввиду.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
davi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43485
На форуме: 1 месяц, 19 дней
Карма:




Цитата

Цитата (davi @ 14.10.2016 - 17:34)
вот что у меня получилось и с первого раза не работает когда я обновляю страницу и подтверждаю повторный ввод данных только тогда у меня переходит

"Казнить нельзя помиловать" (с)  Запятые поставь! А то реально не понятно, что ты имел ввиду.

вот что у меня получилось и с первого раза не работает, когда я обновляю страницу и подтверждаю повторный ввод данных, только тогда у меня переходит на header("Location: index.html");
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14962
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 25 дней
Карма: 443




davi, а что ты хотел получить, как оно должно, по-твоему, работать?

И кстати, вот это вот весьма опасно:
$query =mysql_query("SELECT * FROM usertbl WHERE username='".$username."' AND password='".$password."'");

У тебя нет тут защиты от SQL-инъекции.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
davi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43485
На форуме: 1 месяц, 19 дней
Карма:




Цитата
davi, а что ты хотел получить, как оно должно, по-твоему, работать?

И кстати, вот это вот весьма опасно:
$query =mysql_query("SELECT * FROM usertbl WHERE username='".$username."' AND password='".$password."'");

У тебя нет тут защиты от SQL-инъекции.


после авторизации переход на index.html
а по поводу SQL-инъекции у меня простой сайт не кому не интересный
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14962
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 25 дней
Карма: 443




Да вроде как всё должно работать... Поставь контрольные выводы во всех точках, после каждой операции.
У меня такое ощущение, что у тебя при каких-то условиях происходит ошибка и поэтому не работает так, как надо.

Вот упрощенный вариант твоего скрипта, без обращения к БД. Всё работает как надо.
login.php
<?php
session_start();

if(isset($_SESSION["session_username"])){
header("Location: index.php");
exit();
}

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

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

$dbusername = 'sergei';
$dbpassword = 'sergei';

if( $username == $dbusername && $password == $dbpassword) {
$_SESSION['session_username'] = $username;
header('Location: index.php');
exit();
}

}
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 if (!empty($message)) {echo "<p class=\"error\">" . "MESSAGE: ". $message . "</p>";}



index.php
<?php session_start();
$_SESSION['session_username'] = null;
?>
<!DOCTYPE html>
<
html>
<
head>
<
title></title>
</
head>
<
body>
In the index.
</
body>
</
html>


Это сообщение отредактировал sergeiss - 15.10.2016 - 00:28


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса