Защо на SH не ми работи header location?

header тага трябва да се извиква, преди да се пусне некакъв друг код на страницата. // Edit

Да не би да си слагал html например преди тва ?

Код:
<html>
<?php /* */ ?>
 
Не. Това ми е ясно. Просто седи бяла страница и не ми презарежда.
 
tedo96 каза:
Не. Това ми е ясно. Просто седи бяла страница и не ми презарежда.
Не ти ли записва някаква грешка в error_log.txt :idea:
 
Сложи error_reporting(E_ALL); и погледни в source кода дали е празно и там.
 
[24-Jun-2011 15:46:43] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/zmcik3zp/public_html/header.php:2) in /home/dgsgsdgsdgsgdsg/public_html/header.php on line 2

Ето ми го и кодчето. Направих го да мята с js, но не ме устройва много.
PHP:
<?php
session_start();
include 'includes/config.php';
$username = trim(addslashes(htmlspecialchars($_POST['username'])));
$password = trim(addslashes(htmlspecialchars($_POST['password'])));
if ($_SERVER['REQUEST_METHOD'] != "POST") {
    echo '<script>window.location="index.php";</script>';
    //header('Location: index.php');

} else {
    if (isset($username) && isset($password)) {
        $newPass = md5("bg" . $password . "1337");
        $q = mysql_query("SELECT username, password FROM users WHERE username='$username' AND password='$newPass' LIMIT 1") or die(mysql_error());
        if (mysql_num_rows($q) == 1) {
            $user = mysql_fetch_assoc($q);
            $_SESSION['username'] = $user['username'];
            $username = $_SESSION['username'];
            $select = mysql_query("SELECT * FROM users WHERE username='$username'");
            echo '<script>window.location="index.php";</script>';
            //header('Location: index.php');
        } else {
            echo '<script>window.location="index.php";</script>';
            //header('Location: index.php');
            $_SESSION['error'] = "Грешно име или парола!";
        }
    }
}
?>
 
PHP:
<?php

ob_start();
session_start();
include 'includes/config.php';
$username = trim(addslashes(htmlspecialchars($_POST['username'])));
$password = trim(addslashes(htmlspecialchars($_POST['password'])));
if ($_SERVER['REQUEST_METHOD'] != "POST") {
    echo '<script>window.location="index.php";</script>';
    //header('Location: index.php');

} else {
    if (isset($username) && isset($password)) {
        $newPass = md5("bg" . $password . "1337");
        $q = mysql_query("SELECT username, password FROM users WHERE username='$username' AND password='$newPass' LIMIT 1") or die(mysql_error());
        if (mysql_num_rows($q) == 1) {
            $user = mysql_fetch_assoc($q);
            $_SESSION['username'] = $user['username'];
            $username = $_SESSION['username'];
            $select = mysql_query("SELECT * FROM users WHERE username='$username'");
            header('Location: index.php');
        } else {
            $_SESSION['error'] = "Грешно име или парола!";
            header('Location: index.php');
        }
    }
}

ob_end_flush();

?>
 
tedo96 каза:
[24-Jun-2011 15:46:43] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/zmcik3zp/public_html/header.php:2) in /home/dgsgsdgsdgsgdsg/public_html/header.php on line 2

Ето ми го и кодчето. Направих го да мята с js, но не ме устройва много.
PHP:
<?php
session_start();
include 'includes/config.php';
$username = trim(addslashes(htmlspecialchars($_POST['username'])));
$password = trim(addslashes(htmlspecialchars($_POST['password'])));
if ($_SERVER['REQUEST_METHOD'] != "POST") {
    echo '<script>window.location="index.php";</script>';
    //header('Location: index.php');

} else {
    if (isset($username) && isset($password)) {
        $newPass = md5("bg" . $password . "1337");
        $q = mysql_query("SELECT username, password FROM users WHERE username='$username' AND password='$newPass' LIMIT 1") or die(mysql_error());
        if (mysql_num_rows($q) == 1) {
            $user = mysql_fetch_assoc($q);
            $_SESSION['username'] = $user['username'];
            $username = $_SESSION['username'];
            $select = mysql_query("SELECT * FROM users WHERE username='$username'");
            echo '<script>window.location="index.php";</script>';
            //header('Location: index.php');
        } else {
            echo '<script>window.location="index.php";</script>';
            //header('Location: index.php');
            $_SESSION['error'] = "Грешно име или парола!";
        }
    }
}
?>
Файла UTF-8 с BOM ли е? Ако не направи го! :)
 
Да с ob_start(); сигурно ще стане, но доколкото знам това забавя кода.
 
admin каза:
Пиши на супорта им да погледнат кода.
Това и направих. Кода си работи без проблем на друг хостинг. Сигурно трябва да се промени някаква настройка.
След като получа отговор ще пиша в темата. :)
 

Back
Горе